• ベストアンサー

エクセルのブックを保存するときのマクロ

エクセルで、ユーザーフォームを使ったマクロを作成しています。 もう、殆ど出来上がっているんですが、最後に別名保存の「コマンドボタン」を設置したいと考えています。 そこで質問なんですが、通常、別名保存をする際は ThisWorkbook.SaveAs Filename:="c:\○○\△□.xls" という記述を行いますが、「△□.XLS」のファイル名、つまり「△□」の部分を、テキストボックスで入力されたセルの文字列としたいと思っています。 もちろんこの文字列はその都度変化する変数です。 どなたかご存知の方がおられましたら、是非ともご教授頂きたくお願い致します。

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

  • ベストアンサー
  • dober-o
  • ベストアンサー率59% (260/439)
回答No.1

例えばこんな感じでどうでしょう ThisWorkbook.SaveAs Filename:="c:\○○\" & UserForm1.TextBox1.Value & ".xls" UserForm1 や TextBox1 は必要に応じて変えてください

shiga-hiro
質問者

お礼

早速回答を頂き、有難うございます。 ちゃんと出来ました。 記述頂いた内容を見て、僕の考えの間違いに気がつきました。""で全部くくっていたのを、分ければ問題なかったんですね。 有難うございました。

その他の回答 (2)

noname#22222
noname#22222
回答No.3

最後に閉じる時であれば、Auto_Close()も利用できます。 Option Explicit Public Sub Auto_Close()   Dim strFileName As String   strFileName = Worksheets("Sheet1").TextBox1.Value & ""   If Len(strFileName) > 0 Then      ThisWorkbook.SaveAs Filename:="c:\○○\" & strFileName & ".xls"   Else     MsgBox "上書き保存します。"   End If End Sub

shiga-hiro
質問者

お礼

早速の回答有難うございました。 お蔭様で希望通りの動作が出来ました。 有難うございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

GetSaveAsFilename を使うとか。 Dim fName  fName = Application.GetSaveAsFilename(, "Excel (*.xls), *.xls")  If fName <> False Then ThisWorkbook.SaveAs fName

shiga-hiro
質問者

お礼

早速の回答有難うございました。 お蔭様で希望通りの動作が出来ました。 有難うございました。

関連するQ&A