>関数・マクロでも構いませんのでお願いいたします
関数ではファイルを開かないと出来ない。
>マクロでも構いませんのでお願いいたします
こんなの完全に,課題を丸投げ下だけでは無いか。初心者には無理な課題だ。自分の勉強したことを披露も出来ず、他人頼りではないか。
少し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_books.html
の最後の方を参考にした。
==
山は3つあって、
test1のコードの完成力
他ブック参照の関数式での式
ExecuteExcel4Macroのコード(test02)
ーー
こんなことが、直ぐ初心者に出来るはずがない。
エクセルで多数の他ブックなどにデータを分けるとどんなに難しいか。
そういうのはむしろアクセスなどデータベースの領分だ。