[[20251027094755]] 『ExcelからWordへのデータ転記について』(関数がにがて) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『ExcelからWordへのデータ転記について』(関数がにがて)

 こんにちは

 Excelの一覧からWordへデータ転記を行っています。
 月1の作業で、日付をWordへ転記した際に、曜日がWordで表示されるようになってしまいました。
 何が原因か教えていただけませんでしょうか。

     |[Z]   |[AA]        |[AB]     
 [1]|[機材]|[氏名]     |[発送日]
 [2]|    22|△△ 太郎  |   2025/10/27
 [3]|    24|▼▼ 次郎  |   2025/10/27

 Sub 発送レター_作成()

    Dim i As Long, k As Long
    Dim waitTime As Variant

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("発行用")

    'エクセルの最終行と最右列を取得
    Dim cmax As Long, cnt As Long
    cmax = Range("A" & Rows.Count).End(xlUp).row
    cnt = Range("IV1").End(xlToLeft).Column

    'ワード起動
    Dim wdapp As Word.Application
    Set wdapp = CreateObject("Word.application")
    wdapp.Visible = True

    'テンプレートワードのパス取得
    Dim path As String
    path = ThisWorkbook.path & "\【案内】〇〇の取付けについて.docx"

    'エクセルのデータを1行ずつ処理
    For i = 2 To cmax

        'テンプレートワードを開く
        Dim wddoc As Word.Document
        Set wddoc = wdapp.Documents.Open(path)
        waitTime = Now + TimeValue("0:00:03")
        Application.Wait waitTime

        'テンプレートワードにエクセルデータを挿入
        For k = 0 To 2
            With wddoc.Content.Find
                .text = ws.Range("Z1").Offset(0, k).Value
                .Forward = True
                .Replacement.text = ws.Range("Z" & i).Offset(0, k).Value
                .Wrap = wdFindContinue
                .MatchFuzzy = True
                .Execute Replace:=wdReplaceAll
            End With
        Next

        'データを差し込んだワードを印刷
        wddoc.PrintOut

        'ワードファイルを保存
        Dim StR As String
        StR = "【案内】〇〇の取付けについて" & "_" & Range("Z" & i).Value & ".docx"
        wddoc.SaveAs Filename:="××× & "\" & StR

        'テンプレートワードを保存せずに閉じる
        wddoc.Close savechanges:=False

        'オブジェクト解放
        Set wddoc = Nothing

    Next

    'ワードをアプリケーションごと閉じる
    wdapp.Quit
    Set wdapp = Nothing

    MsgBox "レターを印刷しました。"
End Sub

 保存先などは伏字にさせていただきました。
 セルAB2の日付は=TODAY()で取得しています。
 ここが原因なのでしょうか?

 よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 よく調べてないので恐縮ですが、
 今まで正常に動作してきたものが、ある日、曜日に変わってしまったということですか?
 日付を表す文字列に変換したものを貼り付けてみるというのが
 最初に思いつく対応策でしょうか。

(xyz) 2025/10/27(月) 10:52:56


 xyz 様

 6月上旬までは日付だけ転記されていたのですが、6月下旬に作成した分から日付と曜日がWordに転記されていました。
 日付だけを転記したいのです。
 文字列に変換してはまだ試していないので、行ってみます。

(関数がにがて) 2025/10/27(月) 11:29:01


 文字列に変換してもダメでした。
(関数がにがて) 2025/10/27(月) 11:35:17

   .Replacement.text = ws.Range("Z" & i).Offset(0, k).Value
 を
   .Replacement.text = ws.Range("Z" & i).Offset(0, k).Text
 にしたらどうなるでしょう

 ワードでフィールドコードが埋め込まれているような気がしますが、具体的にはわかりません
(´・ω・`) 2025/10/27(月) 11:45:08

 (´・ω・`)様

 ご指摘の修正を行ったら、日付だけになりました。
 ありがとうございました。
(関数がにがて) 2025/10/27(月) 13:01:26

 ws.Range("Z" & i).Offset(0, k).Text は「日付を表す文字列に変換したもの」なんですけどもね。( k=2のとき)
(xyz) 2025/10/27(月) 13:46:38

 xyz 様

 言われてみて気が付きました。
 確かにそうですね。
 ご指摘の意図を組めず、申し訳ございませんでした。
(関数がにがて ) 2025/10/27(月) 13:54:25

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.