- ベストアンサー
エクセルでセル値をファイル名にして保存する方法
- エクセル2003ではセル値を取得して保存する方法を紹介します。セル値を取得し結合して、名前を付けて保存するダイアログボックスを表示します。同様の操作を2007以降で行うには、マクロを有効にして保存する方法を使用します。
- エクセル2007以降で「マクロを有効にして保存」する方法を紹介します。ActiveWorkbook.SaveAsメソッドを使用して、ファイル名、ファイル形式、バックアップの有無などを指定します。
- エクセルのバージョンを取得して、条件分岐させて保存方法を選択することもできます。エクセル2003の場合は名前を付けて保存するダイアログボックスを表示し、エクセル2007以降の場合はマクロを有効にして保存する方法を使用します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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関数を使ってチェックしたほうが良いと思います。
その他の回答 (1)
- goo793ww
- ベストアンサー率80% (8/10)
※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
お礼
ありがとうございます。 かなり汎用性が高そうです。 今後の参考にさせて頂きます。
お礼
同じコードを試して上手く行かなかったので質問させていただいたのですが、ツインPCで操作していて2003で試してしまっていたみたいです。 ポカミスでした。ありがとうございます。