
これは私が使用したコードです。デザイナーでこれを実行したときにのみダイアログボックスが表示されます。デザイナーを閉じてマクロを実行するとブックのみが保存されますが、このマクロを実行するたびにダイアログボックスが表示されるようにしたいです。何かアドバイスや提案があればお願いします
Sub SaveAs()
Dim IntialName As String
Dim sFileSaveName As Variant
IntialName = "Sample Output"
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
If sFileSaveName <> False Then
ActiveWorkbook.SaveAs sFileSaveName
End If
End Sub
答え1
コードにはいくつか修正が必要です:
- 使用したサブルーチン名が予約語(コマンド)の1つと競合しているため名前を付けて保存したがって、Excel はこのエラーを返します。
- これをコマンドラインから削除する必要があります。
InitialFileName:=
理由:指定された名前でファイルを保存しようとしていますIntialName = "Sample Output"
。
- 最後はタイプミスです
InitialName
。
修正案:
サブルーチンの名前を変更します。たとえば、名前を付けて保存またはそれ以外の名前を付けて保存。
この行を置き換えてください。
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
これで、
sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
- Propmt を取得します。
これが使用する完全なコードです。
Sub SaveMyFileAs() Dim IntialName As String Dim sFileSaveName As Variant IntialName = "Sample Output" sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm") If sFileSaveName <> False Then ActiveWorkbook.SaveAs sFileSaveName End If End Sub
注意このコードは、ワークブックを閉じる前イベントも。