- ベストアンサー
ファイルを開くマクロ記述教えてください。
一つのフォルダに次のエクセルファイル2つがあるとします。 これ以外はありません。 日記0220.xls マクロ.xls 日記0220の 0220はファイルを更新した日を表してます。 ですので、書き込むつど 日記0221 ・・・ 日記0222・・ とファイル名が変わります。 さて、 マクロ。xls から 日記****.xls を開くには マクロの記述はどうなりますでしょうか? open 日記*.xls だと だめでした。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。お邪魔します。 > 一つのフォルダに次のエクセルファイル2つがあるとします。 > これ以外はありません。 という説明が「例えば」ではなくて、具体的なお話ならば、ですが。 > 日記0220の 0220はファイルを更新した日を表してます。 > ですので、書き込むつど 日記0221 ・・・ 日記0222・・ とファイル名が変わります。 書き込む都度にブック名をリネームしている、 フォルダには常に'エクセルファイル2つ' 日記の数は増えたりしない、という解釈でお応えします。 でもまぁ前提が合っていれば、動作はループしたものと一緒にはなりますが、 ループを省いた分、Like演算子でファイル名を簡単にパターンチェックしてみます。 ' ' ======================== Sub Re8923499() Dim sPath As String Dim sFN As String sPath = ThisWorkbook.Path & "\" sFN = Dir(sPath & "日記*.xls") If sFN Like "日記####.xls" Then ' 念の為確認 Workbooks.Open sPath & sFN Else MsgBox "ないよ!" End If End Sub ' ' ======================== ' ' おまけ/// テスト用に書いたリネーム用マクロ(同種の名前のブックが他に無い前提) Sub Rename8923499() Dim sPath As String Dim sFNp As String Dim sFNn As String sPath = ThisWorkbook.Path & "\" sFNp = Dir(sPath & "日記*.xls") If sFN Like "日記####.xls" Then ' 念の為確認 sFNn = "日記" & Format(Date, "mmdd") & ".xls" Name sPath & sFNp As sPath & sFNn End If End Sub ' ' ========================
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
あぁ、なるほど >次のエクセルファイル2つがあるとします。 >これ以外はありません でしたら sub macro2() dim myPath as string mypath = thisworkbook.path & "\" workbooks.open mypath & dir(mypath & "日記*.xls") end sub とかで十分ですね。
- keithin
- ベストアンサー率66% (5278/7941)
日記の具体的にどれを開くのか、どうやって指定したいのですか。 いずれにしても一度に開けるブックの数は1つですから、1つ開きたいならその1つをどういう風にしてでもいいので指定しなきゃいけません。 それとも日記**を全部開きたいと言いたかったのでしたら、そこに日記**って具体的にどんだけあるのかをマクロに調べさせ、それを一つずつ全部順繰り開いていくマクロを書きます。 標準的な: sub macro1() dim myPath as string dim myFile as string mypath = thisworkbook.path & "\" myfile = dir(mypath & "日記*.xls") do until myfile = "" workbook.open mypath & myfile myfile = dir() loop end sub
お礼
お礼コメントが遅れました。 いつも回答ありがとうございます。 今回も大変おせわになりました。
お礼
お礼のコメントが遅れました おまけの スクリプトまで書いて頂いてありがとうございます。