[VBA] ディクショナリに属性を持たせコードの可読性を高める(クラスライブラリの活用)
ディクショナリに格納できる情報は、文字列の他、ディクショナリや配列を持たせることができますが、複数の属性をディクショナリに持たせるには配列では意味がわかなくなりますし、ディクショナリにディクショナリを持たせればすみますが、記述が複雑になってしまいます。
複数の属性を持たせるにはクラスモジュールを活用する。
そこで、ディクショナリにクラスを格納することで、より簡単な記述で複数の属性を持たせることができます。
たとえば、行・列の値をディクショナリに持たせたいとします。そのためには、まずクラスモジュールに複数の変数を定義します。
クラスモジュール: tableEndRowCal
Option Explicit
Public endRow As Long
Public endCol As Long
その後、まずクラスを定義・生成し
Dim endRowCol As tableEndRowCol
Set endRowCol = New tableEndRowCol
クラスにデータを格納後、ディクショナリにクラスを格納します。
Dim 最終行列 As Dictionary
Set 最終行列 = New Dictionary
endRowCol.endRow = Thisworkbook.sheets(シート名).Cells(Rows.Count, 1).End(xlUp).row
endRowCol.endCol = Thisworkbook.sheets(シート名).Cells(1, Columns.Count).End(xlToLeft).Column
最終行列.Add シート名, rowCol
これで、あるシートの最終行や最終列を取り出したいときには
最終行列(シート名).endRow
と書くだけでよく、コードの可読性が格段にあがります。
今回は以上になります。ではまた。
この記事が気に入ったらサポートをしてみませんか?