見出し画像

段落番号入力マクロ

(1) マクロが解決しようとする課題

特許出願書類の明細書において、【0000】の形式で段落番号を連番で付与する必要があります。しかし、段落番号を手入力するのはとても面倒です。

今回ご紹介するマクロは、Microsoft社のWordで「段落番号を入力する」作業を自動化することを目的とします。


(2) 課題を解決するための手段

段落毎に【0000】(0000は任意の4桁全角数字)が記入されていることを前提に、【0000】の形式で段落番号を連番で付与するマクロは、例えば、以下の具体例1のように記述できます。具体例1では、無限ループ防止策として、段落番号が1000になったら、ループを抜けるように記述しています。段落番号が1000を超える場合には、修正が必要です。

【具体例1】

Sub 段落番号()
Dim N As Long
N = 0
'カーソルを先頭に移動
   Selection.HomeKey Unit:=wdStory
'【4桁全角数字】を検索する
   Selection.Find.ClearFormatting
   Selection.Find.Replacement.ClearFormatting
   With Selection.Find
       .Text = "[【]([0-9]{4})[】]"
       .Replacement.Text = ""
       .Forward = True
       .Wrap = wdFindStop
       .Format = False
       .MatchCase = False
       .MatchWholeWord = False
       .MatchByte = False
       .MatchAllWordForms = False
       .MatchSoundsLike = False
       .MatchFuzzy = False
       .MatchWildcards = True
   
       '繰り返し処理
       Do While .Execute
       'Nをインクリメント
           N = N + 1
           
       '4桁の全角連番に書き換える
           Selection.Text = "【" & StrConv(Format(N, "0000"), vbWide) & "】"
        
       '無限ループ防止 Nが1000を超えたらループを抜ける
        If N > 1000 Then
         MsgBox "残念失敗!"
         Exit Do
        End If
       Loop
       
   End With

   Selection.Find.ClearFormatting
End Sub


(3) 変形例

上記マクロは、適宜処理条件を変更して使用可能です。

例えば、英文原稿に用いる[0000]の形式で段落番号を連番で付与するマクロは、具体例2のように記述できます。

【具体例2】

Sub 半角英文段落番号()
Dim N As Long
N = 0
'カーソルを先頭に移動
   Selection.HomeKey Unit:=wdStory
'[4桁半角角数字]を検索する
   Selection.Find.ClearFormatting
   Selection.Find.Replacement.ClearFormatting
   With Selection.Find
       .Text = "[\[]([0-9]{4})[\]]"
       .Replacement.Text = ""
       .Forward = True
       .Wrap = wdFindStop
       .Format = False
       .MatchCase = False
       .MatchWholeWord = False
       .MatchByte = False
       .MatchAllWordForms = False
       .MatchSoundsLike = False
       .MatchFuzzy = False
       .MatchWildcards = True
   
       '繰り返し処理
       Do While .Execute
       'Nをインクリメント
           N = N + 1
           
       '4桁の半角連番に書き換える
           Selection.Text = "[" & Format(N, "0000") & "]"
        
       '無限ループ防止 Nが1000を超えたらループを抜ける
        If N > 1000 Then
         MsgBox "残念失敗!"
         Exit Do
        End If
       Loop
       
   End With

   Selection.Find.ClearFormatting
End Sub


(4) 効果

マクロを実行することで、段落番号を入力する作業を自動化できます。

よく使用するマクロは、ボタンに割り当てておくと便利です。ボタンにマクロを割り当てる方法は、Microsoft Officeのサポートのウェブページ(こちら)をご参照下さい。

VBAを用いたマクロの基本事項マクロの記録方法マクロの編集方法 を別の記事に記載していますので必要に応じてご参照下さい。


(5) 免責事項

この記事に掲載されているマクロは、適宜編集してご利用いただけます。マクロをご利用される際は、壊れてもよいファイルを用いて、動作を検証して下さい。マクロをご利用されるかの意志決定は、ご自身の判断でなさるようお願いいたします。

この記事に掲載された情報及び内容に誤りがあり、万が一それによる被害・ 損害等が発生したとしても、一切責任を負うものではありませんので、ご了承ください。


ご購読どうもありがとうございましたm(__)m

よろしければ、サポートをお願いします!いただいたサポートで、糖分補給をします♪