
法律事務所では、一太郎を使っている人が多いですね。

ワードは、「インデントの設定が難しい」って言う人が多いみたいです。

それでは、VBAを使って、裁判所提出書類用のインデントを簡単に設定できるテンプレートを作ってみましょう。

インデントさえ簡単に設定できるようになれば、一太郎からワードに乗り換える人が増えるかも知れませんね。

このテンプレートは、インデントの設定だけではなく、マークダウン↔アウトライン変換機能も備えています。

マークダウンって何ですか?

簡単に言うと、各段落の先頭に入力された「#」マークの数で、見出しのレベルを表す文章の表記法です。マークダウンにはほかにもいろいろな機能があるのですが、このマクロでは見出しとリストの機能だけを使っています。使ってみてもらえれば、その良さが分かると思います。

それは、楽しみですね。
ダウンロード
サンプルファイルは、こちらからダウンロードしてください。(プログラムはすべて同一ですが、定数の値を変更することで、それぞれの書式向けにカスタマイズされています。)
テンプレートの準備
ダウンロードしたテンプレート・ファイルをダブルクリックするとテンプレートを使った文書の作成を開始できます。
使い方を簡単に記載した文章が入力されていますので、それに従ってマクロの作動を確認してください。

保存場所
ダウンロードしたテンプレートを「Office のカスタムテンプレート」フォルダに保存すれば、新規文書の作成時にも利用できるようになります。
スタートアップフォルダに保存すれば、アドインとして、すべてのワードファイルでマクロを利用できるようになります。(マクロを集中管理できるので、バージョンアップ時の対応も容易です。)
次のように保存すれば、すべてのワードファイルでマクロを利用できますし、新規文書の作成時にもテンプレートが使えるようになります。(この使い方を推奨します。)
- テンプレートそのもの(.dotm)をスタートアップフォルダに保存
- マクロなしテンプレート(.dotx)に変更したものをカスタムテンプレートフォルダに保存
カスタマイズ
このテンプレートは、マクロの定数を変更することによりカスタマイズができるようになっています。(サンプルファイルは、代表的な書式に合わせてカスタマイズ済みです。)
細部は、「テンプレートのカスタマイズ」の項を参照してください。
テンプレートの使い方
インデントの自動設定
段落のインデントを自動的に設定することができます。
文章全体の設定
スタイルまたはアウトラインで見出しレベルを設定しながら文章を入力します(インデントは設定する必要がありません)。

「Crtl+Shift+I」(インデントの「I」です)を押すと、文章全体のインデントが自動的に設定されます。(クイックアクセスツールバーでも操作できます。)

「第1」以外の見出しレベルから始めた場合も、それに応じたインデントが設定されます。

「Alt+Crtl+Shift+I」を押すと、文章全体のインデントがリセットされます。(クイックアクセスツールバーでも操作できます。)
選択した段落の設定
「Ctrl+I」(イタリアン体のショートカットは使えなくしています。)を押すと、選択した(またはカーソルのある)段落のインデントを設定できます。右クリックメニューでも操作できます。)
「Alt+Crtl+I」を押すと、選択した(またはカーソルのある)段落のインデントが解除されます。(右クリックメニューでも操作できます。)
箇条書きなどの設定
「箇条書き」および「段落番号」にも対応しています。
リボンから「箇条書き」または「段落記号」を選択し、「Ctrl+I」または「Ctrl+Shift+I」を押すと、どの記号を選択した場合でも「・」または「①」に変更され、インデントが設定されます。
ゴシック体への変更
見出しや選択範囲のフォントをゴシック体に変更したり、明朝体に戻したりすることができます。
見出しの変更
「Crtl+Shift+B」(ボールドの「B」です)を押すと、見出しレベル1のフォントがゴシック体に変更されます。続けて「Crtl+Shift+B」を押すと、見出しレベル2、レベル3、レベル4...というように順次にフォントが変更されてゆきます。(クイックアクセスツールバーでも操作できます。)
「Alt+Crtl+Shift+B」を押すと、逆順で明朝体に変更されてゆきます。(クイックアクセスツールバーでも操作できます。)
選択範囲の変更
「Ctrl+B」(太字のショートカットは使えなくしています。)を押すと、選択した範囲のフォントがゴシック体に変更されます。(右クリックメニューでも操作できます。)
「Alt+Crtl+B」を押すと、選択した段落のフォントが明朝体に戻ります。(右クリックメニューでも操作できます。)
マークダウン↔アウトライン変換
見出しのレベルを「#」の数で指定した段落をアウトラインに変換したり、反対に戻したりすることができます。
リスト(箇条書き)を示す「-」および番号付きリスト(段落番号)を示す「1.」にも対応しています。
マークダウンへの変換
見出しレベルが設定されている状態から「Ctrl+Shift+<」を押すと、マークダウンに変換されます。(クイックアクセスツールバーでも操作できます。)

アウトラインへの変換
「Ctrl+Shift+>」を押すと、インデントなしのアウトラインに変換されます。(クイックアクセスツールバーでも操作できます。)

インデントを設定するためには、「Crtl+Shift+I」を押して下さい。
マクロの対象となる段落
「見出し」、「標準」および「リスト段落」スタイルが適用された段落には、すべてインデントの自動調整が行われます。表などの自動修正を行いたくない段落には、「標準インデント」スタイルを適用してください。
最初の見出しまではマクロの対象外になっていますので、頭書の部分の書式(段落の中央揃えなど)は「標準」スタイルのままでも自動修正が行われません。(マクロの定数を変更することで、対象に含めることもできます。)
行頭に全角の「空白」があるとマクロが停止するようになっています。文末の補足の書式(段落の中央揃えなど)も、空白がある行より下に記載すれば、「標準」スタイルのままでも自動修正されません。(マクロの定数を変更することで、停止しないようにすることもできます。)
ページのセットアップ
Ctrl+Shift+M(マージンの「M」です)を押すと、文字数に応じた右余白の調整などのページ設定などのセットアップを行うことができます。
事前にマクロの定数を変更しておけば、テンプレートや文書ファイルのカスタマイズができます。
マクロの概要
このテンプレートのマクロは、自由に閲覧・編集できる状態になっています。
テンプレート・ファイルをエクスプローラーで右クリック(Windows11の場合はShift+右クリック)して、「開く」を選択すると、テンプレート自体を編集できるようになります(そのままダブルクリックすると、新規文書が作成されてしまいます)。その状態から、「開発」-「Visual Basic」をクリックしてVBEを起動すると、マクロの構成や内容を確認することができます(そのまま編集することもできます)。

マクロの特徴
このマクロのポイントは、「スタイルやアウトラインではインデントを設定しない」という点にあります。
インデントを手作業で設定する場合にはスタイルやアウトラインで設定した方が便利ですが、マクロで設定する場合にはかえって邪魔になります。
このため、このマクロでは、スタイルやアウトラインではインデントを設定せず、段落ですべてのインデントを設定しています。その際には、文字単位の設定だけを使用しています。(スタイルに設定されているインデントは、見出し番号が左余白に入り込むのを防ぐためのもので、段落のインデントで上書きされます。)
スタイルは、スタイルギャラリーからアウトラインを割り当てる役割と目次を作る際の指標となる役割しか担っていません。(ゴシック体に設定する場合は、フォントを変更しています。)
アウトラインは、見出し番号の書式とアウトラインのレベルを設定する役割しか担っていません。(ゴシック体に設定する場合は、フォントを変更しています。)
見出しのレベルに応じてひとつひとつの段落に異なるインデントを設定するのは大変な作業ですが、マクロならばほとんど一瞬で行えます。
各モジュールおよびプロシージャの機能
標準モジュール
標準モジュールの中に「Indent」、「Config」、「Convert」および「Gothic」の4つのモジュールがあります。

- Settingモジュール
- 「定数」は、他のモジュールのものを含むすべてのプロシージャが動作するために必要な値を保管しています。この値を変えることにより、裁判所提出書類用の書式から一般の公用文用の書式に変更することもできます。
- 定数には、配列を用いることができないため、「,」区切りの文字列を配列変数に変換する処理もこのモジュール内で行っています。
- Configモジュール
- SetupPageプロシージャは、必要な定数(各見出しごとのインデント、ページの文字数・行数など)を読み込んで、スタイル、ページ設定およびアウトラインをVA公用文用にセットアップします。
その際、段落が「両端揃え」のままでも、途中に改行のある行と改行のない行で文字間隔が揃うようにページの「右余白」を修正します。(そのための計算は、クラスモジュールで行っています。)
「Ctrl+Shift+M」のショートカットキーを割り当てています。
- ConfigStyleおよびConfigPageプロシーシャは、スタイルおよびページの設定を行います。
SetupPageプロシージャから呼び出されます。 - ConfigOutlineプロシージャは、アウトラインを設定します。
SetupPageプロシージャから呼び出されます。 - ConfgListプロシージャは、箇条書き(リスト)および段落番号(番号付きリスト)のスタイルを設定します。
AlignIndentおよびMarkdownToOutlineプロシージャから必要な場合に呼び出されます。 - ChangeHeaddingToMintyoプロシージャは、見出しを明朝に変更するように指定し、ConfigStyleおよびConfigOutlineプロシージャを呼び出します。各見出しレベルが順次に変更されます。
「Alt+Ctrl+Shift+B」のショートカットキーを割り当てています。 - ChangeHeaddingToGothicプロシージャは、見出しをゴシックに変更するように指定し、ConfigStyleおよびConfigOutlineプロシージャを呼び出します。各見出しレベルが順次に変更されます。
「Ctrl+Shift+B」のショートカットキーを割り当てています。 - ChangeSelectionToGothicプロシージャは、選択した範囲のフォントをゴシック体に変更します。
「Ctrl+B」のショートカットキーを割り当てています。 - ChangeSelectionToMintyoプロシージャは、選択した範囲のフォントを明朝体に変更します。
「Alt+Ctrl+B」のショートカットキーを割り当てています。
- SetupPageプロシージャは、必要な定数(各見出しごとのインデント、ページの文字数・行数など)を読み込んで、スタイル、ページ設定およびアウトラインをVA公用文用にセットアップします。
- Indentモジュール
- AlinePageIndentプロシージャは、文書全体の段落の設定を指定し、「AlineIndent」プロシージャを呼び出します。
「Ctrl+Shift+I」のショートカットキーを割り当てています。 - UndoPageIndentプロシージャは、文書全体の段落の解除を指定し、「AlineIndent」プロシージャを呼び出します。
「Alt+Ctrl+Shift+I」のショートカットキーを割り当てています。 - AlineSelectionIndentプロシージャは、選択した段落またはカーソルのある段落の設定を指定し、AlineIndentプロシージャを呼び出します。
「Ctrl+I」のショートカットキーを割り当てています。
- UndoSelectionIndentプロシージャは、選択した段落またはカーソルのある段落の解除を指定し、AlineIndentプロシージャを呼び出します。
「Alt+Ctrl+I」のショートカットキーを割り当てています。 - AlineIndentプロシージャは、指定された範囲のインデントを設定します。
「見出し」スタイルの段落には、それぞれの見出しレベルに応じたインデントを設定または解除します。
「標準」および「リスト段落」スタイルの段落には、直前の「見出し」スタイルのレベルに応じたインデントを設定または解除します。
- AlinePageIndentプロシージャは、文書全体の段落の設定を指定し、「AlineIndent」プロシージャを呼び出します。
- Convertモジュール
- MarkdownToOutlineプロシージャは、マークダウンからアウトラインへの変換を行います。
見出し記号を削除し、その個数に応じた見出しレベルおよびリストスタイルを設定しています。
「Ctrl+Shift+>」のショートカットキーを割り当てています。 - OutlineToMarkdownプロシージャは、アウトラインからマークダウンへの変換を行います。
すべての段落に「標準」スタイルを設定し、見出しのレベルおよびリストの種類に応じた見出し記号を付加しています。
「Ctrl+Shift+<」のショートカットキーを割り当てています。
- MarkdownToOutlineプロシージャは、マークダウンからアウトラインへの変換を行います。
- Contextモジュール
- ConfigContextプロシージャは、右クリックメニューのコマンドを設定(追加または削除)します。
モジュール内にあるAutoExec、AutoNewおよびAutoOpenプロシージャ―から追加モードで呼び出されます。
同じくモジュール内にあるAutoExitおよびAutoCloseプロシージャ―から削除モードで呼び出されます。
- ConfigContextプロシージャは、右クリックメニューのコマンドを設定(追加または削除)します。
ショートカットの割当を変更したい場合は、こちらの記事をご参照ください。
一部の機能は、クイックアクセスツールバーからも操作できるようにしています。クイックアクセスツールバーの設定については、こちらの記事をご参照ください。(リボンへの登録方法も紹介されています。)
クラスモジュール
クラスモジュールの中に「RightMargine」というモジュールがあります。
.png)
- RightMargineモジュール
- CalcMargineプロシージャは、各行の字送りを同じにできる右余白設定値の計算を行います。
ConfigPageプロシージャから呼び出されます。
- CalcMargineプロシージャは、各行の字送りを同じにできる右余白設定値の計算を行います。
各プロシージャのコード
各プロシージャのコードについては、サンプルファイルのVBEにコメントで説明していますので、そちらをご確認ください。
コードの記述を簡潔にするため、組み込み定数を使用しています。
テンプレートのカスタマイズ
「Setting」モジュールには、このテンプレートの作動に必要な「定数」がまとめられています。この定数を変更することにより、テンプレートをカスタマイズすることができます。
'定数を宣言する
'すべてのモジュールで使用できるようにするため、Publicで宣言しています。
'定数を変更した後、SetupPageを実行するとテンプレートへの設定が行われます。
'設定後は、テンプレートを保存するようにしてください。
'準拠
'資料1:「公用文の書き方」第2次改訂版 磯崎陽輔著 株式会社ぎょうせい
'資料2:「裁判文書(裁判所提出書類)の標準的な書式」http://www5d.biglobe.ne.jp/Jusl/Bunsyo/Suujihyouki2.html
'①アウトラインおよびインデント
'設定項目ごとにレベル1から10(レベル10は本文)までの設定値を「,」で区切って記載してください。
'番号書式
'文字種および全・半角の別に関係なく、レベルに応じて%1~%9を入力してください。
'番号の前後に入れる文字および空白をそのまま追加してください。
'例:第1:"第%1 "、第1:"第%1 "、"1:"%1 "、(1):"(%1) "
'番号スタイル
'文字種および全・半角の別に応じて、組み込み定数を入力てください。
'英字およびローマ数字には全角が使えません。
'全角アラビア数字:14、半角アラビア数字:0、全角カタカナ:20、半角カタカナ:12
'英字(小文字):4、ローマ数字(小文字):2、丸囲み数字:18
'リスト開始レベル
'見出し番号をリセットするアウトラインレベルの値を入力してください。
'例:直上のレベル:1(自分のレベルの値から1を減じたもの)、リセットしない:0
'開始番号
'見出し番号の開始番号を入力してください。
'例:1から開始:1、2から開始:2
'左インデント
'見出し番号を除いた部分に設定する左インデントを文字数単位で入力してください。
'例:0文字:0、1文字:1、1.5文字:1.5
'最初の行のインデント
'見出し番号を除いた部分に設定する最初の行のインデントを文字数単位で入力してください。
'例:1文字の字下げ:1、1.5文字のぶら下げ:-1.5
'左インデント増加量
'アウトラインレベルに応じて自動的に増加させる左インデントの値を文字数単位で入力してください。
'例:1文字ずつ増加:1、増加させない:0
'次の定数の組み合わせの中から、1組をコメント解除してください。
' 公文書用(資料1に準拠)第1 、1 、(1) 、ア 、(ア) 、a 、(a) 、i 、(i) 、標準
' Public Const strNumberFormats As String = "第%1 ,%2 ,(%3) ,%4 ,(%5) ,%6 ,(%7) ,%8 ,(%9) ," '番号書式
' Public Const strNumberStyles As String = "14,14,0,20,12,4,4,2,2," '番号スタイル
' Public Const strResetOnHighers As String = "0,1,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,1,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "1,1,1,1,1,1,1,1,1,0" '左インデント
' Public Const strFirstLineIndents As String = "2,1,1,1,1,1,1,1,1,1" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 1 '左インデント増加量
'
' 公文書用(資料1に準拠)第1 、1 、(1) 、ア 、(ア) 、a 、(a) 、i 、(i) 、標準
' Public Const strNumberFormats As String = "第%1 ,%2 ,(%3) ,%4 ,(%5) ,%6 ,(%7) ,%8 ,(%9) ," '番号書式
' Public Const strNumberStyles As String = "14,14,0,20,20,4,4,2,2," '番号スタイル
' Public Const strResetOnHighers As String = "0,1,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,1,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "1,1,1,1,1,1,1,1,1,0" '左インデント
' Public Const strFirstLineIndents As String = "2,1,1,1,1,1,1,1,1,1" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 1 '左インデント増加量
'
' 公文書用(資料1に準拠)第1 、1 、(1) 、ア 、(ア) 、a 、(a) 、i 、(i) 、標準
' Public Const strNumberFormats As String = "第%1 ,%2 ,(%3) ,%4 ,(%5) ,%6 ,(%7) ,%8 ,(%9) ," '番号書式
' Public Const strNumberStyles As String = "14,14,14,20,20,4,4,2,2," '番号スタイル
' Public Const strResetOnHighers As String = "0,1,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,1,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "1,1,1,1,1,1,1,1,1,0" '左インデント
' Public Const strFirstLineIndents As String = "2,1,1,1,1,1,1,1,1,1" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 1 '左インデント増加量
'
' 公文書用(資料1に準拠)第1 、1 、(1)、ア 、(ア)、a 、(a)、i 、(i)、標準
' Public Const strNumberFormats As String = "第%1 ,%2 ,(%3),%4 ,(%5),%6 ,(%7),%8 ,(%9)," '番号書式
' Public Const strNumberStyles As String = "14,14,14,20,20,4,4,2,2," '番号スタイル
' Public Const strResetOnHighers As String = "0,1,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,1,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "1,1,1,1,1,1,1,1,1,0" '左インデント
' Public Const strFirstLineIndents As String = "2,1,1,1,1,1,1,1,1,1" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 1 '左インデント増加量
'
' 裁判所提出書類用(「資料2に準拠)第1 、1 、(1) 、ア 、(ア) 、a 、(a) 、i 、(i) 、標準
Public Const strNumberFormats As String = "第%1 ,%2 ,(%3) ,%4 ,(%5) ,%6 ,(%7) ,%8 ,(%9) ," '番号書式
Public Const strNumberStyles As String = "14,14,0,20,12,4,4,2,2," '番号スタイル
Public Const strResetOnHighers As String = "0,1,2,3,4,5,6,7,8,0" 'リスト開始レベル
Public Const strStartAts As String = "1,1,1,1,1,1,1,1,1,0" '開始番号
Public Const strLeftIndents As String = "1,1,1,1,1,1,1,1,1,0" '左インデント
Public Const strFirstLineIndents As String = "2,1,1,1,1,1,1,1,1,1" '最初の行のインデント
Public Const lngLeftIndentsAdd As Long = 1 '左インデント増加量
'
' 裁判所提出書類用(オリジナル)第1 、1 、(1) 、ア 、(ア) 、a 、(a) 、i 、(i) 、標準
' Public Const strNumberFormats As String = "第%1 ,%2 ,(%3) ,%4 ,(%5) ,%6 ,(%7) ,%8 ,(%9) ," '番号書式
' Public Const strNumberStyles As String = "14,14,0,20,12,4,4,2,2," '番号スタイル
' Public Const strResetOnHighers As String = "0,1,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,1,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "2,1,1,1,1,1,1,1,1,0" '左インデント
' Public Const strFirstLineIndents As String = "1,1,1,1,1,1,1,1,1,1" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 1 '左インデント増加量
'
' 契約書用(条番号→見出しタイプ)第1条()、1、(1)、、、、、、、標準
' Public Const strNumberFormats As String = "第%1条,%2 ,(%3),,,,,,," '番号書式
' Public Const strNumberStyles As String = "14,14,14,0,0,0,0,0,0,0,0" '番号スタイル
' Public Const strResetOnHighers As String = "0,1,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,1,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "1,1,2,0,0,0,0,0,0,0" '左インデント
' Public Const strFirstLineIndents As String = "2,1,1,0,0,0,0,0,0,1" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 0 '左インデント増加量
'
' 契約書用(見出し→条番号タイプ)()、第1条、2、(1)、、、、、、標準
' Public Const strNumberFormats As String = ",第%2条 ,%3 ,(%4),,,,,," '番号書式
' Public Const strNumberStyles As String = "0,14,14,14,0,0,0,0,0,0" '番号スタイル
' Public Const strResetOnHighers As String = "0,0,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,2,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "0,3,3,5,0,0,0,0,0,0" '左インデント
' Public Const strFirstLineIndents As String = "0,1,1,1,0,0,0,0,0,0" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 0 '左インデント増加量
'
' 契約書用(見出し→条番号タイプ/オリジナル)()、第1条、2、①、、、、、、標準
' Public Const strNumberFormats As String = ",第%2条 ,%3 ,%4 ,,,,,," '番号書式
' Public Const strNumberStyles As String = "0,14,14,18,0,0,0,0,0,0" '番号スタイル
' Public Const strResetOnHighers As String = "0,0,2,3,4,5,6,7,8,0" 'リスト開始レベル
' Public Const strStartAts As String = "1,1,2,1,1,1,1,1,1,0" '開始番号
' Public Const strLeftIndents As String = "0,6,6,4,0,0,0,0,0,0" '左インデント
' Public Const strFirstLineIndents As String = "0,0,0,0,0,0,0,0,0,0" '最初の行のインデント
' Public Const lngLeftIndentsAdd As Long = 0 '左インデント増加量
'②ページ設定
'次の定数の組み合わせの中から、1組をコメント解除してください。
' 公文書用
' Public Const sngPageWidth As Single = "210" '用紙サイズの幅(mm)
' Public Const strMargines As String = "35,27,30,22.5" 'ページ余白(mm)(上,下,左,右)'右余白は、修正されるのでわずかに増減します。
' Public Const strCharsAndLines = "40,40" '文字数及び行数(文字)(文字数,行数)
' Public Const blnLineNumber = False '行番号の表示(デフォルト:False)
'
' 裁判所提出書類用 (資料2に準拠)
Public Const sngPageWidth As Single = "210" '用紙サイズの幅(mm)
Public Const strMargines As String = "35,27,30,17.5" 'ページ余白(mm)(上,下,左,右)'右余白は、修正されるのでわずかに増減します。
Public Const strCharsAndLines = "37,26" '文字数及び行数(文字)(文字数,行数)
Public Const blnLineNumber = True '行番号の表示(デフォルト:True)
'③スタイル
Public Const sngFont As Single = 12 'フォントサイズ(ポイント単位で入力します。)
Public Const strFont As String = "MS 明朝" 'フォント名(「MS」と「明朝」の間に半角スペースが必要です。)
Public Const strGothicFont As String = "MS ゴシック" 'ゴシック用フォント名(「MS」と「ゴシック」の間に半角スペースが必要です。)
'Public Const strGothicFont As String = "HGゴシックE" 'ゴシック用フォント名(すべて半角です。)
Public Const strJust As String = wdJustificationModeExpand '文字間隔の調整(「間隔を詰めない」に設定しています。)
Public Const strAlign = wdAlignParagraphJustify '配置(句読点のぶら下げを行うため、「両端揃え」に設定しています。)
'④リスト
Public Const strListBullFormat As String = "・" '箇条書き(リスト)の記号
Public Const strListNumbFormat As String = "%1 " '段落番号(番号付きリスト)の記号
Public Const lngListLeftIndent As Long = 0 'リストの左インデント
Public Const lngListFirstLineIndent As Long = -1 'リストの最初の行のインデント
'⑤マークダウン記号
Public Const strHead As String = "#" '見出しレベル(デフォルト:"#")
Public Const strList As String = "-" '箇条書き(デフォルト:"-")
Public Const strNumList As String = "1." '段落番号("1."変更不可)
Public Const blnMarkdownSpace As Boolean = False 'マークダウン記号の後の空白(デフォルト:False)
'⑥マクロ適用範囲
Public Const blnSkipUntil = True '最初の見出しまでの処理(デフォルト:True)
Public Const blnStopAfter = True '行頭の空白後の処理(デフォルト:True)
定数を変更した場合は、「Ctrl+Shift+M」を押して、ページのセットアップを実行してください。
その他
変更履歴
このテンプレートの変更履歴は、サンプルファイルのVBEの「ThisDocument」モジュールに記載しています。
参考文献
このテンプレートの書式は、次を参考にしています。
- 裁判文書(裁判所提出書類)の標準的な書式 実務の友
- 分かりやすい公用文の書き方(第2次改訂版) 礒崎 陽輔 (著)
このマクロを作成するにあたっては、こちらの記事を参考にさせていただきました。
素晴らしいアイデアを公開していただいたstabucky.com様に感謝申し上げます。
関連記事

どうでしょう。一太郎以上に簡単にインデントを設定できると思います。

テンプレートなので、頭書の部分を自分用に入力したり、書類の種類に応じて別名で保存したりもできますね。

そのとおりですね。ただし、「スタイル」や「アウトライン」の設定を変更した場合は、マクロとの整合が取れなくなる可能性がありますので、気を付けてください。

マークダウンで文書を起案するようにすれば、スタイルなどを気にせずに文書の起案に集中できそうです。

ワードよりも動作の軽いエディターでスピーディーに入力を行い、コピー&ペーストでこのテンプレートに流し込むという方法もあります。
コメント
ナビゲーションウィンドウを使って、見出しを含む文書内の要素の順番を入れ替えようとすると、最後の「補足」の部分が最後の見出しと一緒に動いてしまいます。補足との区切りを「全角の空白」にしているためです。アウトラインのレベル9を「番号なし」にして、これを区切り文字に使うという方法もあるのですが、できれば「(i)」の見出しを残したいです。何か良いアイデアがあれば、教えて下さい。
はじめまして、この記事とWordファイルに感激しました。
影本さまはセミナーなどやっていますでしょうか?
「分かりやすい公用文の書き方 第2次改訂版」のルールに沿ったワードマークダウンが必要となっています。
影本様にココナラなどで委託することはできますでしょうか?
コメントありがとうございます。
このテンプレートは、自分でも「イケてるんじゃないか?」と思っていましたので、このようなコメントを頂けて、こちらも感激しています。
頂いたご質問への回答は、次のとおりです。
・セミナーは、行っていません。(それほどの能力はないと思っています。)
・業務の委託は引き受けておりません。(本サイトへの協賛金は受け付けております。)
・このテンプレートは、私の勤務する法律事務所のニーズに合わせたものであり、「分かりやすい公用文の書き方 第2次改訂版」のルールは確認していません。今後、対応について検討させていただきたいと思います。
「分かりやすい公用文の書き方 第2次改訂版」のルールに合わせられるようにしました。
「箇条書き」および「段落番号」に対応させました。
定数を変更することで裁判所提出書類用から一般公文書用に変更するなどのカスタマイズができるようにしました。(Ver210)
ゴシック体への変換機能を追加しました。(Ver300)
ゴシック体のフォントを変更できないバグを修正しました。(Ver301)
「箇条書き」および「段落番号」は、その都度、最初から設定しなおしています。どんな文章でも必ず1つの段落があるので、よほどのことをしない限り「アウトライン」は設定が残るのですが、「箇条書き」や「段落番号」は消えてしまう可能性が高いからです。
アウトラインのレベル8と9に「箇条書き」と「段落番号」を割り当てる方法もあるのですが、私の経験では、iや(i)の見出しを使う場合もなくはなかったので残したいです。
ListGal.datをテンプレートと一緒に配布する手もあるのですが、それも面倒です。
何か良いアイデアがあれば、教えて下さい。
定数用配列の処理および右余白の計算をクラスモジュールに変更しました。
表題のフォントを定数で設定するようにしました。
クイックアクセスツールバーでの操作を追加しました。(Ver310)
右余白の計算プロシージャをSubからFunctionに変更しました。(Ver311)
右クリックメニューでの操作を追加しました。(Ver320)
契約書に対応させ、全角の見出し番号が2桁および3桁になる場合のインデント自動修正機能を追加しました。(Ver411)