🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Q&A

解決済

1回答

4573閲覧

VBA Word sendkeys効かない

yo_si

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

0グッド

0クリップ

投稿2021/01/13 06:26

前提・実現したいこと

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以外の方法などありましたら、ご教授願います。
イメージ図なくて申し訳ありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

行追加するコードを組んだらできました。
Selection.InsertRowsBelow

投稿2021/01/14 01:38

yo_si

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問