Excel VBAについて確認させてください。
Excel VBAで下記のようなプログラムを作成しました。
簡単に言えば元のファイルを開いて、元のファイルにある処理をして
ファイル名を変えて保存するといったマクロです。
ですが、下記のプログラムはInputBox 関数で
ユーザにわざわざフルパス(C:\・・・)で入力させる必要があります。
(変数A1の部分です。)
この部分をこのマクロの存在するディレクトリの場所を何らかの関数?で
あらかじめ検索してその場所を引数に渡して指定しておき、
ユーザにはファイル名のみ入力させる方法に改良したいのですが
その方法をご教授いただけますでしょうか。
(チェックするファイルはこのマクロと同じディレクトリにあることになっている設定です。)
そして保存するときもフルパス(C:\・・・)でわざわざ入力する必要があります。
(下記のプログラムでは変数A2)
そこでこのマクロの存在するディレクトリの場所を何らかの関数?で
あらかじめ検索してその場所を引数に渡して指定しておき、
そこに自動的に名前を変えて保存する方法に改良したいのですが
その方法をご教授いただけますでしょうか。
(たとえば111.txtを処理した場合、111処理済.txtとして自動的に保存。)
以下、プログラム本文です。
-------------------------------------
Sub charactercheck()
Dim a As String
Dim y As Long
Dim A1 As String
Dim A2 As String
A1 = InputBox("チェックしたいファイル名をパス名から入力してください。")
A2 = InputBox("チェック結果を保存するファイル名をパス名から入力してください。")
With CreateObject("Scripting.FileSystemObject").GetFile(A1).OpenAsTextStream
a = .ReadAll
For y = 1 To Cells(Rows.Count, 1).End(xlUp).Row
a = Replace(a, Cells(i, 1), "")
Next
.Close
End With
With CreateObject("Scripting.FileSystemObject").OpenTextfile(A2, 2, True)
.Write a
.Close
End With
End Sub
お礼
遅くなって申し訳ございません。 早速のご回答ありがとうございます。 分かりやすいご説明、誠にありがとうございます。 ご参考にさせていただきます。