LoginSignup
2
2

More than 3 years have passed since last update.

Hidennotareの使い方(1) SheetCursorクラス

Last updated at Posted at 2019-10-23

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の内容

image.png

ソースコード


    '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では一番良く使う機能ですね。おためしあれ。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2