• ベストアンサー

エクセルマクロのVBAでINDEX関数を使う。

エクセルマクロのVBAでINDEX関数を使って値を取得しています。 値を取得したセル番地を取得したいと考えています。 ネットで調べましたが、なかなか思うような内容をヒットできません。 VBAに詳しいかた、ご教授お願い致します。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

myIndexArea は Rangeオブジェクトを格納した変数ですか? その場合はIndex関数を使う必要はありません。 「Range オブジェクトの Item プロパティ」を使えば良いです。 myTemp = myIndexArea.Item(myRow, myColm).Value Item プロパティはセル範囲 (Range オブジェクト) を返しますから、 取得したい項目に合わせて、ValueプロパティやAddressプロパティを使います。 MsgBox myIndexArea.Item(myRow, myColm).Address 省略形で..myIndexArea(myRow, myColm).Address...とも書けます。

pao5
質問者

お礼

とても助かりました。 myIndexArea は、Rangeオブジェクトとして、定義していましたが、教えて頂いたようなやり方は、まったくしりませんでした。 本当にありがとうございました。

その他の回答 (1)

  • soixante
  • ベストアンサー率32% (401/1245)
回答No.1

もう少し具体的に書いたほうがよいのではないでしょうか。 値が取得できているのにセル番地が取得できないというところ。 そのセルを選択して Msgbox ActiveCell.Address でもいいんでしょうけど、やりたいことと合ってますか?

pao5
質問者

お礼

ご回答ありがとうございます。 質問内容が正確でなくて、申し訳ありません。 Index関数を使ったコーディングは以下の通りです。  myTemp = Application.Index(myIndexArea, myRow, myCol) 教えて頂いた Msgbox ActiveCell.Address でセル番地を確認しましたが、Index関数で検索しているセルとは別の場所でした。 Index関数の仕様としては、セルをアクティブにして値を参照しているわけではないようなのですが、できれば、何とかIndex関数で検索した値があるセル番地を取得したいと思っています。