- ベストアンサー
ファイルを検索するマクロで教えて下さい
- ファイルを選択するマクロを教えてください。セル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がある場合はどのようにすれば解決できるかご教示いただけないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは コードお借りすると、 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 こんな感じでしょうか?
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
>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
お礼
お礼が遅くなり申し訳ありません。 質問の仕方が違っていたという事で大変お手数をお掛け致しました。 今後は気を付けます。 ありがとうございました!
お礼
お礼が遅くなりすみません。 頂いたマクロで、目的が達成できました! ありがとうございました!