アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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...とも書けます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/07/08 10:12

もう少し具体的に書いたほうがよいのではないでしょうか。



値が取得できているのにセル番地が取得できないというところ。

そのセルを選択して

Msgbox ActiveCell.Address

でもいいんでしょうけど、やりたいことと合ってますか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

質問内容が正確でなくて、申し訳ありません。

Index関数を使ったコーディングは以下の通りです。
 myTemp = Application.Index(myIndexArea, myRow, myCol)

教えて頂いた Msgbox ActiveCell.Address でセル番地を確認しましたが、Index関数で検索しているセルとは別の場所でした。

Index関数の仕様としては、セルをアクティブにして値を参照しているわけではないようなのですが、できれば、何とかIndex関数で検索した値があるセル番地を取得したいと思っています。

お礼日時:2011/07/04 14:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!