• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで、wordに名前を付けて、保存。)

VBAでWordに名前を付けて保存する方法

このQ&Aのポイント
  • VBAを使用して、Wordに名前を付けて保存する方法について教えてください。現在、既存のマクロに追加したい工程があります。また、保存する際には特定のフォーマットで保存したいです。
  • 以下のVBAコードを使用して、template.docxを開いてExcelのテキストを転記しています。追加したい工程は、保存するフォルダに指定のフォーマットで保存することです。
  • 追加したい工程では、template.docxが保存されているフォルダに「転記日_常勤役員会報告書(XX統計転記日の前の月月期について)」という名前で保存できるようにしたいです。具体的な例として、「220804_常勤役員会報告書(XX統計7月期について)」というファイル名で保存したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.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

archie007
質問者

お礼

ありがとうございます。 大変たすかりました。

その他の回答 (3)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

#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 となります。

archie007
質問者

補足

ありがとうございます。 ファイル名ですが、和暦を忘れておりました。 (例)220804_常勤役員会報告書(XX統計令和4年7月期について) とするには、どのようにしたらよいでしょうか。 ご教授お願いいたします。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

以下でいかがでしょうか。 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

回答No.1

変数「転記した日」と、変数「転記した日の前の月」に正しい値を設定する処理を追加して、 Set WordDoc = WordApp.Documents.Open("H:\***\***\***\template.docx") の部分を 「"H:\***\***\***\template.docx"ファイルを、"H:\***\***\***\" & 転記した日 & "_常勤役員会報告書(XX統計" & 転記した日の前の月 & "月期について).docx"ファイルにコピーする」 という処理と 「Set WordDoc = WordApp.Documents.Open("H:\***\***\***\" & 転記した日 & "_常勤役員会報告書(XX統計" & 転記した日の前の月 & "月期について).docx")」 という処理に変える。

関連するQ&A

専門家に質問してみよう