• ベストアンサー

ワークブックに名前をつけて保存するマクロ

教えてください!! ワークブックで名前をつけて保存するときのマクロなんですが、 自動記録すると下記のように記述されています。 ActiveWorkbook.SaveAs Filename:="C:\○○○\○○○\□□□□□.xls" この□□□□□の部分はインプットボックスを表示させたいのですが、 こういうマクロを組むことはできますか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 >コンパイルエラー:修正候補:ステートメントの最後 >とエラーになってしまいます。 そのエラーは、Sub ○○○() ときちんと書かれていないからです。ファイル名が入っていないエラーではありません。 私も二種類の型で書いてみました。 Test1 は、まだ、エラー処理が足りません。 '------------------------------- Sub Test1() 'InputBox を使った方法   Dim Fname As String   Dim fn As String   '規定のパスを書いておく   Const MYPATH As String = "C:\○○○\○○○\"   Fname = InputBox("ファイル名")   If Fname = "" Then Exit Sub   fn = MYPATH & Fname & ".xls"   If Len(Dir(fn)) = 0 Then     ActiveWorkbook.SaveAs Filename:=fn   Else     MsgBox Fname & " :すでに同じファイルがあります。", 48   End If End Sub '------------------------------- Sub Test2() 'ダイアログを使った方法   Dim Fname As String   Dim fn As String   '規定のパスを書いておく   Const MYPATH As String = "C:\○○○\○○○\"   Fname = Application.InputBox("ファイル名", Type:=2)   If Fname = "" Or StrComp(Fname, "FALSE", 1) = 0 Then Exit Sub   fn = MYPATH & Fname & ".xls"   With Application.Dialogs(xlDialogSaveAs)     .Show fn, 1   End With End Sub

couleur33
質問者

お礼

ありがとうございます!!! 完璧です。本当に助かります。すっきりしました(喜) 1番目もいいけど、2番目はブック名を引用したいときなんかはすごくいいなと思いました!ありがとうございました!!

その他の回答 (4)

回答No.4

たとえば、 '変数の定義 Dim fname$ 'ファイル名入力 fname$ = InputBox("ファイル名を入力してください", "○○○に保存", "") 'キャンセルまたは何も入力しなかったした場合、処理を中断 If fnname$ = "" Then Exit Sub Else End If 'ファイルを保存   ActiveWorkbook.SaveAs Filename:="C:\○○○\" & fname$ という感じでどうでしょう。 同名のファイル名を入力したとき上書き確認が出ますが、そこでいいえにした場合、エラーになります・・・中途半端ですいません。

couleur33
質問者

お礼

ありがとうございます。 やってみました。 インプットボックスにファイル名を入力しますが、保存されないようです。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

#1です。 では、 FN = InputBox("ファイル名を入力してください。", "名前をつけて保存") If FN = "" Then Exit Sub ActiveWorkbook.SaveAs Filename:="C:\○○○\○○○\" & FN & ".xls"

couleur33
質問者

お礼

ありがとうございます。 でも、やっぱり同じエラーが出てしまいます・・・。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

test = InputBox("ファイル名") ActiveWorkbook.SaveAs Filename:="C:\○○○\○○○\"&test&".xls" では?

couleur33
質問者

お礼

いけそう!!と思ってやってみましたが、 コンパイルエラー:修正候補:ステートメントの最後 とエラーになってしまいます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

組み込みダイアログをつかったらいかがでしょう? Application.Dialogs(xlDialogSaveAs).Show これで、保存先もファイル名もユーザーが自由に設定できます。

couleur33
質問者

お礼

ありがとうございます!! 保存場所が決まってる場合で、ブックの名前をつけるとこまでいけたら最高なんですが・・・。

関連するQ&A