• ベストアンサー
  • すぐに回答を!

エクセルVBAで 名前を付けて保存の方法、もしくは・・・

エクセルVBAで名前を付けて保存は、 SaveAsを使って・・・というのは、解っているのですが、 これだと指定した名前しか、保存できないですよね;; 自分的には、エクセルの名前を付けて保存を押すと出てくる、画面を出したいのです。 それか、とあるセルに入っている数字を利用して保存の名前にしたいのですが、どなたかわかる方宜しくお願いいたします。 (本当は下のほうのやり方が良いんですけどね;;) ActiveWorkbook.SaveAs FileName:= ("A1")"月分" 見たいな感じで VBAを打てたら良いのにな・・・と思っています;; 宜しくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数3504
  • ありがとう数3

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

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

SaveAs に渡すファイルネームをフルパスにすれば良いだけです。 1.直接フルパスを指定 Sub Test1()  ActiveWorkbook.SaveAs "D:\1月.xls" End Sub 2.A1に「D:\1月.xls」と入っている場合 Sub Test2() Dim fName  fName = ActiveSheet.Range("A1")  ActiveWorkbook.SaveAs fName End Sub 3.A1に「1」と入っている場合 Sub Test3() Dim fName  fName = "D:\" & ActiveSheet.Range("A1") & "月.xls"  ActiveWorkbook.SaveAs fName End Sub 4.ファイル保存ダイアログ Sub Test4() Dim fName  fName = Application.GetSaveAsFilename( _       fileFilter:="Excel(*.xls), *.xls")  If fName <> False Then    MsgBox "保存するファイル :" & fName    ActiveWorkbook.SaveAs fName  End If End Sub ブラウザ上で書いているのでスペルミス等はご容赦下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

いつもいつも、丁寧な回答ありがとうございます。 papayukaさんにはいつもお世話になりっぱなしです。 これだけ例題出していただけると、とても参考になります。 これを参考に色々やってみます。 ありがとうございました。

関連するQ&A

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

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

  • ExcelのVBAでブックの保存

    ExcelのVBAでブックを追加し保存を行っています。 その際、保存は、どこに行うのがよいのですか bookですか。sheetですか。 両方で、SaveAsができまが、使い分けがあるのでしょうか。 どのように使い分けするのでしょうか。 Workbooks.Add ActiveSheet.Name = "サンプル" ActiveSheet.SaveAs OutFileName ActiveWorkbook.SaveAs OutFileName ActiveWorkbook.Close

  • (Excel vba)ExcelシートをCSV保存する時、通貨記号を\にする方法

    セルの書式設定で通貨(記号は¥)を設定しているセルを含むexcelのシートをCSV形式に保存しようとしています。手作業でメニューの「ファイル」-「名前を付けて保存」をクリックし、ファイル形式をCSVにして保存した場合は通貨記号¥がついた金額が入っていて問題ありません。 次のようにvbaのSaveAsメソッドを使用した場合、通貨記号$のついた金額になってしまいます。 ActiveWorkbook.SaveAs Filename:=FCsvName, FileFormat:=xlCSV vbaで通貨記号を\にする方法を教えてください。環境はExcel2000・Windows98SEです。

その他の回答 (1)

  • 回答No.1
noname#240783

下記2行のどちらでも、セルA1に入った値をファイル名に出来ます。 ' ActiveWorkbook.SaveAs Filename:=ActiveSheet.Cells(1, 1) & "月分" ActiveWorkbook.SaveAs Filename:=ActiveSheet.Range("A1") & "月分" 但し、事前にセルA1に値が入っているか等々チェックのコードを かませた方がいいかもしれませんね。

共感・感謝の気持ちを伝えよう!

質問者からの補足

うわ~ ありがとうございます!! 後これに引き続いてなんですが、ドライブの指定って言うのは出来るでしょうか? Dドライブのとあるフォルダーに入れておきたいのです。 宜しくお願いいたします。

関連するQ&A

  • EXCEL/VBAでWORDファイル名の先頭に文字を付加して保存する方法

    EXCEL/VBAでWORDファイル名の先頭に文字を付加して保存する方法を教えてください。 編集してファイルを保存するときに、元のファイル名の先頭に任意の文字(変数:f_kenmei)を付加して保存したいと思います。 EXCELファイルの場合は、 ActiveWorkbook.SaveAs Filename:=f_kenmei & ActiveWorkbook.Name で良いと思いますが、WORDファイルの場合はどうしたら良いですか。 EXCEL/VBA初心者につき、宜しくお願いします。

  • Excel VBA 開いているブック名を取得してその名前で保存する方法を教えてください

    フォルダから不特定のファイル名「FoundFiles(i)」を取得してそのブックを開きます。セルA1が空の場合は、開いた場所と異なるフォルダにそのブックを保存させたいと、なんとか、かんとか作ってみたのですが、保存したファイル名がFoundFiles(i).csvになってしまいます。 もともとcsvを読み込んでいるので、拡張子はcsvで良いのですが、その開いたブック名を取得する方法を教えてください。 いろいろ考えて、変えては見たのですがうまくいきません。 使用しているオフィスはExcel2000です。宜しくお願いします。 ↓前後は省略していますが、こんな感じです。 Workbooks.Open Filename:=.FoundFiles(i) Select Case ThisWorkbooks Case Range("A1") = "" ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\デスクトップ\空\FoundFiles(i)"

  • VBAで名前を付けて保存

    テキストファイルをエクセル出力する処理を考えております。 テキストファイルを開き、名前をつけて保存する処理が上手くできません。 シート1のある2つのセルに入力パスと出力パスが設定されているとします。 例えばcells(4,4)に入力パスが設定されており(¥&#65374;&#65374;&#65374;.txt) cells(6,4)に出力パスが設定されており(¥&#65374;&#65374;&#65374;xls) 上記のような状態とします。 cells(4,4)にあるテキストファイルを開き、 それを拡張子をエクセルにしてcells(6.4)にある出力先に名前をつけて保存をしたいのです。 オープンする場合は Workbooks.OpenText Filename:=Workbooks("○○.xlsm").Sheets(1).Cells(4, 4).Value & ".TXT" で上手くいきました。 しかし保存の際に ActiveWorkbook.SaveAs Filename:=Sheets(1).Cells(6, 4).Value & ".xls" で実行するとエラーがでてしまいます。 どうすれば良いでしょうか。

  • Excel VBA で困っています。

    Excel VBA で困っています。 下記のプログラムで、「名前を付けて保存」→「キャンセル」 を選択した場合のエラーは回避できたのですが、 「名前を付けて保存」→「保存」→「同じ名前のファイルが既に ありますが置き換えますか?」→「いいえ(またはキャンセル)」 の時にエラーが出てしまいます。 どう直したら良いでしょうか。 よろしくお願いいたします。 Public Sub SaveBook() Dim myBook As Variant '「名前を付けて保存」ダイアログ myBook = Application.GetSaveAsFilename("test.xls", _ "Excelファイル,*.xls", , "Excelブックを保存") 'キャンセル時の処理 If StrConv(myBook, vbUpperCase) = "FALSE" Then Exit Sub 'ブックの保存 ActiveWorkbook.SaveAs Filename:=myBook End Sub

  • VBA でフロッピーに保存が時間かかりすぎる

    excel2000を使用し VBAで フロッピーディスクへの保存 ChDir "A:\" ActiveWorkbook.SaveAs Filename:="A:\請求台帳.xls",FileFormat:=xlNormal のマクロを実行したところ物凄い時間がかかります。 普通に送るから実行するとものの20秒もかかりません。 どうしてかよくわかりません。 フロッピへ送るフアイルは980MB程度です。 よろしくお願いします。

  • VBA 前月の月の名前でブックを保存

    VBA 前月の月の名前でブックを保存 お世話になっております。 上記の通りです。 今月の月で名前は保存できるのですが、先月の月にすることは可能なのでしょうか? *001.東京 7月分    ↓ *001.東京 6月分 //////現在使用しているコード//////// Dim Filename As String Filename = Range("K1") & "." & Range("A3") & Format(Date, "mm""月分") & ".xls" ActiveWorkbook.SaveAs "保存先" & Filename ActiveWindow.Close 宜しくお願い致します。

  • エクセルのファイルを、A2セルに入っている日付をファイル名として、保存したい。

    エクセルのVBAでファイルに名前を付けて、指定場所に保存したいのですが、過去の質問を読んでもよく分からなかったので教えてください。 A2セルに、2007/07/26 という日付が入っています。 この日付をファイル名として保存したいのですが、日付の形式は20070726とか、070726にしたいです。 ファイルの保存場所パスは、例えば、 S:\AAA\BBB\CCC\DDD というフォルダの中です。 ActiveWorkbook.SaveAs のあとにどのように続ければよいのでしょうか? 丸投げで申し訳ありませんがよろしくお願いいたします。

  • Excel2010VBAで名前を付けて保存

    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 の環境で、以前と同様、[名前を付けて保存] ダイアログを表示した際、変数で取得した値をファイル名ボックスに自動的に挿入するコードを教えてください。 よろしくお願いいたします。

  • エクセルのマクロ「名前を付けて保存」について

    エクセルのマクロ「名前を付けて保存について」質問です。 エクセルのファイルを指定フォルダに名前を付けて保存するVBAは作れたのですが、 たとえば、毎回 ボタンを押すとシート内("A4")と決まった言葉で保存したいです。 やり方を教えてください! ※すみません。今日の打ち合わせで使用したいので急ぎめでお願いします。

  • Excelシート1シートのみを指定フォルダへ保存

    Excelのシート1のみを、本日の日付と名前の入ったセル(I7)を保存する時の名前にして指定したフォルダへ保存したいと思っています。 1、シートは本日の日付+I7セルに入っている値を名前にする。 2、フォルダはCではなくV:\○○\○○\○○\○○\○○\○○\○○に格納 3、シート1以外のシート2、シート3は保存せず閉じる 4、格納後○○に保存しました。と表示 試行錯誤し、下記のように記述してみたのですが、 Sub Macro1() 'Option Explicit Sub Sample() Dim xSheet As Worksheet Dim myFile As String Dim myName As String Set xSheet = ActiveSheet ThisWorkbook.Worksheets("シート名").Copy 'myName = ActiveWorkbook.Worksheets(1).Name 'myFile = ThisWorkbook.Path & "\" & myName & ".xls" myFile = ThisWorkbook.Path & "\" & xSheet.Range("I7").Value & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=myFile Application.DisplayAlerts = True ActiveWorkbook.Close End Sub 日付を指定して保存 Sub test()  Dim Filename As String  Filename = Format(Date, "yyyy年mm月dd日") & ".xls"  ActiveWorkbook.SaveAs "C:\My Documents\" & Filename End Sub 日付とI7セルの名前を合せてブックの名前としたい場合どうVBEで記述すればいいのかわからないので詳しい方がおられましたら、 よろしくお願いいたします。 あまり詳しくないので、そのままコピーできるか、○○の部分を指定フォルダ名に変えてください。等の注釈を付けていただけると助かります。