- ベストアンサー
VBAでWordに名前を付けて保存する方法
- VBAを使用して、Wordに名前を付けて保存する方法について教えてください。現在、既存のマクロに追加したい工程があります。また、保存する際には特定のフォーマットで保存したいです。
- 以下のVBAコードを使用して、template.docxを開いてExcelのテキストを転記しています。追加したい工程は、保存するフォルダに指定のフォーマットで保存することです。
- 追加したい工程では、template.docxが保存されているフォルダに「転記日_常勤役員会報告書(XX統計転記日の前の月月期について)」という名前で保存できるようにしたいです。具体的な例として、「220804_常勤役員会報告書(XX統計7月期について)」というファイル名で保存したいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでいかがでしょうか。 Sub EXCEL_WORD04() Dim WordApp As Object Dim WordDoc As Word.Document Dim I, lRow As Long Dim ExcelText Dim wkTuki As Long Dim PutFName As String Set WordApp = CreateObject("Word.Application") WordApp.Visible = True lRow = Cells(Rows.Count, "A").End(xlUp).Row Set WordDoc = WordApp.Documents.Open("D:\TestDir\hoge.docx") With WordApp For I = 2 To lRow ExcelText = Cells(I, "A").Text & vbLf .Selection.TypeText ExcelText Next I End With '名前を組み立てて保存 wkTuki = Month(DateSerial(Year(Now), Month(Now), 1) - 1) PutFName = _ Format(Now, "eeMMDD") & _ "_常勤役員会報告書(XX統計" & _ Format(wkTuki, "00") & "月期について)" WordDoc.SaveAs2 Filename:="D:\TestDir\" & PutFName '後処理 WordDoc.Close savechanges:=False WordApp.Quit Set WordDoc = Nothing Set WordApp = Nothing End Sub
その他の回答 (3)
- HohoPapa
- ベストアンサー率65% (455/693)
#2への補足です。 (例)220804_常勤役員会報告書(XX統計7月期について) (例)220804_常勤役員会報告書(XX統計12月期について) としたい場合は '名前を組み立てて保存 wkTuki = Month(DateSerial(Year(Now), Month(Now), 1) - 1) PutFName = _ Format(Now, "YYYYMMDD") & _ "_常勤役員会報告書(XX統計" & _ Format(wkTuki, "0") & "月期について)" WordDoc.SaveAs2 Filename:="D:\TestDir\" & PutFName (例)220804_常勤役員会報告書(XX統計07月期について) (例)220804_常勤役員会報告書(XX統計12月期について) としたい場合は '名前を組み立てて保存 wkTuki = Month(DateSerial(Year(Now), Month(Now), 1) - 1) PutFName = _ Format(Now, "YYYYMMDD") & _ "_常勤役員会報告書(XX統計" & _ Format(wkTuki, "00") & "月期について)" WordDoc.SaveAs2 Filename:="D:\TestDir\" & PutFName となります。
補足
ありがとうございます。 ファイル名ですが、和暦を忘れておりました。 (例)220804_常勤役員会報告書(XX統計令和4年7月期について) とするには、どのようにしたらよいでしょうか。 ご教授お願いいたします。
- HohoPapa
- ベストアンサー率65% (455/693)
以下でいかがでしょうか。 Sub EXCEL_WORD04() Dim WordApp As Object Dim WordDoc As Word.Document Dim I, lRow As Long Dim ExcelText Dim wkTuki As Long Dim PutFName As String Set WordApp = CreateObject("Word.Application") WordApp.Visible = True lRow = Cells(Rows.Count, "A").End(xlUp).Row Set WordDoc = WordApp.Documents.Open("D:\TestDir\hoge.docx") With WordApp For I = 2 To lRow ExcelText = Cells(I, "A").Text & vbLf .Selection.TypeText ExcelText Next I End With '名前を組み立てて保存 wkTuki = Month(DateSerial(Year(Now), Month(Now), 1) - 1) PutFName = _ Format(Now, "YYYYMMDD") & _ "_常勤役員会報告書(XX統計" & _ Format(wkTuki, "00") & "月期について)" WordDoc.SaveAs2 Filename:="D:\TestDir\" & PutFName '後処理 WordDoc.Close savechanges:=False WordApp.Quit Set WordDoc = Nothing Set WordApp = Nothing End Sub
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
変数「転記した日」と、変数「転記した日の前の月」に正しい値を設定する処理を追加して、 Set WordDoc = WordApp.Documents.Open("H:\***\***\***\template.docx") の部分を 「"H:\***\***\***\template.docx"ファイルを、"H:\***\***\***\" & 転記した日 & "_常勤役員会報告書(XX統計" & 転記した日の前の月 & "月期について).docx"ファイルにコピーする」 という処理と 「Set WordDoc = WordApp.Documents.Open("H:\***\***\***\" & 転記した日 & "_常勤役員会報告書(XX統計" & 転記した日の前の月 & "月期について).docx")」 という処理に変える。
お礼
ありがとうございます。 大変たすかりました。