Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12629 / 13645 ツリー ←次へ | 前へ→

【9507】参照先のブックやシートをセルの内容から取得 エクセル中の下忍 03/12/5(金) 17:33 質問
【9508】Re:参照先のブックやシートをセルの内容から... Kein 03/12/5(金) 19:15 回答
【9522】Re:参照先のブックやシートをセルの内容から... エクセル中の下忍 03/12/6(土) 14:10 お礼

【9507】参照先のブックやシートをセルの内容から...
質問  エクセル中の下忍  - 03/12/5(金) 17:33 -

引用なし
パスワード
   初めて投稿します。

(関数は全てSheet1上に入力していると仮定してください)
セル内に直接記述する場合、
 =Sheet2!A2
でSheet2のA2の内容を取得できますが、
例えばこの「Sheet2」が間接的にA3のセルに入っている場合
 =A3!A2
ではおかしいし、
 =A3 & "!A2"
とすると、そのセルに Sheet2!A2 と表示されるだけで
実際のSheet2のA2の内容を取得できません。
それらしいHYPERLINKも試してみましたが、
使い方が悪いのかうまくいきませんでした。

どのようにしたら可能でしょうか?
そして、シートだけでなく、フォルダー指定のブックからでも出来るのでしょうか?

ご教授のほどよろしくお願いします。

【9508】Re:参照先のブックやシートをセルの内容か...
回答  Kein  - 03/12/5(金) 19:15 -

引用なし
パスワード
   >例えばこの「Sheet2」が間接的にA3のセルに入っている場合
あるセルの値を参照のために使うなら、ワークシート関数では INDIRECT を
使います。しかしこのケースのように、シート名のみの参照ということは出来ない
みたいです。あるセルの値全体が、別のシートの特定のセルを参照している場合は

=INDIRECT(A3)

を入力するとして、A3 に Sheet2!A2 が入力されていれば、INDIRECT数式を
入れたセルに正しく値が返されます。で、ここはVBAの質問をするところなので、
VBAでやるとすれば簡単なコードで出来ます。

On Error Resume Next 'シート名が正しくない場合のエラーをトラップする。
ActiveCell.Value = Sheets(Range("A3").Value).Range("A2").Value

ということになります。

【9522】Re:参照先のブックやシートをセルの内容か...
お礼  エクセル中の下忍  - 03/12/6(土) 14:10 -

引用なし
パスワード
   参考になりました。
ありがとうございました。

12629 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free