Office関連

選択したセルに連続行番号を振るWordマクロ

Wordでマニュアルを作成するとき等、表の中で連番を振りたいときがよくあります。
そんなときは大抵「表に連続番号を振りたい」に書かれているような、段落番号を利用するのですが、個人的には“段落番号”はいまいち使い勝手がよくありません。

そこで、段落番号機能を使いやすくし、“表中の選択セルに連番を振るためのマクロ”を作成することにしました。

Option Explicit

Public Sub Sample()
  AddTableRowNumber wdListNumberStyleIroha, "(", ")", 5, True
End Sub

Public Sub AddTableRowNumber(Optional ByVal Style As Word.WdListNumberStyle = wdListNumberStyleArabic, _
                             Optional ByVal Prefix = "", _
                             Optional ByVal Suffix = ".", _
                             Optional ByVal StartNo As Long = 1, _
                             Optional ByVal NumToText As Boolean = True)
'表に行番号を振るWordマクロ
  Dim ltmp As Word.ListTemplate
  
  If Selection.Tables.Count > 0 Then
    Set ltmp = Application.ListGalleries(wdNumberGallery).ListTemplates(1)
    With ltmp.ListLevels(1)
      .NumberFormat = Prefix & "%1" & Suffix
      .TrailingCharacter = wdTrailingNone
      .NumberStyle = Style
      .StartAt = StartNo
    End With
    With Selection.Range
      .ListFormat.ApplyListTemplateWithLevel ListTemplate:=ltmp
      If NumToText = True Then .ListFormat.ConvertNumbersToText '段落番号を文字列に変換
    End With
  End If
End Sub

セルを選択した状態で、上記コードを実行すると、下図のように指定した文字(「(」「)」)で囲まれた連番が自動的に振られます(段落番号スタイルや開始番号も指定可)。

WordVBA_AddTableRowNumber_01

段落番号を振るだけの単純な仕組みですが、最後にConvertNumbersToTextメソッドを入れてあるのがポイントです。

このメソッドによって段落番号が普通の文字列になり、文字装飾等で扱いやすくなります。

あとは、よく使うスタイルごとにプロシージャを分けて、キーに割り当てれば作業終了です。

関連Webページ

関連記事

  1. Office関連

    「個人用テンプレートの既定の場所」を設定するWordマクロ

    前回の記事で、Word 2013で個人用テンプレート(カスタム テンプ…

  2. Office関連

    Adobe Reader XIを利用してPDFファイルのページ数を取得するVBAマクロ

    先日Adobe Readerを利用してPDFファイルのページ数を取得す…

  3. Office アドイン

    [Officeアドイン]地図記号挿入アドイン

    ちょっとずつ作成していたWord用のOffice アドインがようやくO…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP