
下記のマクロを実行すると
指定フォルダ内に指定シートと指定セル値をファイル名として、保存され、マクロ設定ブックはそのままの状態ですが、
このマクロを、
マクロを実行した時に
指定フォルダ内に指定シートと指定セル値をファイル名として、
作業ブックに上書き保存され、ブックをクローズできるように変更する方法を教えてください。
よろしくお願いいたします。
現状のマクロ
Sub Macro1()
Const fol As String = "\\nas-sp01\share\確認部\■意匠\戸建\戸建て電子申請関連\ひな形\"
Dim fname As String, fPath As String
Dim exte As String
fname = Worksheets("省エネチェック").Range("W1").Text
exte = ".xltm"
fPath = fol & fname & exte
ThisWorkbook.SaveAs Filename:=fPath, FileFormat:=xlOpenXMLTemplateMacroEnabled
End Sub
以上となります。
よろしくお願いいたします。
No.3
- 回答日時:
>指定フォルダ内に指定シートと指定セル値をファイル名として、
作業ブックに上書き保存され、ブックをクローズできるように変更する方法を教えてください。
掲示コードは
ブック名を Worksheets("省エネチェック").Range("W1").Text としていますが
>元のファイル「2025省エネ・構造資料(2月17日).xlsm 」
に「「2025省エネ・構造資料(2月18日).xlsm 」と上書き保存されるようにしたい
という事は()内の文字列を入れ替えれば出来るのではないでしょうか
文字列変更も参考として書くと
W1が2月18日として
Dim oldName As String, newName As String
Dim oldTxt As String, newTxt As String
Dim sbS As Long, sbE As Long
oldName = ActiveWorkbook.Name
newTxt = Sheets("省エネチェック").Range("W1").Text
sbS = InStr(oldName, "(")
sbE = InStr(oldName, ")")
If sbS > 0 And sbE > 0 And sbS < sbE Then
oldTxt = Mid(oldName, sbS + 1, sbE - sbS - 1)
End If
newName = Replace(oldName, oldTxt, newTxt)
いずれにしましてもブック名の問題なので良しなに
命名に禁則文字が無ければ(同名ブックがあっても上書き)保存できます
Application.DisplayAlerts = False
TargetBook.SaveAs Filename:=folPath & "\" & newName
Application.DisplayAlerts = True
また、フォルダパスは作業ブックが「2025省エネ・構造資料(2月17日).xlsm 」であるなら
folPath=ActiveWorkbook.Pathなどで取得できますね
ブックをクローズ・・・開いているブックが1つならExcel自体を閉じる必要があるので
If Workbooks.Count = 1 Then Application.Quit
同名があったら上書き
無ければ変更内容を新しいブック名で保存し
元ブックを削除 と解釈すると下記の様な処理になります
Sub test()
Dim oldFile As String
Dim fol As String
Dim fname As String, fPath As String
Dim exte As String '拡張子
Dim wb As Workbook
Set wb = ActiveWorkbook '作業ブック
oldFile = wb.FullName
fol = wb.Path
'指定セルが「2025省エネ・構造資料(2月18日)
fname = Worksheets("省エネチェック").Range("W1").Text
exte = ".xlsm"
fPath = fol & "\" & fname & exte
'同名ブックがある場合でも上書き
Application.DisplayAlerts = False
wb.SaveAs Filename:=fPath, FileFormat:=52 'マクロ有効ブック
Kill oldFile '元ファイルを削除しています
Application.DisplayAlerts = True
If Workbooks.Count = 1 Then Application.Quit 'EXCEL自体を終了する場合
wb.Close
Set wb = Nothing
End Sub
No.2
- 回答日時:
>元のファイル「2025省エネ・構造資料(2月17日).xlsm 」
に「「2025省エネ・構造資料(2月18日).xlsm 」と上書き保存されるようにしたい
この場合、ファイル名が変わるので上書き保存とは言いません。
2/18になれば、新規保存扱いになり、別名保存(2/17は残ったまま)となります。
ログ的に日付ごとにファイルを保存するというのでなく、常に最後に使用したファイルのみ残すというのであれば、通常保存(上書き保存)した上でFSOでファイル名を指定のファイル名に変更し、ファイルを閉じる という流れにした方がいいかなと思います。(ファイル名が変わっていようがいまいがこの動作をするので判別式は不要かと思います。)
あと、やることが「セルの値にファイル名を変更する」だけ(他のシーケンスは絡まない)の処理ならVBSでやった方が簡単だと思うのですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
vbaマクロについて
Visual Basic(VBA)
-
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
-
4
エクセルについて教えてください
Excel(エクセル)
-
5
エクセルの改行について
Visual Basic(VBA)
-
6
Excelの数式について教えてください。
Excel(エクセル)
-
7
【マクロ】開いているブックの名前を取得した後、名前をセルに1つづつ入力するには?
Visual Basic(VBA)
-
8
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
9
エクセルVBAで在庫の組み換え処理をしたい
Visual Basic(VBA)
-
10
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
11
VBAでFOR NEXT分を Application.OnTimeを使って
Visual Basic(VBA)
-
12
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
13
エクセルのVBAコードについて教えてください。
Visual Basic(VBA)
-
14
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
15
VLOOKUP FALSEのこと
Excel(エクセル)
-
16
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
17
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
18
改行文字「vbCrLf」とは
Visual Basic(VBA)
-
19
算術演算子「¥」の意味について
Visual Basic(VBA)
-
20
Excelで作成した出欠表から日付ごとの欠席者を書き出す方法について教えてください。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
Excelのマクロについて教えてく...
-
vba textboxへの入力について教...
-
vbsでのwebフォームへの入力制限?
-
【VBA】 結合セルに複数画像と...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
ワードの図形にマクロを登録で...
-
Web画面の文字をVB6で取得したい
-
エクセルでCDOを使ったメール送...
-
VBA 入力箇所指定方法
-
EXCEL vbaでシート上に配置した...
-
VBAでユーザーフォームを指定回...
-
【VBA】値を変更しながら連続で...
-
【ExcelVBA】値を変更しながら...
-
[VB.net] ボタン(Flat)のEnable...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報
現在のファイル名が「2025省エネ・構造資料(2月17日).xlsm 」となっております。
日々、このファイルを更新し、更新した日付がファイル名になるように設定をしたいのです。
たまに、同じ日に更新をすることもある為、
「2025省エネ・構造資料(2月17日).xlsm 」に上書き保存になったり
次の日に更新した場合は、
指定セルが「2025省エネ・構造資料(2月18日) 」となってますので
元のファイル「2025省エネ・構造資料(2月17日).xlsm 」
に「「2025省エネ・構造資料(2月18日).xlsm 」と上書き保存されるようにしたいのですが、
可能でしょうか。
よろしくお願いいたします。
回答ありがとうございます。
そうなんですね、
少し整理してみます。
又、後ほどご連絡させていただきます。