[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別ファイルのファイル名を自動取得したい』(ふぅ)
テスト1.xlsx テスト2.xlsxの二つのファイルを開いています。
テスト2のシートでテスト1のファイル名を取得するにはどうしたらいいのでしょうか?
テスト2のセルA1には =MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1)
別のセルには =INDIRECT("[" & A1 & "]Sheet1!$A$1:$A$5")
を入れていますが、A1には テスト2.xlsxと表示されています。
よろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
=REPLACE(LEFT(CELL("filename",[テスト1.xlsx]Sheet1!A1),FIND("]",CELL("filename",[テスト1.xlsx]Sheet1!A1))-1),1,FIND("[",CELL("filename",[テスト1.xlsx]Sheet1!A1)),"")
(GobGob) 2020/04/10(金) 11:16
GobGob様 ありがとうございます。
テスト1のファイル名が変更される可能性もあります。 (説明不足ですみません)
その場合はどうしたらいいのでしょうか?
よろしくお願いいたします。 (ふぅ) 2020/04/10(金) 11:24
数式の [テスト1.xlsx] を変更すればいいっす。 (GobGob) 2020/04/10(金) 11:28
GobGob様 何度もありがとうございます。 自動ではやはり難しいのですね。
今、テスト2を開いた後にテスト1を開くと テスト2.xlsxガ自動取得できました。 但し、数式の再計算を行うと、テスト2を表示させるので エラーになってしまいます。
(ふぅ) 2020/04/10(金) 12:08
私には、この質問が理解不能です。
テスト1.xlsxのファイル名を取得する数式に「テスト1.xlsx」を盛込むことが出来るなら 初めから ="テスト1.xlsx" とすればいいのではないですか?
2つ開いているブックの内もう一方のブック名、と言う意味なら無理じゃないですかねぇ。 第一、3つ開いてあったらどうすんの? って感じになりますが。
(半平太) 2020/04/10(金) 12:12
半平太様 ありがとうございます。
基本2つしか開けないようにしています。
無理そうなのですね。 分かりました。 ありがとうございました。 (ふぅ) 2020/04/10(金) 12:40
マクロを使ってよければ可能ですが、 関連ファイルの拡張子が「.xlsx」なので、それらには仕込めません。
別途マクロ用ブックを作って、アドインにすることになります。 しかし、マクロを使っていいとなると、今回の機能だけに使うのは宝の持ち腐れとなりそう。
もっと便利な機能をついでに盛り込むべき、となるでしょうね。 そうなると、最終的な目的が何なのか興味が湧くところです。
(半平太) 2020/04/10(金) 16:41
半平太様
ご回答いただいていたのにお礼出来ずにすみませんでした。
今は =MATCH(B1,INDIRECT("[" &A2 & "]Sheet1!$A$1:$A$5"),0) として =MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1) で得たファイル名をA2に値貼り付けする記述式マクロを設定しています。
ありがとうございました。
(ふぅ) 2020/04/13(月) 08:56
(もこな2) 2020/04/13(月) 09:15
もこな様 返信頂きありがとうございます。
ファイル名というのが、別に開いているファイルのファイル名なので 開いた瞬間は上手く取得できるのですが、何か作業を行うと、たちまち作業中のファイル名に 変わってしまいます。 なので、値コピーをしています。
(ふぅ) 2020/04/13(月) 09:26
>記述式マクロを設定しています。
テスト1.xlsx も テスト2.xlsx も拡張子がxlsxですからマクロは書けないですよね。 そのマクロはどのブックに書かれているんですか?
※「記述式マクロ」と言うのも、ちょっと意味が理解できてないのですが・・
(半平太) 2020/04/13(月) 09:38
半平太様 テスト2の拡張子はxlsmに変えました。
記述式マクロというのは、操作そのもの記録するだけのマクロです。 直接書いてはいませんが、こんなマクロになってました。
Sub 固定() ' ' 固定 Macro ' ' Range("A1").Select Selection.Copy Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
End Sub
(ふぅ) 2020/04/13(月) 10:24
なら、それを以下に変えれば、 A2セルにもう一方のブック名が表示されるので、目的を達すると思いますが。
Sub 固定() If Workbooks.Count <> 2 Then MsgBox "開いているブックは2つのみにしてください。" Exit Sub Else Range("A2").Value = Workbooks(IIf(Workbooks(2) Is ThisWorkbook, 1, 2)).Name End If End Sub
(半平太) 2020/04/13(月) 11:06
半平太様
ありがとうございます。 思い通りにできました。
長くお時間を割いて頂き感謝します (ふぅ) 2020/04/13(月) 11:21
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.