分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
DOCM
マクロ入りの Word 文書。PDF にするのはたいてい目的がそこにあります——マクロは付いていきません。
DOCM
DOCM はコンテナです。誰か別のものが符号化した流れを、中に収めておく外殻です。 編集のために使われます。
拡張子は .docm、正式名称は Word Macro-Enabled Document です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。
Microsoft が 2007 年に公開しました。 仕様は ECMA-376 です。
古さが役に立つのは、ごく実務的な理由からです。形式が古いほど、それを覚える時間が多くのプログラムに与えられてきたということだからです。
仕様書がそのまま公開されているので、中身を推し量るのではなく文書を読んで実装できます。この形式が数多くのプログラムに載っているのはそのためであり、20 年前に書かれたファイルが今も開けるのもそのためです。ただし「仕様が公開されている」ことと「使用料が要らない」ことは別の話です。中でコーデックを包んでいる形式では、特許のライセンスは仕様書が答えていない別の問題として残ります。
DOCM ファイルは 1 ページに縛られていません。1 ページしか持てないものへ変換するときには、これが効いてきます。1 回の変換で出てくるのは 1 ページぶんのファイル 1 つで、取られるのは先頭のページです——どのページを取るかを選ばせてくれる変換であれば、そのページになります。
DOCM ファイルは実行されるコードを一緒に運べます。そして、この拡張子と関わることになる理由はたいていそこにあります——メールサーバーか、文書提出のポータルに弾かれたのです。マクロを持てない形式へ変換するのがよくある逃げ道で、そのあとマクロが残らないのはご想像のとおりです。
DOCM の中身はテキスト文書です。段落は、置かれたページに合わせて流れ直します。
これが変換のされ方を決めます。テキストは流れ直すので、ページ数は結果の性質であって、ファイルの性質ではありません。
Microsoft Wordが読めますし、同じ種類のプログラムならたいてい読めます。
ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。
これを読めるブラウザーはありません。
これを変換するいちばんよくある理由がこれです。形式が悪いのではありません。ファイルを見せたい場所が、それを読めないというだけのことです。
DOCM は、開いて手を入れるために作られています。作業が続いているあいだはこの形式でファイルを持ち、完成したものが必要になるたびに、ここから書き出してください。
DOCM と DOCX は同じ形式です。本文とスタイル、画像を持つ XML の ZIP パッケージで、違いはただ一つ、DOCM は VBA プロジェクトを持てて DOCX は持てないという点です。開く前にそれを分かるようにするために、拡張子が存在しています。
スプレッドシートと違うのは、正当な理由がある頻度です。マクロ入りのワークブックはよくある業務自動化ですが、マクロ入りの「文書」はずっとまれです。フィールドを埋める、手紙を生成する、社内書式を強制するテンプレートは正当なケースであり、流通している DOCM ファイルのうちごく一部にすぎません。
はっきり言っておく価値があります。マクロ付きの Word 文書は、十年近くにわたって史上もっとも効果的なマルウェアの配信手段でした。請求書、配送票、履歴書、そして「表示するにはマクロを有効にしてください」と主張する文書。
「表示するにはコンテンツを有効にしてください」という文言そのものが手口の目印です。本物の文書はマクロなしで読める必要があり、テキストは XML の中に入っていて、コードが動くかどうかに関わらず Word はそれを描画します。そうでないと主張するファイルは、文書がどう動くかではなく、あなたにさせたいことを説明しているにすぎません。
いまの Office はインターネットやメール添付から来た文書のマクロを、有効化ボタンを出すのではなく端から遮断します。Windows はそうしたファイルにゾーンフラグを付け、Word は赤いバナーとその理由を説明するリンクとともにコードを拒否します。
効果は測定可能で、攻撃側の対応も同じでした。ほかのファイル形式への移行です。正当な文書については、ファイルのプロパティでブロックを解除するか、信頼できる場所として設定したフォルダーに置くのが直し方で、どちらもファイルの出所を知っている人が意図的に行う行為です。それがこの仕組みの狙いです。
レターヘッドを挿入する、データベースからフィールドを埋める、番号付けを強制する、フォームから文書を生成する企業向けテンプレート。特に法律事務所や金融機関はこの種の仕組みに深く投資していて、実際に機能しています。
テンプレートはたいてい DOCM ではなく DOTM ── マクロ有効のテンプレート形式 ── であることに注意してください。狙いはそれを配布することではなく、そこから新しい文書を作り始めることだからです。マクロを持つ完成済みの文書というのは少し奇妙な存在で、なぜそうなのかを疑うのは、疑心暗鬼ではなく正当な問いです。
DOCX として保存すると VBA プロジェクトは破棄され、本文、スタイル、画像、表、ヘッダー、フッター、そのほかすべてが保たれます。Word は先に警告を出します。読むためだけに送られてきた文書には、これが正しい対処で、一秒で済みます。
PDF への変換はさらに踏み込み、最終版としてはこちらのほうが良い答えです。PDF はそもそもコードを実行できず、レイアウトを固定し、たいていの受け手が最初から受け取りたかったものです。マクロ有効のテンプレートに基づいてたまたま存在している文書を送るなら、PDF を書き出すほうが DOCM をそのまま渡すより安全で、相手への配慮にもなります。
.zip に名前を変えてアーカイブとして開いてください。文章と書式は読み取り可能な XML なので、Word にいっさい何も実行させずに文書の中身を確認できます。VBA プロジェクトはバイナリのストリームでそこでは読めませんが、それ自体が情報になります。マクロの塊が大きい文書は、何か大がかりなことをしています。
コードを読むには、Word や LibreOffice の VBA エディタが実行せずに開いてくれます。見覚えのない送り主からの見慣れないファイルについては、もっと単純な助言があります。開かず、送り主に何のためのものか尋ねることです。
受け手が本当にその自動化を必要としているか確かめてください。中身だけが必要なら DOCX か PDF を送れば、この問題自体が消えます。相手のメールゲートウェイが隔離する可能性も大きく下がります。多くのゲートウェイは、いまマクロ有効の添付ファイルをそう扱っています。
自動化そのものが目的なら、インターネット由来と印がつかない経路 ── 共有ドライブ、社内の文書ライブラリ、IT が配布するパッケージ ── で送ってください。DOCM をメールで送ってからブロック解除の方法を教えるのは、2022 年の変更がまさに断とうとした習慣を教えているのと同じです。
| 拡張子 | .docm |
|---|---|
| メディアタイプ | application/vnd.ms-word.document.macroEnabled.12 |
| 公開元 | Microsoft |
| 初版 | 2007 |
| 仕様 | ECMA-376 |
DOCM は VBA マクロを持てて、DOCX は持てないという一点だけが違います。どちらも同じ本文とスタイル、画像を持つ XML の ZIP パッケージです。拡張子を分けているのは、開く前に「コードが入っていると主張しているファイルだ」と分かるようにするためです。
マクロを無効にして開くのは、ほかの文書と同じくらい安全です。テキストはコードが動かなくても XML から描画されます。危険なのはマクロを有効化する判断のほうで、VBA はファイルシステムとネットワークに全面的にアクセスできます。出所の分かっているファイルだけ有効化してください。
いいえ。その文言は典型的な手口です。本物の文書はマクロなしで読めます。コードが動くかどうかに関わらず Word はテキストを描画するからです。そう主張するファイルは、文書の仕組みではなく、あなたにさせたいことを説明しています。
DOCX として保存してください。VBA プロジェクトは破棄され、本文、スタイル、画像、表、ヘッダー、フッターはすべて保たれます。Word は事前に警告を出し、その警告自体が操作のすべてです。
2022 年以降、Office はインターネット由来と印のついたファイルのマクロを、有効化ボタンを出さずに端から拒否するようになりました。正当なファイルについては、ファイルのプロパティでブロックを解除するか、信頼できる場所に置いてください。どちらも出所を知っていることが前提です。
.zip に名前を変えてアーカイブとして開いてください。本文と書式は読み取り可能な XML です。マクロはバイナリのストリームとして格納されそこでは読めませんが、そのサイズだけでも文書が何か大がかりなことをしているかどうかが分かります。