筆箱にVBAのカンニングペーパーを入れる係のみすくです。こんにちは。
Excelのセルを読み込んで配列に格納します。
VBAの配列の仕様は微妙だけど、処理は高速です。
一行ずつ処理をする場合、いったん配列に入れてからやると良いです。
Option Explicit '--------------------------------------- ' 列インデックス '--------------------------------------- Private Enum eCOL COL_CATEGORY = 1 COL_VEGETABLE COL_FRUITS COL_SEASONING COL_CONFECTION End Enum Public Sub main() Dim sh As Worksheet 'ワークシートオブジェクト Dim arr As Variant '作業領域配列 Dim index As Long 'カウンタ Dim endRowIndex As Long '最終行 Set sh = ThisWorkbook.Worksheets("Sheet1") '末尾行 endRowIndex = sh.Cells(Rows.Count, "A").End(xlUp).Row '配列に格納 arr = sh.Range(sh.Cells(2, eCOL.COL_CATEGORY), sh.Cells(endRowIndex, eCOL.COL_CONFECTION)) For index = 1 To UBound(arr) Debug.Print arr(index, eCOL.COL_CATEGORY) Debug.Print arr(index, eCOL.COL_VEGETABLE) Debug.Print arr(index, eCOL.COL_FRUITS) Debug.Print arr(index, eCOL.COL_SEASONING) Debug.Print arr(index, eCOL.COL_CONFECTION) Next index Set sh = Nothing End SubExcelを読込みCollectionに格納 比較的複雑な処理をしたり、カラムの増減がありえるときは
Collectionで実装。
速さを求めるなら配列。
最近のコメント
コメントを残す