こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelマクロでファイルを開き、別名での保存方法

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

投稿日時 - 2011-10-05 01:06:23

QNo.7052308

すぐに回答ほしいです

質問者が選んだベストアンサー

>この部分をこのマクロの存在するディレクトリの場所

ThisWorkbook.Path
です。

投稿日時 - 2011-10-05 06:23:40

お礼

遅くなって申し訳ございません。

早速のご回答ありがとうございます。

分かりやすいご説明、誠にありがとうございます。

ご参考にさせていただきます。

投稿日時 - 2011-10-09 23:05:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

Sub test01()
a = CurDir
MsgBox a
End Sub
をやってみて(標準モジュールで)、この場合に、使えるかどうか考えてみて。
使うときは、この文字列最後に\が必要と思うが。

投稿日時 - 2011-10-05 09:13:58

お礼

遅くなって申し訳ございません。

早速のご回答ありがとうございます。

アドバイスご参考にさせていただきます。

投稿日時 - 2011-11-24 00:52:32

あなたにオススメの質問