2017-07-11 33 views
1

.txtファイルを作成し、[名前を付けて保存]ダイアログボックスを開き、ファイル名を埋め込むExcelマクロがあります。しかし、名前を付けて保存ダイアログボックスで入力ボタンを押す方法を理解できません。VBAのダイアログボックスでEnterキーを押す方法は?

SendKeyの入力を試しましたが、動作していません。

ここは私のマクロの一番下です。

myPath = some path that I have 
file_loc = Application.GetSaveAsFilename(myPath, fileFilter:="Text Files 
(*.txt), *.txt") 
wb.SaveAs Filename:=file_loc, FileFormat:=xlText 
wb.Close 

ご協力いただければ幸いです。

+3

ユーザーがファイル名/パスを入力したい場合は、 'GetSaveAsFilename'だけを使用します(この場合は、プログラムでEnterキーを押したくないでしょう)。名前/パスを知っていれば、 'SaveAs'メソッドを呼び出してください。 – ThunderFrame

答えて

2

ThunderFrameにお返事ありがとうございます!私はVBAコードの終わりを次のように変更しました。

Application.DisplayAlerts = False 
file_loc = some path that I have 
wb.SaveAs Filename:=file_loc, FileFormat:=xlText 
wb.Close 
Application.DisplayAlerts = True 
Application.ScreenUpdating = True 

は、ポップアップ無効にするApplication.DisplayAlerts = Falseを置くようにしてください「あなたはこのファイルを保存してよろしいですか?」

+1

はい、 'DisplayAlerts'が役に立ちます。しかし、DisplayAlertsの* current *値を変数に格納し、*その値に* restore *します。他のコードが意図的にDisplayAlertsをFalseに設定した場合に安全であることがわかります。これは、プロシージャの開始時に関係なく、コードを明示的に 'True'に復元する場合のみです。 – ThunderFrame

+0

'file_loc'がパスだけの場合は、パス内の実際のファイル名も指定する必要はありませんか? – YowE3K

+0

@ThunderFrame良いコール!私はそれを行います。 – Naomi

関連する問題