電子書籍の厳選無料作品が豊富!

VBA で、あるディレクトリにあらかじめ作成、保存してあるテキストファイルを、Input Box からそのファイル名を指定してExcel に読込み、所定の処理をした後、元のテキストファイルをディレクトリ上から削除するにはどうしたらよいでしょうか。 いつも決まった名前のファイルを削除するのは Kill コマンドで容易にできたのですが、InputBox から入力した任意の名前のファイルを削除する方法を教えていただけませんか。

A 回答 (2件)

こんにちは。



例えば、こんなことですか?

Dim myPath As String
Dim fn As String
myPath = ThisWorkbook.Path & "\"
fn = InputBox("ファイル名を入力してください")
If fn = "" Then Exit Sub
'拡張子は、".txt"
If InStr(fn, ".txt") = 0 Then fn = fn & ".txt"
If Dir(myPath & fn) <> "" Then
 Kill myPath & fn
Else
 MsgBox fn & "はありません。", vbCritical
End If

こちらは、ご質問者の、パス、ファイル名の造りなど、状況が分からないのでGetOpenFilenameを使ったのです。初歩的な内容ですが、これで問題が残るのでしたら、何がどのように、お分かりにならないのか、情報やご自身のマクロを提供してください。

>この「製造番号」名のファイルを VBA による所定の処理が終了した時点で、
>ディレクトリ上から確実に削除したいのです。 削除の場合もダイアログ方式ではなく自動的に行いたいのですが。

製品番号とファイル名の関連性とか、こちらでは分からないし、実際のマクロも見ていないので、今の段階では分かりません。
    • good
    • 0
この回答へのお礼

質問が具体性を欠いていたようで、申し訳ありません。 上記にお示しいただいた方法でうまく行きました。 今回のケースでは Path は固定なので、そのパス名を myPath に当てはめて実行してずばり解決いたしました。 ありがとうございました。 因みに製造番号のファイル名は nnnnn.txt (nnnnnは5桁の整数)で、このファイルが C:\Dir-1\nnnnn.txt として格納されています。 このファイルをExcelに取り込み、Excel上の処理を行った後、最後にこの nnnnn.txt を削除するというものです。

お礼日時:2006/09/16 16:13

こんばんは。



以下のように、ダイアログを使ったらいかがですか?
入力よりも、ファイル名を確認できて楽です。

Dim FileName As String
FileName = Application.GetOpenFilename("テキストファイル*.txt(*.txt),*.txt")
If FileName = "False" Then Exit Sub

後は、ご自分のマクロにつなげてください。

この回答への補足

早速のご回答ありがとうございます。教えていただいたダイアログを使う方法は確かにファイルを確認できてよさそうなのですが、入力される文字列は製品の製造番号で、製品を見ながら入力するのでファイル名を確認できる必要はありません。 むしろ担当者が誤りをおかす心配があるのです。 
この「製造番号」名のファイルを VBA による所定の処理が終了した時点で、ディレクトリ上から確実に削除したいのです。 削除の場合もダイアログ方式ではなく自動的に行いたいのですが。

補足日時:2006/09/16 01:15
    • good
    • 0

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