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

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

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

その場合でも、字数や行数を制限数内に書式を設定したテンプレートを使えば問題なさそうですよね。

そうですね。ただし、半角文字をついつい使ってしまって、字数を超えてしまうこともあるようですので、最終的にマクロで確認ができると便利だと思います。
ダウンロード
まずは、こちらからサンプルファイルをダウンロードして、使ってみてください。
ZIPファイルを解凍し、ダウンロードしたWordファイル(マクロ有効テンプレート)をWordのスタートアップ・フォルダにコピーすると、内容証明郵便のチェック機能がいつでも使えるようになります。
スタートアップ・フォルダが分からない場合は、こちらをご覧ください

マクロを使用するためには、セキュリティの設定が必要な場合があります。
セキュリティの設定方法が分からない場合は、こちらをご覧ください。

使用方法
- 字数・行数の制限に従って文書を作成してください。(このマクロには、ページレイアウトや書式を設定する機能はありません。)
- Ctrl+Shift+P(PostのPです)を押すとマクロが起動し、内容証明郵便の規定に従って字数および行数を確認します。
- 字数または行数が制限を超えている場合は、該当する行が選択された状態でマクロが停止します。所要の修正を行った後、マクロを再度実行して、文章全体のチェックを完了してください。
- テンプレートファイル自体を開く(エクスプローラーで右クリックして「開く」を選択してください)と、次のことが可能です。
- 「字数制限」および「行数制限」の値の設定
- 「行ごとの字数と行数の確認」を行うかどうかの設定
- 使用方法の確認
- 履歴の確認
- サンプルによる動作確認(20字、26行の制限に対応)
郵便局が定めている制限については、こちらを確認してください。
上記制限内で文書を作成するための書式設定については、こちらを参考にしてください。
作動の一例



制限事項
このマクロは、郵便局の制限に従って完全にチェックできるものではありません。つぎのような制限事項があります。(実用上は、問題ないと思います。)
- アウトラインを用いない段落番号には対応していません。アウトラインを使用していない場合は、段落番号が2字以上になると、そのままの字数でカウントします。
- タブによる空白には対応していません。タブによってできた空白は、文字数にカウントしてしまいます。
- 括弧の「)」側だけを使用した場合には対応していません。「)」側だけの場合は、字数にカウントされません。
- ラインフィード(シフトキーとリターンキーの同時押し)には対応していません。ラインフィードは無視して、改行していないものとして字数をカウントしてしまいます。キャリッジリターン(リターンキーのみ)を使用してください。
注意事項
サンプルファイルは、ワードによる文書作成にVBAを利用する際の参考にしていただくためのものです。
それぞれの法律事務所のやり方に従って、修正を加えて使用してください。

そのまま使うだけでは、ダメなのですか?

それでもかまわないですが、マクロの構造さえ理解できれば、さまざまな設定を自由にカスタマイズできるようになります。ぜひ、挑戦してみてください。
マクロの構造
VBEへの入力位置
テンプレート・ファイル自体を開いてから、「開発」-「Visual Basic」をクリックして、VBEを起動してください。
(テンプレート・ファイルは、エクスプローラーでダブルクリックすると、コードが開かない状態になります。右クリックで「開く」を選択して、テンプレート自体を編集可能状態で開いてください。)

左上の「プロジェクト・エクスプローラー」部で各モジュールをクリックすると、そこに記載されているコードが真ん中の「コード・エディター」部に表示されます。
このマクロのコードは、すべて標準モジュールに記載されています。

ドキュメント・モジュールに、コードを書かないのはなぜですか?

このマクロは、アドインとして、自分以外のドキュメントをコントロールするので、標準モジュールに記載しています。ドキュメント・モジュールにコードを書いてしまうと、他のドキュメントをコントロールすることができません。
マクロの構成
「内容証明郵便チェック」マクロは、「ContentCertification」というひとつのプロシージャだけで構成されています。
「 ContentCertification 」プロシージャの起動は、ショートカットキーにより行っています。最初は、 「Ctrl+Shift+C」 に設定していたのですが、書式のコピーと重複してしまいましたので「Ctrl+Shift+P」に変更しました。この設定は、ワードのオプションで自由に変更できます。

ワードでは、イベントプロシージャは使えないのですか?

使えますが、このマクロを起動させるのに適当なものがないので、ショートカットキーを使っています。
プロシージャの機能
「ContentCertification」 プロシージャは、1行ごとに文字数を取得して、次のとおり、その字数を調整した上でチェックし、行数をカウントするという動作を繰り返します。
- 段落番号が設定されている場合は、字数に1を加える。(内容証明の文字数は、文中の序列を示す記号として使用されているものは、全体を1字として数えることになっているため)
- 文字列に空白が含まれている場合は、字数からその数を減じる。(内容証明の文字数には、空白・スペースが含まれないため)
- 文字列に”)”または”)”が含まれている場合は、字数からその数を減じる。(内容証明の文字数は、()の組み合わせで1文字として数えることになっているため)
- 文字列に改行または改ページが含まれている場合は、字数から1を減じる。(内容証明の文字数に段落記号は含まれないため)
その間に字数や行数が設定値を超えた場合には、その行を選択した状態でメッセージを表示します。
1行ごとに文字列を取得する方法については、こちらの記事を参考にさせていただだきました。
プロシージャ内のコードの細部については、サンプルファイルのプログラムにコメントで記載していますので、そちらを御覧ください。
コメント