★OffsetプロパティとListIndexプロパティ
 

 Offsetプロパティについて説明をします。
下の表をご覧下さい。

 この表の中でセルC3を基準して、3行下がって1行右に移動したセル・・・D6・・・を選択したいとします。
そういう時にOffsetプロパティを使います。コードを書いてみるとこんな感じです。

  Range("C3").Offset(3, 1).Select

  Range("基準セル").Offset(行,列).Select

 これで分かるようにOffset()の中には、移動させる行数と列数を指定してやるといいようになっています。もし数字を入れなければ、基準セルのある行や列の位置のままになります。
例えば
  Range("C3").Offset(1).Select とすれば、
            行は1行下がり、列はそのままでC4を選択します。

  Range("C3").Offset(,1).Select とすれば、
            行はそのままで、列が1列右に移動し、D3を選択します。

  Offsetで指定できる数字は、負の数値も入れられるので、上や左に移動する場合は、(−*)
マイナス表示すれば可能になります。

  Range("C3").Offset(−1,−1).Select とすれば
            行は1行上に、列は1列左に移動しセルB2を選択します。

ということですのでOffsetプロパティはこれからもいろいろでてきますので覚えましょう。

 次はListIndexプロパティについて説明します。
これはコンボ ボックス(またはリストボックス)で現在選択されている項目(品名)のインデックス番号を設定します。

それだけでは、よくわからん?

そうですね。
上の図でイチゴを選択すると3行目にあるので、3という番号をゲットできるのですね。
他にもいろいろ使い方があるみたいですが、今回はこの3という数字がゲットできるということを覚えておくといいと思います。

 さてOffsetとListIndexを組み合わせるとコンボボックス(またはリストボックス)でとても便利な使い方ができるのです。ということで先ほどのコードをもう一度見てみましょう。

テキスト単価 = Range("D3").Offset(コンボ品名.ListIndex).Value

 もうお分かりの方もいるかもしれませんが、

Range("基準セル").Offset(コンボボックス名.ListIndex).Value

単価の基準セルD3からオフセットを使ってリストインデックスで取得された数だけ移動しなさいってことですね。これでイチゴを選択すれば、イチゴの単価を表示させることが出来るようになります。

[トップ][前へ][コンボボックスとテキストボックス][次へ]