【Word VBA】「段落番号」のある段落のアウトラインレベルを自動で設定する

2011年1月17日

ようやく、アウトラインレベルに関するマクロの登場です。

ここまでの経緯は、「見出しマップの目次 」をご覧ください。

これから数回にわたってマクロの例を示します。

最初は、特許明細書にありがちな例を示します。

このマクロでできること

特許明細書における段落番号(【0001】)など、墨付きかっこで始まるの段落のアウトラインレベルをレベル1に設定します。

アウトラインレベル1になるので、見出しマップを表示したときに項目として表示されます。

番号をクリックすれば、その段落番号にジャンプができますよ。

見出しマップ例

(特開2004-334821の例。たまたまネットで見つけただけで、深い意味はございません。)

マクロの解説

以下の8~11行の処理を、すべての段落で実施します(7行と11行のFor-Nextの設定)。

8行 段落の先頭の「スペース(全角・半角ともに)」と、段落中の全て「タブ」を削除して、myStrの変数に代入します。

→段落先頭に、タブやスペースが入ることがあると思いますが、それらの影響をうけずに、先頭文字の判定をするための前処理です。

9行 myStrの先頭に、「【」、その次に全角数字(0~9)が4回あり、「】」があるかを確認します。

Like演算子 を用います。パターンは、"【[0-9][0-9][0-9][0-9]】*" です。

10行 上記9行の判定がTrue(はい)であれば、その段落のアウトラインレベルを1に設定します。

マクロ


Sub JPara()

  '日本語段落番号設定
  Dim myPara As Paragraph
  Dim myStr As String

  For Each myPara In ActiveDocument.Paragraphs
    myStr = LTrim(Replace(myPara.Range.Text, vbTab, ""))
    If myStr Like "【[0-9][0-9][0-9][0-9]】*" Then
      myPara.Format.OutlineLevel = wdOutlineLevel1
    End If
  Next

End Sub

 

コメント

  • 4. Re:Re:Re:図表相互参照マクロについて

    >おちょこちょいさん

    こんにちは。コメントありがとうございます。

    「エラー!参照元が見つかりません」は表示
    されますよね。

    それを伺おうと思っていました。

    実は、この表示を利用して、マクロをちょっと
    進化させようかなと思っていました。

    改良版は、少々お待ちください。

  • 3. Re:Re:図表相互参照マクロについて

    >新田順也☆ワードプログラマーさん

    すばやいご対応ありがとうございます。

    前回の

    「それと、参照先の図をあとから削除したり、または増やしたりすると、
    リンク元との同期がとれなくなってしまいます。」

    というコメントは、私の勘違いでした。
    自分でマクロのラベル表示に小細工を施したのが
    正しく動作しない原因でした。
    (ラベルを【図 1】のようにくくろうとした)

    混乱させてしまって申し訳ありません。

    今日、オリジナルのマクロで動作確認してみたところ、
    削除された図表番号に参照をつけていたフィールドは、

    「エラー!参照元が見つかりません」

    にきちんと変わっていました。
    同時に、前後の参照番号は正しく振りなおされていました。
    d(・∀・*)グー

    おちょこちょい返信する
  • 2. Re:図表相互参照マクロについて

    >おちょこちょいさん

    コメントをどうもありがとうございます。

    使っていただいて感想をいただけるのが
    励みになります。ありがとうございます。

    また、マクロのご利用をどうもありがとうございます。

    ひとまず、リンク先の記事に多少追記して
    こちらに記事にしました。

    図表番号を挿入するWordマクロ(Seqフィールドの利用)

    ご要望いただいたことについては、マクロの
    コードだけで対応できるものと、ユーザーフォーム
    を用いて対応できるものとがあります。

     

    ブログでは、コードで対応できるところを
    公開させていただこうと思っています。

    いただいたご要望は、ユーザーフォームで
    ないと実現できないものを含んでいますので
    対応できないところがあります。

    その点をご了承ください。

    また、ご要望についてもまだ理解していない
    ところがありますので、私の今後の記事に対して
    コメントをつけてください。

    提案できることがあるので、それを記事に
    していきます。

  • 1. 図表相互参照マクロについて

    まちがって古いブログにコメントしてしまいました

    http://wordvba.cocolog-nifty.com/blog/2009/08/sub-0d35.html?cid=59998662#comment-59998662

    おちょこちょい

-コード
-, , , , ,