www.youtube.com
↑
Word VBAを探る マクロの記録 と オブジェクトの調べ方 例題:検索した文字列の1行下に指定文字を入れる Word VBAのコードをマクロ記録から修正 - YouTube
Sub Macro1() ' ' Macro1 Macro ' ' Dim n As Integer '先頭にカーソル移動 https://www.relief.jp/docs/word-vba-selecting-start-documents.html から引用 ActiveDocument.Bookmarks("\StartOfDoc").Select '文字列を探す、ターゲット位置決め Selection.Find.Execute FindText:="バグ内容", Forward:=True '見つけた↑下の行に移動 ↑でFindTextが見つからなかった時の処理が入ってないや n = Selection.Move(Unit:=wdLine, Count:=1) 'wdLineで行単位移動 '文字列を挿入 Options.ReplaceSelection = False 'trueで置き換え Selection.TypeText Text:="word vbaにはまる" Selection.TypeParagraph 'エンターキー 改行 End Sub
'>wordの範囲をして、excelのoffsetのようなことが出来たらいいのですが....
' https://youtu.be/rtdwyl2Bbic?t=974 ← word知らないおっさんが探ってみました
'段落から探ると良いのでは?
'検索キーワード VBA Word 段落 など
Sub test() Dim n As Integer '全ての段落をテスト表示 For n = 1 To ActiveDocument.Paragraphs.Count Debug.Print n & ":" & ActiveDocument.Paragraphs(n).Range.Text Next n End Sub
'段落を一つ一つn番目で探り、InStrでターゲットを判断して、
'n + 1 の段落に 文字列を代入するサンプル
' https://youtu.be/rtdwyl2Bbic?t=1396
Sub test2() Dim n As Integer '全ての段落をサーチ For n = 1 To ActiveDocument.Paragraphs.Count 'ターゲットの文字列を探す If InStr(ActiveDocument.Paragraphs(n).Range.Text, "バグ内容") > 0 Then 'n + 1 次の段落 ActiveDocument.Paragraphs(n + 1).Range.Text = "exit for忘れ" & vbCrLf Exit For 'ループを抜ける End If Next n End Sub