Hidennotare の紹介
https://qiita.com/RelaxTools/items/573b8ea1c1745bb73240
Hidennotare
https://github.com/RelaxTools/Hidennotare
Hidennotare Wiki
https://github.com/RelaxTools/Hidennotare/wiki
SheetCursorの使い方
何回か分けてHidennotare の使い方を解説していきたいと思います。
以下のような表を読むクラス「SheetCursor」について解説します。
クラス名の通りでシートの表を読むときに使用します。
Sheet1の内容
ソースコード
'ICursor インターフェースを使用する
Dim IC As ICursor
Set IC = SheetCursor.CreateObject(Sheet1, 3, "B")
Do Until IC.Eof
Debug.Print IC("C")
Debug.Print IC("D")
Debug.Print IC("E")
IC.MoveNext
Loop
結果
A1
B1
C1
A2
B2
C2
A3
B3
C3
解説
コンストラクタ
コンストラクタの内容は以下のとおり。
Sheet1を読む。
3行目から下に向かって読む。
B列が空文字列("")になったら終了。表の途中で空文字列にならない列を指定する。
右に向かって読むことも可能です。詳しくはWikiへ。
https://github.com/RelaxTools/Hidennotare/wiki/SheetCursor
Set IC = SheetCursor.CreateObject(Sheet1, 3, "B")
EOFプロパティ
B列の内容が空文字列("")になった時に True になります。
Do Until IC.Eof
Itemプロパティ
省略可能です。現在の行のC列のRangeを返却します。"C"は文字列ですが、行番号も使用可能です。その場合には、3を指定してください。
IC("C")
IC.Item("C")
IC.Item("C").Value
IC.Item(3).Value
どれも同じ結果になります。enum 等使う場合は列番号がよいですね。
Range を返却するので以下のような書き方も可能です。
IC.Item(3).Offset(0, 1).formula
MoveNextメソッド
現在の行を次に移動します。
IC.MoveNext
以上です。Excelでは一番良く使う機能ですね。おためしあれ。