• ベストアンサー

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

教えてください!! ワークブックで名前をつけて保存するときのマクロなんですが、 自動記録すると下記のように記述されています。 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

  • 名前の取得のマクロ

    マクロを使って、ファイルの保存をしようと考えています。 CSVファイルをコピーして、Excelファイルに貼り付けて、名前を付けて保存する。 という流れの処理を考えています。 そこで、CSVファイルの名前を取得して、その名前を Excelファイルの名前にしたいのですが、上手くいきません。 Dim filname As String Application.FindFile filname = ActiveWorkbook.Name Namezu = ActiveWorkbook.Name Cells.Select Selection.Copy Windows("000.xls").Activate Sheets("測定データ").Select ActiveSheet.Paste '名前を付けて保存   ActiveWorkbook.SaveAs Filename:= _ "C:\新しいフォルダ\filname.xls", FileFormat:=xlNormal

  • マクロ 保存の仕方

    ' 指定の場所に保存する ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\デスクトップ\A\B\" & Replace(Range("k2").Value, "/", "") & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close 上記のようにマクロを組みましたが、同じ名前で1回保存すると2回目からエラーします。 2回目から保存名の後ろに(2)、3回目は(3)等を付けて保存したいのですが。

  • エクセル2007でエクセル2003形式で保存しようとしたときに、互換性

    エクセル2007でエクセル2003形式で保存しようとしたときに、互換性チェックのアラートを出さずに保存するには、どのようにマクロ記述すればよいですか。 ActiveWorkbook.SaveAs Filename:= "book1.xls", FileFormat:=xlExcel8 の前か後に何かを記述すれば良いと思うのですが、それがわかりません。 よろしくお願いいたします。

  • マクロでの自動保存

    エクセルで作ったデータをボタン一つで自動的に特定のフォルダーに 保存するマクロを作りたいのですが、色々なサイトを参考に保存名前を 付けて保存するプログラムまでは組めたのですが、特定のフォルダに 保存していくプログラムがうまく動きません。 下記に作成したコードを記載するので、アドバイスお願いします。 Sub データ保存() Sheets("シート名").Select パス = ActiveWorkbook.Path 別名 = Application.InputBox(prompt:="入力例.12345", _ Title:=" ファイル名を入力して下さい", Type:=2) 別名 = パス & "\" & 別名 & ".xls" Sheets("シート名").Copy ActiveWorkbook.SaveAs Filename:=別名 ActiveWorkbook.Close End Sub

  • エクセル2010で2003形式でマクロ保存したい

    マクロ初心者ですので、よろしくお願いいたします。類似例が無いかと検索しましたが見つからないので質問いたします。 会社のパソコンがエクセル2003から2010に変更されました。しかし、XP環境でエクセル2003しか使えないソフトがあり、そのパソコンも残してあります。2010で作成したマクロブック(xlsm)が、2003でも使えるようファイル名を付けてエクセル2003(xls)で保存できるマクロを作成したのですが、うまくいきません。 2010で保存できた構文に、「m」を削除し、Excel8の構文を付加するのですが、構文「FileFormat:」がハイライトされ、コンパイルエラーと表示され、「名前付き引数がありません」となります。 ActiveWorkbook.SaveCopyAs Filename:=FPATH & "\" & book3 & ".xls", _ FileFormat:=xlExcel8  「ActiveWorkbook.SaveAs」では拡張子が合わないとなりますが、保存はできています。「ActiveWorkbook.SaveCopyAs」で名前付け保存したいのですが、上記のエラーとなります。 よろしくご回答をお願いいたします。

  • エクセル VBAによる名前を付けて保存?

    エクセルのVBAにて名前(本日日付&NO.)を付けてブックを保存 したいのですが下記のように書込作成しました。 ActiveWorkbook.SaveAs _ Filename:="C:\発注書\" _& "発注済" & Format(Date, "mm.dd")   & "(" & ".xls" 上記で 発注済(  までの名前を付けの保存は出来たのですが (  のあとに発注書シート内のセルU12にあるNOを入れたいのですが 色々試してみましたがコンパイルエラーが出てしまいます。 セルをどの様に指定すれば宜しいでしょうか?

  • マクロVBA特定フォルダーに次々に自動保存する方法

    マクロ初心者です。教えて下さい。 ループでお客様のコードが入力されている限りデータを作成するマクロを作っています。 現在の状態は いちいちファイルを付けて保存のメッセージボックスで「保存」としなければなりません。 AAAのフォルダーに作成されたデータを次々に保存していくにはどうしたら良いですか? (メッセージBOXを出さずに) マクロ実行したら、何もしなくてもAAAフォルダーに全て保存されている状態にしたいです。 宜しくお願い致します。 '名前を付け保存するファイル名の初期設定 Dim Save_File, Save_Filename As String Save_Filename = Sheets("企業別金額サマリ").Range("A3").Value & " 販売実績(5月).xls" '「名前を付けて保存する」ダイアログボックスの表示 Save_File = Application.GetSaveAsFilename(Save_Filename, _ FileFilter:="Excelファイル,*.xls,すべてのファイル,*.*") '名前を付けて保存する ActiveWorkbook.SaveAs Filename:= _ Save_File, FileFormat:=xlNormal, _ Password:="mpd", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False

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

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

  • ファイルの保存先を任意にしたい(マクロ)

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 ActiveCell.FormulaR1C1 = "1" Range("B1").Select ChDir "C:\Documents and Settings\a\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A2").Select ActiveCell.FormulaR1C1 = "2" Range("B2").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book2.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A3").Select ActiveCell.FormulaR1C1 = "3" Range("B3").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book3.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A4").Select ActiveCell.FormulaR1C1 = "4" Range("B4").Select  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • Excel マクロのsaveasでファイル保存の方法で教えて下さい

    Excel2003で、USBメモリ上の2つのファイル(マクロを保存したmacro.xls及び作業を行うsagyo.xls)を開き、マクロをかけて、最後にxlsファイル形式で上書き保存したいのですが、 (1)ActiveWorkbook.Save で、上書き保存を行うと、なぜかUSBメモリ上にhtmlファイル保存されてしまいます。このため、xlsファイル形式保存をあえて明示し、saveasの既定値であるxlWorkbookNormalを指定し、 (2)ActiveWorkbook.SaveAs , FileFormat:=xlWorkbookNormal とすると、(カレントフォルダである)マイドキュメントに保存されてしまいます。 Q1.(1)のようになる原因は何でしょうか? Q2.USBメモリは、他のPC環境でも使うので、「saveas "F:\sagyo.xls"」などとドライブ指定せずに使いたいのですが、USBメモリ上に上書き保存するマクロの書き方はないでしょうか?

専門家に質問してみよう