• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルを検索するマクロで教えて下さい)

ファイルを検索するマクロで教えて下さい

このQ&Aのポイント
  • ファイルを選択するマクロを教えてください。セルA1に数字が入力されている状態でマクロ実行ボタンを押した時、C:\Users\Documentsのフォルダの中にあるシート選択#100.xlsmのシートを開きたいです。また、セルA1になにも入力されていない場合は[入力されていません]というメッセージを表示し、入力されていてもフォルダ内に当てはまる番号がない場合は[ヒットするNo.がありません]というメッセージを表示したいです。
  • もしA2セルに999と入力されていて、C:\Users\Documentsのフォルダの中にシート選択#100#999.xlsmやシート選択#101#995.xlsmがある場合はどのようにすればよろしいでしょうか?
  • 前回の質問で回答をもらい、解決したが、A2セルに999が入力されている場合、C:\Users\Documentsのフォルダの中にシート選択#100#999.xlsmやシート選択#101#995.xlsmがある場合はどのようにすれば解決できるかご教示いただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは コードお借りすると、 Sub file_open()   Dim f_fmt As String, i As Integer '設定==============   Const dpath As String = "C:\Users\Documents\"   Const adr As String = "A1"   Const adr1 As String = "A2"   Const st As String = "シートA"   f_fmt = "#<NO>\シート選択#<NO1>.xlsm" '==================   If Len(Range(adr).Value) = 0 Then MsgBox "セルA1入力されていません": Exit Sub   If Len(Range(adr1).Value) = 0 Then MsgBox "セルA2入力されていません": Exit Sub   f_fmt = dpath & Replace(f_fmt, "<NO>", Range(adr).Value)   f_fmt = dpath & Replace(f_fmt, "<NO1>", Range(adr1).Value)   If Dir(f_fmt) = "" Then MsgBox "ヒットするNo.がありません": Exit Sub   Workbooks.Open Filename:=f_fmt   For i = 1 To Worksheets.Count     If Worksheets(i).Name = st Then       Worksheets(i).Activate       Exit Sub     End If   Next i   MsgBox "ワークブック """ & Dir(f_fmt) & """ に、ワークシート """ & st & """ が見つかりません" End Sub こんな感じでしょうか?

yyrd0421
質問者

お礼

お礼が遅くなりすみません。 頂いたマクロで、目的が達成できました! ありがとうございました!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>C:\Users\Documentsのフォルダの中にあるシート選択#100.xlsmのシートを開きたいです。 状況のご説明とサンプルマクロの内容が合っていません。 間違ったご説明では、動かないマクロの回答しか寄せられません。お互いの手間の無駄ですよ。 sub macro1()  dim myPath as string  dim myFile as string  mypath = "C:\Users\Documents\"  if range("A1") = "" then   msgbox "A1 is blank"   exit sub  end if  myfile = "シート選択#" & range("A1").value & iif(range("A2") = "", "", "#" & range("A2").value) & ".xlsm"  myfile = dir(mypath & myfile)  if myfile = "" then   msgbox "file not exist"   exit sub  end if  workbooks.open filename = mypath & myfile end sub

yyrd0421
質問者

お礼

お礼が遅くなり申し訳ありません。 質問の仕方が違っていたという事で大変お手数をお掛け致しました。 今後は気を付けます。 ありがとうございました!