- ベストアンサー
エクセルマクロのVBAでINDEX関数を使う。
エクセルマクロのVBAでINDEX関数を使って値を取得しています。 値を取得したセル番地を取得したいと考えています。 ネットで調べましたが、なかなか思うような内容をヒットできません。 VBAに詳しいかた、ご教授お願い致します。
- みんなの回答 (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...とも書けます。
その他の回答 (1)
- soixante
- ベストアンサー率32% (401/1245)
もう少し具体的に書いたほうがよいのではないでしょうか。 値が取得できているのにセル番地が取得できないというところ。 そのセルを選択して Msgbox ActiveCell.Address でもいいんでしょうけど、やりたいことと合ってますか?
お礼
ご回答ありがとうございます。 質問内容が正確でなくて、申し訳ありません。 Index関数を使ったコーディングは以下の通りです。 myTemp = Application.Index(myIndexArea, myRow, myCol) 教えて頂いた Msgbox ActiveCell.Address でセル番地を確認しましたが、Index関数で検索しているセルとは別の場所でした。 Index関数の仕様としては、セルをアクティブにして値を参照しているわけではないようなのですが、できれば、何とかIndex関数で検索した値があるセル番地を取得したいと思っています。
お礼
とても助かりました。 myIndexArea は、Rangeオブジェクトとして、定義していましたが、教えて頂いたようなやり方は、まったくしりませんでした。 本当にありがとうございました。