(2010/03/06 02:43)
Excelで、とあるアプリケーションの簡単な操作手順書を作るはめになり、ダイアログなどの画像(スクリーンショット)に対して矢印を書き込んで説明をつけたり、ボタンを四角形で囲んで強調したりしておりましたところ、印刷プレビューにおいて、画像と図形(矢印や四角形)の位置がずれる現象が発生しました。
この現象自体はよく聞く話なのですが、これまで対処法がわかっておらず、勝手にExcelの精度の限界だと思っていました。
ところがこのたび、がむしゃらに試行錯誤した結果、対策らしきものを見出したので、公開しておきます。
# Excel 2003 (11.8169.8172) SP3 で動作確認しました。
まず、以下の図1をご覧ください。
図1: Excelシート上に「電卓」の画像が3つ貼ってあり、それぞれのクリアボタンが赤い四角形で囲まれている。

ここで、Excelシートの左上に貼られた画像は、「電卓」のスクリーンショットをそのまま(=ビットマップとして)貼り付けたものです。
また右上の画像は、左上の画像をExcel上で「コピー」し、「形式を選択して貼り付け」で「図 (拡張メタファイル)」を選択して貼り付けたものです。
3つ目の左下の画像については後述します。
次に、以下の図2をご覧ください。
図2: 図1のExcelシートの印刷プレビュー。右上の画像のみ、赤い四角形の位置がずれている。

この図2は印刷プレビューをキャプチャしたものですが、右上の拡張メタファイルの画像のみ、赤い四角形の位置がクリアボタンからずれています。これが今回、この記事を書く発端となった現象です。
ところで、右上の画像をよくよく見ると、実際には赤い四角形の位置がずれているのではなく、画像のほうが微妙に大きくなっており、その結果位置が合わなくなっていることがわかります。
今回、Excelの奇妙な挙動について、以下のことに気がつきました。
- Excelに拡張メタファイルの画像を貼って印刷プレビューすると、なぜか画像が若干大きくなる。
- ↑の若干大きくなる現象は、画像サイズの倍率が100%の場合のみ発生する。
というわけで、画像の「図の書式設定」 > 「サイズ」 > 「倍率」の「高さ」「幅」を「99%」や「101%」にするという作戦を決行いたしますと、ずれが発生しなくなることが確認できました。しかし残念ながら、この「100%からちょっとだけ倍率を変えちゃう作戦」も完全ではありません。
Excelの奇妙な挙動、つづき。
- 拡張メタファイル画像のサイズを「99%」や「101%」にしてから印刷プレビューすると、元画像のサイズによっては、なぜか倍率が「100%」に戻される場合がある。うそーん。
以上を踏まえまして、この問題に対し以下の手順を提案します。
※画像のサイズを「95%」以下や「105%」以上に変更して問題ない場合には、すでに述べたとおりサイズ変更だけで解決しますので、以下の大技は不要です。
- 「ずれ」る画像のサイズを、「200%」にする。

- 当該画像を「切り取り」→「図 (拡張メタファイル)」形式で貼り直す。すると、画像の「原型のサイズ」が2倍になるが、「倍率」は「100%」に戻る。

- 当該画像のサイズの「倍率」を「50%」にする。すると、表示上のサイズは元に戻る。(2 x 0.5 = 1)

この提案手法を適用した結果が、図1や図2の左下の画像になります。
おわり。