前提・実現したいこと
VBAでword内のテーブルにエクセルデータを反映させようとしています。
wordのテーブルは1行4列のテーブルで1行目にデータが全て埋まると、2行目に移動し、また2行目にデータが全て埋まると、3行目に移動するというソースコードを書こうとしています。
発生している問題・エラーメッセージ
・発生している問題点としては、行を変える時に、sendkeys{TAB}で変えようとしているのですが(手動でTABを押すと自動で罫線がひかれ、上手く行を変えることができるので)効かないという状況です。手動で行を増やすと、上手く反映されます。
該当のソースコード
VBA
1Dim objWord As Word.Application 2Set objWord = CreateObject("Word.Application") 3objWord.Visible = True 4 5'--- 開くワードドキュメントのパス ---' 6Dim docPath As String 7docPath = "C:\aaa\bbb\ccc\EXCEL\dddd\eeee\aaa.docx" 8 9'--- 開いたワードドキュメントを格納する変数 ---' 10Dim docDoc As Word.Document 11Dim MaxR2 As Long 12 13 With ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 4).End(xlUp) 14 MaxR2 = .Row + .MergeArea.Rows.Count 15 End With 16objWord.Selection.Move wdSentence, 18 17aa = 4 18With ThisWorkbook.Sheets(1) 19For a = 4 To MaxR2 20 If .Range("F" & a).Value = "aa" And .Range("G" & a).Value = "aa" And .Range("H" & a).Value = "aa" Then 21 objDoc.Tables(1).Cell(aa - 2, 1).Range.Text = .Range("D" & a).Value 22 objDoc.Tables(1).Cell(aa - 2, 2).Range.Text = .Range("E" & a).Value 23 objDoc.Tables(1).Cell(aa - 2, 3).Range.Text = .Range("E" & a).Value 24 objDoc.Tables(1).Cell(aa - 2, 4).Range.Text = .Range("E" & a).Value 25 26 objWord.Selection.Move wdSentence, 3 27 objWord.Selection.EndKey Unit:=wdLine 28 29 SendKeys "{TAB}" 30 aa = aa + 1 31 End If 32Next 33End With
試したこと
・SendKeys "{TAB}"やobjWord.Selection.TypeParagraphなど試しましたができなかった。
補足情報(FW/ツールのバージョンなど)
Sendkeys以外の方法などありましたら、ご教授願います。
イメージ図なくて申し訳ありません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。