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. Microsoft Teams

    Microsoft Teamsでタブの構築を試してみました。

    下記記事の通り、Office 365に新たなコラボレーションツール「M…

  2. Office関連

    Google翻訳で文字列を翻訳するマクロ

    ※ 2016/2 時点では下記の方法はもう使用できなくなっています。V…

  3. Office関連

    コンテンツコントロールに外部XMLのデータをマップするWordマクロ

    Word 2007で追加された機能「コンテンツコントロール」を使うと外…

  4. Office関連

    ヘッドレス ChromeをSeleniumBasicで動かしてみました。

    Chromeがヘッドレスモードに対応した頃、Seleniumで操作した…

  5. Office アドイン

    「マイクロソフト Office 用アプリ開発スタートアップガイド」レビュー

    ※ 下記レビューはあくまでも個人的な感想です。日本初(恐らく)…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP