Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【VBAスタンダードに挑戦!】動的配列

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

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

 

本日の5分勉強の内容

 

 

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

動的配列

 ・配列はアパートのイメージ
 (他人がそれぞれの部屋に住んでいる)

・要素数(部屋数)を最初に定義する必要があるが、
 不明な時もあるので、最初に要素数を定義せず、
 マクロの中で計算したりして、あとから要素数を確定させる

・ReDim を使用して再定義する

・最初に要素数を定義したら、あとから ReDim で再定義できない

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

Sub F_Procedure()
 Dim A()  As Variant '中身が空のカッコで定義
 Dim LastRow As Long 

  LastRow = Cells(Rows.Count, 1).End(xlUp).Row
  '列Aの最終行を取得する

 

  ReDim(LastRow - 1) '配列の要素数を再定義する

  ・
  ・
  ・

End Sub

※LastRowが10だった場合、要素数として定義してしまうと、

 11になってしまうので、1つ分減らした

                

 

要素数を最初に定義してしまうと、あとから再定義できない

Sub F_Procedure()
 Dim A(2)  As Variant '要素数を3つ定義
 Dim LastRow As Long 

  LastRow = Cells(Rows.Count, 1).End(xlUp).Row
  '列Aの最終行を取得する

 

  ReDim(LastRow) '配列の要素数を再定義できない

  ・
  ・
  ・

End Sub

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

今の業務では、行の追加、削除で頻繁に更新されるので、

動的配列のであれば応用できそうです。

でも、一回限りや、回数の少ない場合には、

その都度、要素数を変更していけば いいかな。

 

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