※ ChatGPTを利用し、要約された質問です(原文:Excel2010VBAで名前を付けて保存)
Excel2010VBAで名前を付けて保存
このQ&Aのポイント
Windows XP + Excel 2010 の際、社内の定型ドキュメントを保存する際、[名前を付けて保存] ダイアログでファイル名が空白になり、FileName 変数の値を取得してくれなくなる問題が発生しています。
リプレイス後のWin7Pro+Excel2010 の環境で、以前と同様、[名前を付けて保存] ダイアログを表示した際、変数で取得した値をファイル名ボックスに自動的に挿入する方法を知りたいです。
OS の変更に伴うこのような動作の変更の差異が何にあるのかわからないため、解決策をお聞かせください。
Windows XP + Excel 2010 の際、社内の定型ドキュメントを保存する際、以下のようにして [名前を付けて保存] ダイアログを表示し、ファイル名ボックスに FileName 変数の値を入れておりました。
Dim FileName As String
(中略)
FileName = xxxx & yyyy & zzzz (<--- xxxx、yyyy、zzzz は毎回値が変化するので、別の変数を使用して値を取得しています)
SaveFileName=Application.GetSaveAsFilename(InitialFileName:=FileName)
If SaveFileName <> "False" Then
ActiveWorkbook.SaveAs Filename:=SaveFileName, FileFormat:=xlOpenXMLWorkbook
MsgBox "このブックを保存しました。"
Else
MsgBox "保存がキャンセルされました。"
End If
End Sub
しかし、Win7Pro+Excel2010 のマシンにリプレイスし、同一の vba を動かしますと [名前を付けて保存] ダイアログでファイル名が空白になり、FileName 変数の値を取得してくれなくなってしまいました。
なお、SaveFileName 以降の文字列をコメントアウトし、SaveFileName の直前で Msgbox FileName を
実行すると、意図したとおり FileName 変数が働き、ファイル名を取得してくれています。
また、InitialFileName 以降の文字列を固定値にする ("" で囲む) と、InitialFileName で指定した文字列を取得して [名前を付けて保存] ダイアログを表示します。
OS の変更に伴うこのような動作の変更の差異が何にあるのかわかりません。
Win7+Excel2010 の環境で、以前と同様、[名前を付けて保存] ダイアログを表示した際、変数で取得した値をファイル名ボックスに自動的に挿入するコードを教えてください。
よろしくお願いいたします。
お礼
cj_moverさん、早速のコメントをくださりありがとうございました! おかげさまで解決しました。 今後ともよろしくお願いします。