三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:「こんな感じ」や「あの、あの」と活舌の悪い、
三流プログラマーのオッサンです

当ブログではGoogle AdSenseおよび各種アフィリエイトプログラムを利用して広告を配信しています。

Word VBA 段落オブジェクト Paragraph マクロ記録と検索で探ったお話


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

質問・感想・クレームなど、
気軽にコメント欄に書いてもらえるとうれしいです。

当ブログではGoogle AdSenseおよび各種アフィリエイトプログラムを利用して広告を配信しています。


フッター:最後にKen3Videoの動画一覧を紹介します

YouTubeにアップした動画です。他の動画を一瞬でも見てもらえるとさらに嬉しいです。
再生リスト:[三流君Ken3の最新動画]←リストの一覧形式で表示する


また、ブログを見に来てくださいね。ではまたぁ~