Excelのこととか色々

マクロをどんな Excel ファイルにも実行できるように設定して、3秒かかる操作も1秒で完了。あといろいろ書いてみます・・・

【VBAスタンダードに挑戦!】Preserve

【VBAスタンダードに挑戦!】

f:id:tuna-kichi:20200614200940p:plain

 

本日の5分勉強の内容

 

 

********************************************************

Preserve

・先に定義した配列の要素は後からの定義によって初期化されてしまう。

・あとから定義するときに 「Preserve」 というキーワードを使えば、
 先に入れたデータは消去されず、残しておける。

※ Preserve ・・・保存する、保護する

********************************************************

「Preserve」を使用しない場合

Sub F_Procedure()

 Dim A()  As Variant 'まずは、空っぽのまま定義

 ReDim A(1) '配列の要素数を2つで再定義

  A(0) = "Shirt" '配列にデータを格納する
  A(1) = "Cap"

 ReDim A(2)  '配列の要素数を3コに再々定義する

  A(2) = "Shoes"

  Msgbox A(0) 
  '配列の要素数を再々定義され、初期化されたので、A(0) の中身は空っぽ 

End Sub

                

「Preserve」を使用した場合

Sub F_Procedure()
 Dim A()  As Variant 'まずは、空っぽのまま定義

 ReDim A(1) '配列の要素数を2つで再定義

  A(0) = "Shirt" '配列にデータを格納する
  A(1) = "Cap"

 ReDim Preserve A(2)  
  '配列の要素数を3コに再々定義して、A(0) と A(1) のデータも保護する

  A(2) = "Shoes"

  Msgbox A(0) 
  'A(0) の中身は "Shirt" が入ったままになっている

End Sub

                

f:id:tuna-kichi:20200725174806p:plain

 

********************************************************

先に格納したデータが削除されないのは便利かもしれないけど、

やはりこれも、今すぐに活用できるか?どこで使えるか?

と考えてみると、今のところ不要・・・

初期化された方が便利なケースもあるだろうし・・・

 

知識として覚えておくことができるかなぁ・・・

でも、きっと試験には必要なんですよねぇ。

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

 

  Graspyで無料プログラミング講座を受講する