
VBAを使って、内容証明郵便の字数と行数が規定内に入っているかどうかをチェックするテンプレートを紹介します。

電子内容証明サービスを利用すれば、文字数の制限を心配する必要がないですよね。

しかし、職印が押せないという問題があります。このため、法律事務所では、一般の内容証明郵便を利用しているところも多いのではないでしょうか。

その場合でも、テンプレートを使えば、字数や行数が制限数内設定されているので、問題なさそうですよね。

そうですね。ただし、半角文字をついつい使ってしまって、字数を超えてしまうこともあるようですので、最終的にマクロで確認したほうが確実だと思います。
ダウンロード
まずは、こちらからサンプルファイルをダウンロードして、使ってみてください。
テンプレートの準備
ダウンロードしたテンプレート・ファイルをダブルクリックするとテンプレートを使った文書の作成を開始できます。
スタートアップ・フォルダが分からない場合は、こちらをご覧ください

保存場所
ダウンロードしたテンプレートを「Office のカスタムテンプレート」フォルダに保存すれば、新規文書の作成時にも利用できるようになります。
スタートアップフォルダに保存すれば、アドインとして、すべてのワードファイルでマクロを利用できるようになります。(マクロを集中管理できるので、バージョンアップ時の対応も容易です。)
次のように保存すれば、すべてのワードファイルでマクロを利用できますし、新規文書の作成時にテンプレートが使えるようになります。
- テンプレートそのもの(.dotm)をスタートアップフォルダに保存
- マクロなしテンプレート(.dotx)に変更したものをカスタムテンプレートフォルダに保存
使用方法
- テンプレートを使用して文書を作成してください。
- Ctrl+Shift+P(PostのPです)を押すとマクロが起動し、内容証明郵便の規定に従って字数および行数を確認します。
- 字数または行数が制限を超えている場合は、該当する行が選択された状態でマクロが停止します。所要の修正を行った後、マクロを再度実行して、文章全体のチェックを完了してください。
郵便局が定めている制限については、こちらを確認してください。
作動の一例



制限事項
このマクロは、郵便局の制限に従って完全にチェックできるものではありません。つぎのような制限事項があります。(実用上は、問題ないと思います。)
- アウトラインを用いない見出し番号には対応していません。アウトラインを使用していない場合は、見出し番号が2字以上になると、そのままの字数でカウントします。
- タブによる空白には対応していません。タブによってできた空白は、文字数にカウントしてしまいます。
- 「)」側だけを使用した括弧には対応していません。「)」側だけの場合は、字数にカウントされません。
- ラインフィード(シフトキーとリターンキーの同時押し)には対応していません。ラインフィードは無視して、改行していないものとして字数をカウントしてしまいます。キャリッジリターン(リターンキーのみ)を使用してください。
マクロの構造
このテンプレートのマクロは、自由に閲覧・編集できる状態になっています。
テンプレート・ファイルをエクスプローラーで右クリック(Windows11の場合はShift+右クリック)して、「開く」を選択すると、テンプレート自体を編集できるようになります(そのままダブルクリックすると、新規文書が作成されてしまいます)。その状態から、「開発」-「Visual Basic」をクリックしてVBEを起動すると、マクロの構成や内容を確認することができます(そのまま編集することもできます)。
マクロの構成
標準モジュールの中に「Config」および「Check」の2つのモジュールが作成されています。
各モジュールの中には、マクロを実行するための定数やプロシージャが記載されています。

- 「Config」モジュール
- 「定数」は、他のモジュールのものを含むすべてのプロシージャが動作するために必要な各項目の値を保管しています。この値を変えることにより、最大文字数や最大行数などの設定値を変更できます。
- 「SetupPageForCertificate」は、マクロに記載されている定数(各見出しごとのインデント、ページの文字数・行数など)を読み込んで、ページ設定を内容証明郵便用にセットアップします。
その際、段落が「両端揃え」のままでも、途中に改行のある行と改行のない行で文字間隔が揃うようにページの「右余白」を修正します。
「開発」-「マクロ」のメニューから起動できます。
- 「Check」モジュール
- 「CheckCharsAndLines」プロシージャは、各ページの文字数と行数が設定された最大値を超えていないかをチェックし、結果を表示します。
「Ctrl+Shift+P」のショートカットキーを割り当てています。
- 「CheckCharsAndLines」プロシージャは、各ページの文字数と行数が設定された最大値を超えていないかをチェックし、結果を表示します。
ショートカットキーの設定は、ワードのオプションで自由に変更できます。
プロシージャの機能
「CheckCharsAndLines」 プロシージャは、1行ごとに文字数を取得して、次のとおり、その字数を調整した上でチェックし、行数をカウントするという動作を繰り返します。
- 段落番号が設定されている場合は、字数に1を加える。(内容証明の文字数は、文中の序列を示す記号として使用されているものは、全体を1字として数えることになっているため)
- 文字列に空白が含まれている場合は、字数からその数を減じる。(内容証明の文字数には、空白・スペースが含まれないため)
- 文字列に”)”または”)”が含まれている場合は、字数からその数を減じる。(内容証明の文字数は、()の組み合わせで1文字として数えることになっているため)
- 文字列に改行または改ページが含まれている場合は、字数から1を減じる。(内容証明の文字数に段落記号は含まれないため)
その間に字数や行数が設定値を超えた場合には、その行を選択した状態でメッセージを表示します。
1行ごとに文字列を取得する方法については、こちらの記事を参考にさせていただだきました。
プロシージャ内のコードの細部については、サンプルファイルのプログラムにコメントで記載していますので、そちらを御覧ください。
コメント
テンプレートとしても使用できるように改修しました。(Ver200)