- ベストアンサー
ブックに可変のファイル名テキストファイルからデータを取り込みたい
こんにちは 昨日質問させていただいた、コードを修正して 開かれるファイル名が可変である場合にも対応させたいのですが、"*"をもちいてみてもうまく行きません。 どの様に指定するのかご存知の方教えてください。 "\Fuji.txt"これを\****.txt \*.txtとやってみましたがダメでした。 なお、041221_fuji.txtのように日付を6桁と"_"を入れてfujiとしたく、日付の6桁の数字のみ変えたいのです。 それを下記のコードに盛り込みたいのですが、何が足りないのかうまく行きません。 宜しくお願いします。 Sub ReadTxt() Dim myTxtFile As String Dim myBuf As String, wkdt() As String Dim i As Integer, j As Integer Application.ScreenUpdating = False myTxtFile = ActiveWorkbook.Path & "\Fuji.txt" Worksheets("郵便番号").Activate Open myTxtFile For Input As #1 Do Until EOF(1) Line Input #1, myBuf wkdt = Split(myBuf, vbTab) 'データをセルに展開する i = i + 1 For j = 0 To UBound(wkdt) Cells(i, j + 1) = wkdt(j) Next j Loop Close #1 End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Dirを使ったら如何でしょう。 >myTxtFile = ActiveWorkbook.Path & "\Fuji.txt" これを myTxtFile = Dir(ActiveWorkbook.Path & "\*Fuji.txt") if myTxtFile = "" then exit sub myTxtFile = ActiveWorkbook.Path & "\" & myTxtFile
その他の回答 (2)
- WWolf
- ベストアンサー率26% (51/192)
方法としてソースをそのまま使い修正追加するなら。 Sub ReadTxt() Dim myTxtFile, Fn As String Dim myBuf As String, wkdt() As String Dim i As Integer, j As Integer Application.ScreenUpdating = False Fn=inputbox("ファイル名は?") myTxtFile = ActiveWorkbook.Path & "\" & Fn & ".txt" Worksheets("郵便番号").Activate Open myTxtFile For Input As #1 Do Until EOF(1) Line Input #1, myBuf wkdt = Split(myBuf, vbTab) 'データをセルに展開する i = i + 1 For j = 0 To UBound(wkdt) Cells(i, j + 1) = wkdt(j) Next j Loop Close #1 End Sub
お礼
アドバイス有難うございます。 ボックスが出てきてファイル名を入れないと動かないので、完全オートと行かないのが残念です。 でもこんなやり方もあるんですね。 参考になりました。 有難うございました。
- imogasi
- ベストアンサー率27% (4737/17069)
下記を参考に。 Sub etst01() d = Date s = Format(d, "yymmdd") fn = s & "fuji.txt" MsgBox fn End Sub
お礼
アドバイスありがとうございます。 惜しいのですが、日付が今日とは限らない所が 苦しいところなんです。 色々このアイデアを引用してIf文にしてみたりしましたが、難しく日付を取るのはギブアップしました。 ありがとうございます。
お礼
早速のアドバイス有難うございます。 思い通りに動きました。 このコードを使わせてもらいます。