• ベストアンサー

EXCEL(VBA)で条件に合うセルを選択する方法

offset(1,1)などと記述しますが、この(1,1)の部分に あるセルに入っている値を引用することはできないでしょうか。 例えば、セルA1に"10"という値が入っているとします。 これをoffset(△,1)の△の部分の値として使いたいのです。 offsetプロパティでできなければ、他の方法でも構いません。 A1の値を元にセルを選択できれば。。。 説明があまり上手くできないのですが、お分かりになる方は 是非教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sacoman
  • ベストアンサー率56% (33/58)
回答No.2

変数を利用するのがお勧めです。 ご質問の例の場合だと以下のようになります。 '変数[hensuu]を宣言 Dim hensuu as long 'セルA1の値を変数[hensuu]にセット hensuu=range("A1").value 上記のように記述することで、変数という入れ物(ここでは、hensuu、変数名は自由に名前を付けることができます) にセルA1の値である10が格納されます。 あとは、 Offset(hensuu,1)とすればいいわけです。 つまり、bossa-miyaさんが、△と指定したものが変数そのものなのです。言い換えると、 △=range("A1").value とするればセルA1の値10が、変数△ に格納されるいった具合です。

bossa-miya
質問者

お礼

詳しいご説明、大変参考になりました。 ありがとうございます。 変数を使いこなせるととても役立ちそうですね。 今後勉強します。 また何かありましたら、よろしくお願いします。

その他の回答 (3)

  • brick
  • ベストアンサー率12% (2/16)
回答No.4

A1の値を使いたければ、 offset(cells(1,1),1) といった具合にそのまま書いても平気です。 もっと簡単に、 cells(cells(1,1),1) でも。 ちなみに上の例の方が一つ上のセルを参照することになります。 A1の値を変数に入れて使った方が見やすい&複雑なプログラムに適用しやすいことは間違いないですけど。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

難しくoffsetなどを考えなくても、Cellsの(行、列)の「行」(または場合によっては列)を(A1の値だけ)増やせば良いのです。 いまcells(b,1)を考えているとして a=range("a1").value ---->いま10 c=cells(b+a,1).value ---->valuueはあくまで わたしの仮定。(ここは場合によりいろいろなプロパティやメソッドが来る。)

bossa-miya
質問者

お礼

Cellsの中で"+"が使えるんですね。 一般的な知識なのでしょうが、なにせ初心者なので・・ ここで質問すると目からウロコが落ちまくりです(^^;) 丁寧なご回答、ありがとうございました。

  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.1

A1の値は、 cells(1,1).value で取得できます。 なので、 △=cells(1,1).value とすれば、うまくいきそうですが。

関連するQ&A