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
セルを選択した状態で、上記コードを実行すると、下図のように指定した文字(「(」「)」)で囲まれた連番が自動的に振られます(段落番号スタイルや開始番号も指定可)。
段落番号を振るだけの単純な仕組みですが、最後にConvertNumbersToTextメソッドを入れてあるのがポイントです。
このメソッドによって段落番号が普通の文字列になり、文字装飾等で扱いやすくなります。
あとは、よく使うスタイルごとにプロシージャを分けて、キーに割り当てれば作業終了です。
関連Webページ
- WdListNumberStyle Enumeration (Word)
- https://msdn.microsoft.com/ja-jp/library/ff837344.aspx



















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