
下記のマクロを実行すると
指定フォルダ内に指定シートと指定セル値をファイル名として、保存され、マクロ設定ブックはそのままの状態ですが、
このマクロを、
マクロを実行した時に
指定フォルダ内に指定シートと指定セル値をファイル名として、
作業ブックに上書き保存され、ブックをクローズできるように変更する方法を教えてください。
よろしくお願いいたします。
現状のマクロ
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の数式について教えてください。
Excel(エクセル)
-
5
エクセルの改行について
Visual Basic(VBA)
-
6
エクセルについて教えてください
Excel(エクセル)
-
7
エクセル タブの下のメニューを選択 実行するコード
Visual Basic(VBA)
-
8
VBAでセルの書式を変えずに文字列を置換する方法をご教示ください
Visual Basic(VBA)
-
9
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
10
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
11
エクセルVBAで在庫の組み換え処理をしたい
Visual Basic(VBA)
-
12
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
13
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
14
VBAについてです。 どなたかご教示いただけないでしょうか。 データのチェックシートを作成しています
Visual Basic(VBA)
-
15
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
16
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
17
算術演算子「¥」の意味について
Visual Basic(VBA)
-
18
エクセルのVBAコードについて教えてください。
Visual Basic(VBA)
-
19
エクセルVBA 段落番号自動取得方法
Visual Basic(VBA)
-
20
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】開いているブックの...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【ExcelVBA】5万行以上のデー...
-
vb.net(vs2022)のtextboxのデザ...
-
Vba 型が一致しません(エラー1...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA 選択範囲の罫線色の...
-
[VB.net] ボタン(Flat)のEnable...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】切取りの場合、形式...
-
Vba セルの4辺について罫線が有...
-
エクセルのVBAコードと数式につ...
-
質問58753 このコードでうまく...
-
エクセルのマクロについて教え...
-
【マクロ】変数を使った、文字...
-
ワードの図形にマクロを登録で...
-
testファイル内にある複数のpng...
-
VBAでFOR NEXT分を Application...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロVBAについて、コードを教...
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
おすすめ情報
現在のファイル名が「2025省エネ・構造資料(2月17日).xlsm 」となっております。
日々、このファイルを更新し、更新した日付がファイル名になるように設定をしたいのです。
たまに、同じ日に更新をすることもある為、
「2025省エネ・構造資料(2月17日).xlsm 」に上書き保存になったり
次の日に更新した場合は、
指定セルが「2025省エネ・構造資料(2月18日) 」となってますので
元のファイル「2025省エネ・構造資料(2月17日).xlsm 」
に「「2025省エネ・構造資料(2月18日).xlsm 」と上書き保存されるようにしたいのですが、
可能でしょうか。
よろしくお願いいたします。
回答ありがとうございます。
そうなんですね、
少し整理してみます。
又、後ほどご連絡させていただきます。