従来紹介していた「VAスタイル」は、こちらで紹介する「VA見出し変換」に統合しました。

他の人からもらったワードファイルは、ワードの機能を使わずに、手作業で書式を設定しているものが多くて、修正するのが大変です。

そうですよね。「VA公用文」などのマクロを使った書式設定になれると、手作業には戻れないですよね。そういった書式でもマークダウンに変換できるマクロを作ってみましょう。

それと、裁判所から届いた文書には、こんな書式がありました。
1(1) 〇〇は〇〇である。
(2) △△は△△である。
この書式を真似してみたいのですが、さすがにこれは手作業でやるしかないですよね?

正式な呼び方ではないと思いますが、「複合見出し」と呼ばれる書式ですね。ワードのアウトラインでは実現できませんが、「疑似アウトライン」でよければマクロで自動設定ができると思います。

「疑似アウトライン」って何ですか?

これも正式な呼び方ではないと思いますが、「疑似アウトライン」とは、ワードのスタイル機能やアウトライン機能を使わずに、手動で番号や記号を付けて階層構造を表現した見出しのことです。「複合見出し」のようなワードに機能がない書式も実現できます。

よろしくお願いします!
ダウンロード
使い方
準備
ダウンロードしたファイルを「スタートアップフォルダ」に保存すれば、アドインとして、いつでもマクロを利用できるようになります。
別に紹介している「VA公用文」と併用すれば、このアドインでマークダウンに変換した文書にアウトラインやスタイルを設定できます。また、スタイルやページ設定などの設定も簡単に行えます。
オプションの設定
クイックアクセスツールバーのこのボタンをクリックすると、オプション設定画面が表示されます。←New!

番号スタイルを選択してOKを押すとオプションが変更されます。

疑似アウトライン→マークダウン
通常のスタイルやアウトライン、疑似アウトライン(手作業書式)で書かれたワード・ファイルを開いた状態で、クイックアクセスツールバーのこのボタンをクリックすると、見出しなどがマークダウンに変更されます。

行われる処理は次のとおりです。
- スタイルまたはアウトラインが設定された次の書式をマークダウンに変換
- 見出し
- 箇条書き
- 段落番号
- 番号などが手作業で入力された次の書式をマークダウンに変換
- 見出し
- アラビア数字:「第1」、「1」、「1.」、「(1)」(全・半角の区別なし、3桁以下のみ)
- カタカナ:「ア」、「(ア)」(全・半角の区別なし)
- 英字:「a」、「(a)」(全・半角の区別なし、aからhまでの小文字のみ)
- ローマ数字:「i」、「v」、「x」(半角小文字のみ、7桁以下のみ)
- 箇条書き:「・」、「-」(全・半角の区別なし)
- 段落番号:「①」
- 見出し
- すべての段落に「標準」スタイルを適用
- 次の場所にある空白文字(全角・半角)およびピリオドを削除
- 行頭
- 見出し番号の直後
- 最初の見出しまでの段落と「行間詰め」スタイルに設定された段落は処理の対象外
変換前(手書き書式, 疑似アウトライン, アウトライン)


変換後(マークダウン)

マークダウン→疑似アウトライン
マークダウンで書かれたワードファイルを開いた状態でこのボタンを押すと、疑似アウトライン(アウトラインを使わずに見出し番号をテキストで入力した書式)に変換されます。

行われる処理は、次のとおりです。
- マークダウンの記号に応じて、疑似アウトライン(アウトラインを使わずに見出し番号をテキストで入力した書式)を設定
- 見出し番号が全角1文字になるように文字幅を修正
- 同じくインデントを設定
- 見出しのマークダウン記号だけの段落は、複合見出し(同じ行に2つのレベルの見出しを連続して記載する書式)に変換
- セクション区切りで見出しの開始番号をリセット
- 最初の見出しまでの段落と「行間詰め」スタイルに設定された段落は処理の対象外
変換前(マークダウン)


変換後(疑似アウトライン、全角1文字幅)

複合見出しへの対応
見出しのマークダウンだけの行は、複合見出し(同じ行に2つのレベルの見出しを連続して記載する書式)に変換されます。
変換前(マークダウン。テキストのない見出しあり)


変換後(疑似アウトライン。テキストのない見出しは複合見出しとして処理)

マクロの構造
ファイルをエクスプローラーで右クリックして、「開く」を選択すると、ファイル自体を編集できるようになります(そのままダブルクリックすると、新規文書が作成されてしまいます)。その状態から、「開発」-「Visual Basic」をクリックしてVBEを起動すると、マクロの構成や内容を確認することができます(そのまま編集することもできます)。
このマクロの特徴は、アウトラインを使わずに番号などを手作業で入力した疑似アウトラインでもマークダウンに変換できることです。その際には、各段落のテキストをLike関数を使って確認し、それに適合するマークダウン記号を割り当てています。
Like関数の使い方については、こちらの記事(エクセルVBAに関するものです)を参考にしました。
また、2つ以上の文字を全角1文字に収める際には、アドバンス幅を考慮しないと文字幅が大きい場合に文字送りのズレが目立ってしまいます。このため、フォント文字幅を設定する際には、アドバンス幅に応じた修正を加えています。
プロシージャ内のコードの細部については、サンプルファイルのプログラムにコメントで記載していますので、そちらを御覧ください。
カスタマイズ
標準モジュール「Setting」の定数を修正することより、マークダウン記号や見出し番号の書式などのカスタマイズが可能です。
見出し番号の数字やカタカナの全角と半角の区分をレベルごとに変更することもできます。デフォルトでは公用文で一般的な要領に設定していますが、個人的には全部半角が気に入っています。
詳細はモジュール内のコメントを参照してください。
履歴
「ThisDocument」モジュール内に記載しています。
制限事項
- 別に紹介している「VA公用文」を利用して、ページ設定を行わないと文字送りが揃わない場合があります。
- 12ポイント以外の文字には、対応していません。
- Mac版ワードで使用する場合は、クイックアクセスツールバーの再設定および標準モジュール「Setteing」内の定数の変更が必要です。
コメント
従来紹介していた「VAアウトライン」と併用するとクイックアクセスツールバーが動作しないバグがあったため、修正しました。(Ver101)
見出し番号を全角1文字分の幅にすることで、複合見出しのできない見出しレベルがないようにしました。(Ver200)
段落番号の序数が増加しないバグを修正しました。(Ver201)
疑似アウトラインへの変換時に番号スタイルを選択できるようにしました。(Ver210)