いつもお世話になります。
EXCELにてFILE1.xls ⇒ Sheetが1日~31日まであります。
FILE2.xls からリンクして集計するのですが

式:サンプル
='[FILE1.xls]1日'!G7
上の式の1日の部分がSheet指定ですが、

例えば、FILE2のA1に1日と指定したら
FILE1のSheetの1日にリンクさせる。
例えば、FILE2のA1に2日と指定したら
FILE1のSheetの2日にリンクさせる。

FILE2のA1セルに指定した日にちによりSheet名を自動変動
させるにはどのようにすればよいのでしょうか?

INDIRECT関数にて可能ですが、FILE1と2を同時に
開かないとREFエラーになるため、INDIRECT以外での方法を
教えて頂けたらと思います。
関数・マクロでも構いませんのでお願いいたします。

どなたか、ご教授下さい。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

shogo814さん 今日は!


回答者のimogasiさんの回答の通りです。
Excelの立上を関数で?
そもそも関数がどのような意味か勉強して頂きたいですね。
■マクロの自動記録(Excel2003)↓
http://www.excel.studio-kazu.jp/lib/e4b/e4b.html
概要:[マクロの自動記録]の使い方の「マクロの記録 画面が表示されます」・「できたマクロをどうやって使うのか」等解説されています。
これでマクロを作成しては如何でしょうか。
    • good
    • 0

>関数・マクロでも構いませんのでお願いいたします


関数ではファイルを開かないと出来ない。
>マクロでも構いませんのでお願いいたします
こんなの完全に,課題を丸投げ下だけでは無いか。初心者には無理な課題だ。自分の勉強したことを披露も出来ず、他人頼りではないか。
少しWEBでも探しマクって自分で勉強のこと。直ぐ他人に頼っているようだ。
Googleで「エクセル ファイルを開かず 値」ででもWEB照会するべきだ。
ーー
基本的にコンピュータデータはディスクにあっても(ディスクに保存されているが)、メモリに持ってきて置かないと読めません。
ディスクからメモリに、そのソフトで決められた約束事(エクセルなら開発したMS社が決めたもの)に従い展開した配置にならないと、何がどこに有るかも、判らない、理屈です。
下記Excel4Macroはそうでない様に見えるが、画面にエクセル画面やシート画面を出さないだけで、メモリには展開しているはず。その際エクセルそのもののプログラムの一部が実行されているはず。
それにExcel4Macroは古いバージョンの特殊プログラム(関数の形式になっているが、1まとまりのプログラムでエクセル関数の関数と性格が違う)なのでお勧めしないが、ほかに無いので時々話題になる。
ーー
下記のコードなど組めるかな。
準備として
「2日」と名づけた、エクセルブックを作った。質問のFile2と言っているブックと同じフォルダに作った。
そしてA2に「bbb」の値(文字列、何でも良いが)を入れて保存した(閉じた)。
質問のFile2と言っているブックのSheet1のA1に「2」(半角)と入れた。2日のつもり。
準備として下記を実行。
Sub test01()
a = CurDir
x = Range("A1")
sn = a & "\" & StrConv(x, vbWide) & "日"
Workbooks.Open sn
MsgBox sn
End Sub
これで2日.xlsが開いた。これでフルパスのコードによる指定は間違いない確認が出来た。
ーーー
さてExcel4Macroの部分だが、標準モジュールに
Sub Test02()
a = CurDir
x = Range("A1")
sn = a & "\" & "[" & StrConv(x, vbWide) & "日.xls]"
'MsgBox sn
'---
Target = sn
Target = "'" & Target & "Sheet1'!"
MsgBox Target
y = ExecuteExcel4Macro(Target & "R2C1") 'A2を示す番地表現
MsgBox y
End Sub
を入れて実行した。
http://officetanaka.net/excel/vba/tips/tips28.htmなどを参考になる。
ーー
結果
「bbb」が表示された。旨く値を取ってきたものと思う。
他ブック参照の関数式での式は
http://www.excel-jiten.net/formula/ref_other_boo …
の最後の方を参考にした。
==
山は3つあって、
test1のコードの完成力
他ブック参照の関数式での式
ExecuteExcel4Macroのコード(test02)
ーー
こんなことが、直ぐ初心者に出来るはずがない。
エクセルで多数の他ブックなどにデータを分けるとどんなに難しいか。
そういうのはむしろアクセスなどデータベースの領分だ。
    • good
    • 0

>関数・マクロでも構いませんのでお願いいたします。



どうやっても開いていないファイルのリアルタイム更新は不可能です。
マクロならコードでリンクの更新を行う事で解決できます。
INDIRECTでも編集ーリンクの設定から更新すれば良いでしょう。
    • good
    • 0

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


人気Q&Aランキング