Office関連

各ページの各行の行頭と行末に文字列を挿入するWordマクロ

Word文書の各ページに10行程度の文章があり、各行の行頭と行末に文字列を挿入するマクロを作りたい、との質問をいただきました。

どのような文章なのかが分からないのですが、文字通り【各ページの各行ごと】ということであれば、伊藤さんのブログでも紹介されている「Lineオブジェクト」を使用して、下記のように書くことができます。

Public Sub Sample01()
'各ページの各行の行頭と行末に文字列を挿入
  Dim tmp As Word.WdViewType
  Dim r As Word.Range
  Dim i As Long, j As Long, k As Long
  
  With ActiveDocument.ActiveWindow
    tmp = .View.Type '表示状態を記憶
    .View.Type = wdPrintView '印刷レイアウトに変更
    
    For i = .ActivePane.Pages.Count To 1 Step -1
      For j = .ActivePane.Pages(i).Rectangles.Count To 1 Step -1
        If .ActivePane.Pages(i).Rectangles(j).RectangleType = wdTextRectangle Then
          For k = .ActivePane.Pages(i).Rectangles(j).Lines.Count To 1 Step -1
            Set r = .ActivePane.Pages(i).Rectangles(j).Lines(k).Range
            Select Case r.Characters(Len(r.Text)).Text
              Case vbCr, vbLf, vbCrLf: r.SetRange r.Start, r.End - 1 '改行飛ばし
            End Select
            r.InsertAfter "【行末】"
            r.InsertBefore "【行頭】"
          Next
        End If
      Next
    Next
    .View.Type = tmp '表示状態を元に戻す
  End With
End Sub

【各段落ごと】で良いのであれば、下記のように「Paragraphオブジェクト」を利用すれば良いかと思います。

Public Sub Sample02()
'各段落のはじめと終わりに文字列を挿入
  Dim r As Word.Range
  Dim i As Long
  
  For i = ActiveDocument.Paragraphs.Count To 1 Step -1
    Set r = ActiveDocument.Paragraphs(i).Range
    Select Case r.Characters(Len(r.Text)).Text
      Case vbCr, vbLf, vbCrLf: r.SetRange r.Start, r.End - 1 '改行飛ばし
    End Select
    r.InsertAfter "【行末】"
    r.InsertBefore "【行頭】"
  Next
End Sub

Word マクロの場合は、こういった処理を様々な書き方でできるため、対象となる文章に応じて、処理の仕方を変更する必要があります。

【スナックワールド】ヘブンズリリィブレイドをLv.8まで強化してみました。前のページ

【スナックワールド】ムラマサカリバーをLv.10まで強化してみました。次のページ

関連記事

  1. Office関連

    [Mayhem]PowerPointマクロにショートカットキーを割り当てる。

    2012/4/20 追記:クイックアクセスツールバーのメニューを利用す…

  2. Office関連

    [閑話]Wordの「線種とページ罫線と網かけの設定」って英語版では何っていうの?

    Officeの機能について調べるとき、日本語での情報が無いときは英語圏…

  3. Office関連

    MemsourceのバイリンガルMXLIFFファイルから情報を抽出するWordマクロ

    近年翻訳業界では「Trados」や「memoQ」といった、“翻訳支援ツ…

  4. Office関連

    Wordマクロで文字数を取得する方法をまとめてみました。

    「蛍光ペンでマークした部分の文字数をカウントするWordマクロ」で蛍光…

  5. Excel

    IEを操作するVBAマクロ実行中にオートメーションエラーが発生する場合の対処法

    下記コードのような、Internet Explorerを操作する簡単な…

  6. Office アドイン

    [Office用アプリ]Bing Maps for Accessの紹介

    Microsoft Download CenterでAccess向けO…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

最近の記事

アーカイブ

PAGE TOP