
エクセルでセル値をファイル名にして保存しようと思っています。
エクセル2003では以下の方法でセル値を取得して保存しています。
'Cell値を取得
strName2 = Sheets("#######").Range("A1").Value
strName3 = Sheets("*******").Range("B2").Value
'strName2の値が空の場合、現在のブック名を代入
If strName2 = "" Then strName = ThisWorkbook.Name
'セル値の結合
sName = strName3 + strName2
'名前を付けて保存] ダイアログ ボックスを表示
fName = Application.GetSaveAsFilename(InitialFileName:=sName, fileFilter:="Excel(*.xls), *.xls")
'ファイル名を取得したら保存
If fName <> False Then ActiveWorkbook.SaveAs fName
同様の操作を2007以降で「マクロを有効にして保存」を行いたいのですが、どの様にすればいいのでしょうか?
(自動保存では以下の様になる状態の事です。)
ActiveWorkbook.SaveAs Filename:="#:\*******.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
2007の時の「'名前を付けて保存] ダイアログ ボックスを表示」の方法が分かりません。
共通の命令文では出来でしょうから、最終的にはエクセルのバージョンを取得して、IFで分岐させようと思っています。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
fName = Application.GetSaveAsFilename(InitialFileName:=sName, fileFilter:="Excel(*.xlsm), *.xlsm")
です。
また、キャンセル時の対応についてですが、
変数fNameを Dim fName As Variant あるいは Dim fName
と、Variant型で宣言してるなら、
If VarType(fName) <> vbBoolean Then
ActiveWorkbook.SaveAs Filename:=fName, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
End If
こんな感じでVarType関数を使ってチェックしたほうが良いと思います。
同じコードを試して上手く行かなかったので質問させていただいたのですが、ツインPCで操作していて2003で試してしまっていたみたいです。
ポカミスでした。ありがとうございます。
No.2
- 回答日時:
※Excelのセルには適当な次のデータ一覧が有るとします。
C8:C~ フォルダ(フルパス)… D:\Test\
D8:D~ 現行ファイル名 … xxxlog009.txt
G8:G~ 新規ファイル名 … zzzlog009.txt
▼リネームのソースコードは、こんな感じかな(実機確認済み)
Sub Rename()
Dim LastRow As Long
Dim R As Long
Dim rtn As Integer
LastRow = Range("G65536").End(xlUp).Row '←新規ファイル名の列の最終行を取得する
On Error GoTo Err_FileRename
For R = 8 To LastRow
If Cells(R, 7).Value <> "" Then
Range(Cells(R, 7), Cells(R, 7)).Font.ColorIndex = 5 '←文字を青色にする
Name Cells(R, 3) & Cells(R, 4) As Cells(R, 3) & Cells(R, 7)
End If
Next R
Exit Sub
Err_FileRename:
Range(Cells(R, 7), Cells(R, 7)).Font.ColorIndex = 3 '←文字を赤色にする
Resume Next
End Sub

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
エクセル文書を保存したらメモ...
-
エクセルでCSVファイルとして保...
-
Excel画面の自動更新 Excelファ...
-
エクセルでVBAを使用して1分毎...
-
エクセル・マクロ(VBA)で、指定...
-
Excelのデーターが一瞬で消えた。
-
「変更を保存しますか?」と聞...
-
ピボットテーブルの更新ができない
-
Illustratorファイルに読み取り...
-
メール添付されているファイル...
-
エクセル2016 上書き保存が出来...
-
「名前を付けて保存」ができな...
-
エクセル 更新していないのに...
-
Excelの読み取り専用について質...
-
拡張子の替え方について教えて...
-
エクセル2007で互換モードで上...
-
画像になってしまう、テキスト...
-
エクセルを開いた時に強制的に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
エクセル文書を保存したらメモ...
-
メール添付されているファイル...
-
Excel画面の自動更新 Excelファ...
-
エクセルでCSVファイルとして保...
-
エクセルでVBAを使用して1分毎...
-
EXCELで同一名のファイルがある...
-
ピボットテーブルの更新ができない
-
エクセル 更新していないのに...
-
Illustratorファイルに読み取り...
-
エクセルがwindows終了時に未保...
-
エクセル2007で互換モードで上...
-
マクロ VBA ファイル名を連番...
-
エクセル・マクロ(VBA)で、指定...
-
開いてるファイル(エクセル等)...
-
エクセルが「名前を付けて保存...
-
メールソフト「サンダーバード...
-
Excel2019とOneDriveでのサイン...
-
Excelで上書き保存時の確認をは...
おすすめ情報