プロが教える店舗&オフィスのセキュリティ対策術

こんにちは
昨日質問させていただいた、コードを修正して
開かれるファイル名が可変である場合にも対応させたいのですが、"*"をもちいてみてもうまく行きません。
どの様に指定するのかご存知の方教えてください。
"\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

A 回答 (3件)

Dirを使ったら如何でしょう。



>myTxtFile = ActiveWorkbook.Path & "\Fuji.txt"
これを
myTxtFile = Dir(ActiveWorkbook.Path & "\*Fuji.txt")
if myTxtFile = "" then exit sub
myTxtFile = ActiveWorkbook.Path & "\" & myTxtFile
    • good
    • 0
この回答へのお礼

早速のアドバイス有難うございます。
思い通りに動きました。
このコードを使わせてもらいます。

お礼日時:2004/12/21 16:03

方法としてソースをそのまま使い修正追加するなら。



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
    • good
    • 0
この回答へのお礼

アドバイス有難うございます。
ボックスが出てきてファイル名を入れないと動かないので、完全オートと行かないのが残念です。
でもこんなやり方もあるんですね。
参考になりました。
有難うございました。

お礼日時:2004/12/21 16:05

下記を参考に。


Sub etst01()
d = Date
s = Format(d, "yymmdd")
fn = s & "fuji.txt"
MsgBox fn
End Sub
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
惜しいのですが、日付が今日とは限らない所が
苦しいところなんです。
色々このアイデアを引用してIf文にしてみたりしましたが、難しく日付を取るのはギブアップしました。

ありがとうございます。

お礼日時:2004/12/21 16:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!