[[20090823232358]] 『参照パスに変数って使えますか?』(ぽんすけ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『参照パスに変数って使えますか?』(ぽんすけ)

参照パスを設定する際に、パスの中で指定するフォルダを変数にして設定することはできますか?
『集計』というフォルダの中に1月から12月までのフォルダが存在し、
その中にそれぞれ、a.xls・b.xls・c.xls・・・が格納されています。
集計フォルダの直下に、年間集計を作成するブック「集計.xls」があり
その中にはラジオボタンで表示させる月を指定できるようにしています。
ここで、ラジオボタンを変更すると、
セルに表示させるデータも指定した月のフォルダからファイルを参照して
データを表示させるようにしたいのです。
イメージとしては

【 ='c:集計\x月\a.xls\sheet1'!$A$1 】

xにはラジオボタンで設定をした月数を代入して
ラジオボタンを変更するごとに逐一表示させるデータを変更できるようにしたいのですが、
どうも上手くいきません。
ご教授いただければ幸いです。

OSはwindowsXP
エクセルは2002を使用しています。


 マクロの話ですか?
 数式の話ですか?

 数式であれば、INDIRECT関数を使うことで
 似たようなことは出来ると思いますが
 元データの有るブックを開いておく必要が有ります。

 ハイパーリンク関数を設定しておいて
 ワンクリックで該当ブックを開くようにすることは
 出来るかも知れません。 

 しかし、ファイル数も多いようですので
 あまり現実的では無い様に思います。

 数式だけで考えるなら、
 それぞれのフォルダのそれぞれのブックに分かれているデータを
 集計ブックか、一つのブックに集めておいて(そのブックが開いている状態で)
 INDIRECT関数で希望のデータのみを表示させる方法が
 それでも簡単かもしれません。

 以下の過去ログが似ている様に思いますので、リンクしておきます。
[[20071219203112]]『他のブックのデータを返す』(puresss)

 (HANA)

早速のお返事、ありがとうございます。
導いていただいたリンクをたどりましたが、いまいち理解することが出来ません。

えっと、質問の件は数式で実現できればと思っております。
ラジオボタンで設定した値をA1に格納するとして、

=IF(A1=1,'c:集計\1月\a.xls\sheet1'!$A$1,IF(A1=2,'c:集計\2月\a.xls\sheet1'!$A$1,IF(A1=3,'c:集計\3月\a.xls\sheet1'!$A$1,IF(・・・

とすれば実現可能なのですが、あまりにも式が長くなりすぎるので
月別フォルダの数字の部分を変数で指定できれば、式も短くて済むのではないかという発想の元に
質問させていただいた次第です。
INDIRECT関数に関しても調べてみますが、参照もとのファイルイが60以上もあるため、
開いておかなければならないとなると、実現不可能っぽいです。

(ぽんすけ)


 マクロの使用を検討して下さい。

 ↓先の過去ログからの修正のみで動かして居ませんが。。。
Sub 表示()
    With Range("A2")
        .Formula = "='C:\集計\" & Range("A1").Value & "月\[a.xls]\sheet1'!$A$1"
        .Value = .Value
    End With
End Sub

 これを実行すると、A1セルに入っている月のフォルダに入っている
 a.xlsのsheet1のA1セルの値が A2セルに表示される 予定 です。

 あくまでもサンプルコードですので
 実際にご使用に成ることを考えた場合は
 状況に合わせてコードの変更が必要になってきますが。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.