- ベストアンサー
エクセルVBAで 名前を付けて保存の方法、もしくは・・・
エクセルVBAで名前を付けて保存は、 SaveAsを使って・・・というのは、解っているのですが、 これだと指定した名前しか、保存できないですよね;; 自分的には、エクセルの名前を付けて保存を押すと出てくる、画面を出したいのです。 それか、とあるセルに入っている数字を利用して保存の名前にしたいのですが、どなたかわかる方宜しくお願いいたします。 (本当は下のほうのやり方が良いんですけどね;;) ActiveWorkbook.SaveAs FileName:= ("A1")"月分" 見たいな感じで VBAを打てたら良いのにな・・・と思っています;; 宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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 ブラウザ上で書いているのでスペルミス等はご容赦下さい。
その他の回答 (1)
下記2行のどちらでも、セルA1に入った値をファイル名に出来ます。 ' ActiveWorkbook.SaveAs Filename:=ActiveSheet.Cells(1, 1) & "月分" ActiveWorkbook.SaveAs Filename:=ActiveSheet.Range("A1") & "月分" 但し、事前にセルA1に値が入っているか等々チェックのコードを かませた方がいいかもしれませんね。
補足
うわ~ ありがとうございます!! 後これに引き続いてなんですが、ドライブの指定って言うのは出来るでしょうか? Dドライブのとあるフォルダーに入れておきたいのです。 宜しくお願いいたします。
お礼
いつもいつも、丁寧な回答ありがとうございます。 papayukaさんにはいつもお世話になりっぱなしです。 これだけ例題出していただけると、とても参考になります。 これを参考に色々やってみます。 ありがとうございました。