サンプル

カオスな書式をマークダウンに変換(ワードVBA)

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

そういった「カオス状態」の文書でも、VA公用文でセットアップを行えば、きちんとした設定に直せる場合もありますよ。

でも、先日、ある人から受け取ったファイルは、スタイルやアウトラインをまったく使わず、見出しの番号を手打ちで入力してあったんですよ。さすがにこれは無理でしょう?

分かりました。そんなファイルでも、マークダウン書式に変換できるツールを作ってみましょう。その後は、VA公用文を使って、適切なアウトラインやスタイルに変換できるはずです。

よろしくお願いします!

ダウンロード

サンプルファイルは、こちらからダウンロードしてください。

使い方

準備

ダウンロードしたファイルを「スタートアップフォルダ」に保存すれば、アドインとして、いつでもマクロを利用できるようになります。

別に紹介している「VA公用文」と併用すれば、このアドインでマークダウンに変換した文書にアウトライン、スタイルおよびインデントを自動的に設定できます。

変換

手作業書式(カオス状態)のワード・ファイルを開いた状態で、Ctrl+Shift+Oを押すか、クイックアクセスツールバーのボタンをクリックすると、マークダウンへの変換を次のとおり自動的に行います。

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

変換例

アドインをインストールしてから、カオス状態の文書を開きます。

カオスな状態の文書の一例(見出し番号が手入力され、インデントが空白で調整されている。□は空白の編集記号)

マークダウンに変換されます。

マークダウンに変換したところ

「VA公用文」を使えば、アウトライン、スタイルおよびインデントを自動的に設定できます。

「VA公用文」を使って、アウトラインに変換したところ

カスタマイズ

マクロの定数を修正することより、マークダウン記号などのカスタマイズが可能です。

マクロの構造

ファイルをエクスプローラーで右クリックして、「開く」を選択すると、ファイル自体を編集できるようになります(そのままダブルクリックすると、新規文書が作成されてしまいます)。その状態から、「開発」-「Visual Basic」をクリックしてVBEを起動すると、マクロの構成や内容を確認することができます(そのまま編集することもできます)。

このマクロの特徴は、アウトラインを使わずに番号などを手入力しているドキュメントにも対応していることです。その際には、各段落のテキストをLike関数を使って確認し、それに適合するマークダウン記号を割り当てています。

Like関数の使い方については、こちらの記事(エクセルVBAに関するものです)を参考にしました。

プロシージャ内のコードの細部については、サンプルファイルのプログラムにコメントで記載していますので、そちらを御覧ください。

制限事項

  • Mac版ワードで使用する場合は、ショートカットキーおよびクイックアクセスツールバーの再設定が必要です。

関連記事

コメント

  1. 管理人 より:

    次の見出しに対応させました。(Ver102)
    ・スタイルが設定されていないアウトライン
    ・アウトラインが設定されていないリスト(アウトライン番号あり)

  2. 管理人 より:

    今後は、2桁の見出し番号や「公用文テンプレート」との見出しレベルのズレなどに対応してゆきたいと考えています。

  3. 管理人 より:

    3桁までの見出し番号に対応しました。(Ver110)

  4. 管理人 より:

    「公用文テンプレート」との見出しレベルのズレに対応しました。(Ver120)

  5. 管理人 より:

    「(」の前に半角の空白文字が残るバグを修正しました。(Ver121)

  6. 管理人 より:

    対応できていないケースについての情報をお待ちしています。
    可能なかぎり、対応させていただきます。

  7. 管理人 より:

    見出し番号や文字の後にピリオド(.)がついているものに対応しました。(Ver130)

  8. 管理人 より:

    ローマ数字(小文字のみ)に対応しました。(Ver140)

  9. 管理人 より:

    表がある場合にエラーになるバグを修正しました。(Ver141)

タイトルとURLをコピーしました