
エクセルでセル値をファイル名にして保存しようと思っています。
エクセル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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
エクセル文書を保存したらメモ...
-
いきなりPDFでPDFファイルを開...
-
Excel画面の自動更新 Excelファ...
-
エクセルファイルに上書き保存...
-
ピボットテーブルの更新ができない
-
Excelで上書き保存時の確認をは...
-
メール添付されているファイル...
-
Excel 2003の保存アイコンが消...
-
エクセルで作った書類の作成者...
-
エクセルの保存をするときのタ...
-
Illustratorファイルに読み取り...
-
マクロでエクセルをメール送信...
-
エクセルを開いた時に強制的に...
-
csvファイルを上書き保存でカン...
-
パワーポイントをエクセルファ...
-
【スプレドシート】IMPORTRANGE...
-
EXCELで上書き保存しないと反映...
-
メモ帳で開く設定を元に戻したい。
-
エクセルで「500時間」を「何日...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
エクセル文書を保存したらメモ...
-
メール添付されているファイル...
-
Excel画面の自動更新 Excelファ...
-
エクセルでCSVファイルとして保...
-
メールソフト「サンダーバード...
-
Illustratorファイルに読み取り...
-
エクセル 更新していないのに...
-
excelとCSVについて質問です! ...
-
開いてるファイル(エクセル等)...
-
ピボットテーブルの更新ができない
-
EXCELで同一名のファイルがある...
-
エクセルがwindows終了時に未保...
-
エクセル表のCSV化ができない
-
エクセルでVBAを使用して1分毎...
-
エクセル2016 上書き保存が出来...
-
Excelのデーターが一瞬で消えた。
-
エクセルを開いた時に強制的に...
-
エクセル2007で互換モードで上...
おすすめ情報