[[20200410104055]] 『別ファイルのファイル名を自動取得したい』(ふぅ) ページの最後に飛ぶ

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

 

『別ファイルのファイル名を自動取得したい』(ふぅ)

 テスト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


話が見えませんが、
>ファイル名をA2に値貼り付けする記述式マクロ
が本当なら、ものすごく遠回りになってませんか?

(もこな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.