Excelでブック内のシートに保存されているオートシェープをシートに貼り付ける際に起こる事象をご紹介しながら、ご利用いただく際の注意点についてご説明致します。
なおExcel 2016のバージョンは2007、ビルド13029.20308で確認をしています。
地図のオートシェープ図形を使う時
標準のオートシェープ図形を使う時は、「挿入」タブから「図」リボングループの「図形」をクリックして選択するケースが多くオートシェープ図形をコピーして使用する事はあまりやらないと存じます。
ただし実際にコピーして使用する場合に、全く同じ状態でコピーする分には問題は起こらないのですが、状態が異なる時には気を付けなければならないExcel特有の「癖」がありますので注意が必要です。
コピー元ブックのオートシェープ図形の設定
タイトルでは「地図のオートシェイプ図形」としていますが、今回説明で使用するのは標準で用意されているオートシェープ図形「太陽」です。
- オートシェープサイズは縦横共に2.54㎝に設定してあります。
- セル幅は弊社PC環境ではデフォルトの「8.10」ポイント(文字数)、高さは「18.00」ポイントになります。
- 単位を言い換えるとセル幅は「88ピクセル」、高さは「30ピクセル」になります。
- シートの倍率は100%です。
- コピー元のブック名は「オートシェープ.xlsx」とします。
なお左図赤枠部分サイズの「縦横比を固定する」とプロパティの「セルに合わせて移動するがサイズ変更はしない」2か所の設定を変更しています。
倍率100%でセルの幅・高さが異なる状態の別ブックに貼り込むと
上記「オートシェープ.xlsx」のオートシェープ図形「太陽 1」をコピーして「貼り込み先.xlsx」のセル幅・高さが上記とは異なる枠線内の箇所にコピーしてみます。
コピー元の「オートシェープ.xlsx」を開いたままでコピーした場合
貼り込み先のセル幅は12.00ポイント、高さ30.00ポイントに設定しています。(単位を言い換えると弊社PC環境ではセル幅127ピクセル、高さ50ピクセルになります)
開いたままであれば左図のようにサイズに変化は無く正常にコピーされます。
このように「コピー元のファイルを開いたままクリップボード経由で別ファイルにコピーする操作」であれば問題はありません。
コピー元のファイルを閉じた後にクリップボード経由でコピーした場合
次にコピー元のファイル「オートシェープ.xlsx」を貼り付ける前に閉じた場合なのですが、この場合は左図のようにサイズを維持することができず、オートシェープ図形が間延びした形でコピーされてしまいます。
恐らくセル幅・高さともに広がっている状態に貼り付けているためこのように変形したものと思われます。
なおシートの倍率は100%で変わりはありません。
ブックに保管されているオートシェープをコピーして、セルの状態が異なる別ブックに貼り付ける時はコピー元のブックは閉じないようにします。
※なおこのような変形はExcelの属性値によるものなので、元のサイズが解っていれば元に戻すことは可能です。
このケースは貼り付けると見た目が明らかに変わるため、おかしい事に気が付き易いと存じますが、次のケースは微妙な違いとなるため注意して見ないと気付かない事になります。
表示倍率を変更したシートへの貼り込み
Excelでは表示倍率をシートごとに設定できるので、今回は「オートシェープ.xlsx」のブックだけを使ってご説明いたしますが別ブックに貼り付ける場合も同じ事が起こります。
コピー元は先ほどと同じオートシェープ図形「太陽 1」を使用しています。
今回はセルのサイズは同じままで、シート「Sheet2」の表示倍率を変更した状態でオートシェープ図形「太陽 1」の貼り付けを行います。
なお貼り付けるSheet2の表示倍率は左図を見ていただくと解るのですが131%とかなり半端な数値になっている事が問題が引き起こす要因になっているという事は言えます。
ただし縦横2.54cmのオートシェープ図形を貼り付けていますが左図のように貼り付けた時点でサイズが異なるというわけではありません。
また「縦横比を固定する」にはチェックが付いている状態です。
ではどこに問題があるのか?ですが、このSheet2の表示倍率を100%に戻した時に「オートシェープのサイズが微妙に変化する場合が多々ある」という点です。
すべてではないのですが10単位ではない表示倍率の場合に、表示倍率を100%に変更すると、オートシェープのサイズが変更されてしまうことがあります。
左図を見ていただくと解るのですが、「縦横比を固定する」にはチェックが付いているにも関わらず幅が2.54→2.56cm、高さが2.54→2.55cmとサイズが変わってしまっている事が解ります。
実は次の章で詳しくご説明するのですが、指定してはいけない表示倍率が多々あり、逆にサイズを変更したくない時は、特定の表示倍率にする必要がありそうです。
実は表示倍率を1単位で変更すると8割弱はオートシェープ図形のサイズが変更する
表示倍率10%から400%まで1単位に拡大した時のオートシェープ図形のサイズの変化を一覧にまとめてみました。
この確認には先の章で使用したオートシェープ図形「太陽 1」と、それよりもサイズを少し小さくした幅・高さともに2.35cmの「雲 1」を使っていますが、一覧表に表示しているのは「太陽 1」のサイズになります。
なお「雲 1」は「太陽 1」の幅・高さでの誤差が小さい時にのみ確認をしています。すべての表示倍率で調べたわけではありませんのでお含み置きいただければ幸いです。
「太陽 1」と「雲 1」の配置は下図のように縦横ともにセルをまたいだ形になりますが、セル幅・高さともに弊社PC環境のデフォルトです。
結果的に
①「太陽 1」は誤差が生じたが「雲 1」は誤差がなかった。—青字
②「太陽 1」と「雲 1」ともに誤差がなかった。—赤字
③「太陽 1」と「雲 1」ともに誤差があった。—黒字
という3つのパターンになりました。
発生しなかっのた「雲 1」に誤差があり「太陽 1」に誤差がないパターンです。
なお上図で背景色を付けたセルは、③でありながら幅・高さのいづれかで誤差が生じなかった事を表しています。
201%以降は幅に関しては「204%」以外で誤差は生じていません。
表示倍率 | 太陽誤差あり 青字 | 共に誤差なし 赤字 | 共に誤差あり 黒字 |
---|---|---|---|
表示倍率10%から100% | 0 | 3 | 87 |
表示倍率101%から200% | 8 | 12 | 80 |
表示倍率201%から300% | 10 | 30 | 60 |
表示倍率301%から400% | 13 | 41 | 46 |
合計 | 31 | 86 | 273 |
なお上記は弊社PC環境で確認した結果になります。従いましてすべてのオートシェイプ図形において「赤字の表示倍率であればずれが生じない」とは断定できないのでお含み置きいただければ幸いです。
ちなみに「太陽 1」と「雲 1」の違いについては幅・高さの違いに起因すると思われますが、そうなりますと「太陽 1」よりもサイズが大きくなった場合に結果が変わってくる事が想定されます。
疑わしいのは10単位ではない表示倍率ですが、では実際どれだけ大きくなったら誤差がでるのか?でないのか?は何とも言い難いところです。
調べて見るとこの現象はExcel2007から続いている課題
Microsoft サポートに「Excel 2007、および Excel 2010 にて表示倍率を変更すると、シートに挿入済みのオブジェクトのサイズが変わる場合がある」というページがあります。
この適用対象にはExcel2016は含まれていないので、上記ページで示されている例の「縦横4cmの四角形を表示倍率80%にした場合のずれ」は解消されているはずですが、先の章では誤差が今での生じるという結果になっています。
ただしMicrosoftとして何かしら対応はされていると思われるので、よくよく調べてみたところ、セル幅をオートシェイプ図形よりも大きくした状態でセルをまたがずに配置しすると表示倍率80%での誤差が生じない事が解りました。
そこで先の章と同様に、セル幅を広げた状態で表示倍率を10%から1単位に拡大していった時のオートシェープ図形のサイズの変化を一覧にまとめてあります。
上記の結果を見る限り、オートシェイプ図形の「幅」に関してはすべての表示倍率で1単位きざみでも変わらないような対応がされている事が解ります。
という事で、表示倍率201%以降は先の章で「204%」以外は誤差が無い事が確認されていますので、セル幅を広げた事による効果はあまり期待できないので省略させていただきます。
表示倍率 | 太陽誤差あり 青字 | 共に誤差なし 赤字 | 共に誤差あり 黒字 |
---|---|---|---|
表示倍率10%から100% | (0)→0 | (3)→10 | (87)→80 |
表示倍率101%から200% | (8)→8 | (12)→16 | (80)→76 |
なお結果としては、すべての10単位の表示倍率で幅・高さともに誤差は生じなかったのですが、1単位の場合はほぼほぼ「高さ」に誤差が発生をしている事になります。
従いまして、レイアウトの関係からセル幅を大きく取れないケースも想定される事と、セル幅を大きくすると拡大した時にセル途中で画面を固定する事ができないので、セル幅を大きく設定するという解決方法では抜本的な対策にならないという認識です。
表示倍率で誤差が生じさせるその他の要因
これまでは単純にセル幅の違いはあるものの、オートシェープ図形を貼り付けただけの状態で表示倍率を変更した時のサイズの誤差を確認してきましたが、今回はオートシェープ図形を貼り付けた後で作業をした場合の事例をご紹介いたします。
なおご紹介する事例はたまたま気が付いたものなので、この他にも要因が存在するかもしれません。あらかじめお含み置きいただければ幸いです。
表示倍率100%で貼り付けた後、105%で移動して、100%に戻した時
表示倍率105%にすると、高さ2.58cm、幅2.53cmと両者の差が大きい表示倍率を意図的に使用しています。
③ ④
③表示倍率を105%に変更します。
④105%の状態で「太陽 2」を矢印キーで移動し「太陽 1」と重なるように配置します。
⑤ ⑥ ⑦
⑤表示倍率を100%に戻します。
⑥コピー元の「太陽 1」のサイズは変更ありません。
⑦しかし「太陽 2」のサイズで幅が2.54→2.55cm(赤枠)と0.01cmの誤差が生じています。
なお追加で次のような場合の確認をしています。
- ④の操作はしない場合は誤差が生じませんでした。
- 誤差が生じない表示倍率150%の場合は誤差が生じませんでした。
という結果からすると、特赦な表示倍率でオートシェープ図形を移動するのはやめた方が良さそうです。
表示倍率100%でセルに太い外枠を設定し、表示倍率を50%単位に変更すると
前半でご説明したように表示倍率50%、150%、250%、350%は高さ・幅ともに誤差が生じなかった表示倍率なのですが…
①表示倍率100%でオートシェープ図形は「太陽 1」だけです。高さは2.54cmと前回と同じです。
この状態でC2セルに罫線として「太い外枠」を左図下矢印のように設定します。
②表示倍率を50%に変更します。
③「太陽 1」の高さが2.54→2.58cmに変わってしまいました。
④~⑥表示倍率150%、250%、350%では「太陽 1」の高さが2.54→2.55cmに変わりました。
※ただし、100%に表示倍率を戻せば高さは2.54cmに戻ります。
何もオートシェープ図形が貼られたシート上で作業しなければ問題は起こらないのですが、このように「罫線を設定する」というきわめて一般的な操作をしただけでオートシェープ図形のサイズに誤差が生じてしまう事が解りました。
従いまして、オートシェープ図形を貼り付けたシートでは極力作業をしないか、もしくは何か操作をした場合はオートシェープ図形のサイズに影響がない事を確認した方が良さそうです。
表示倍率の設定に関連した推奨事項
前の章で表示倍率と連携してオートシェープ図形のサイズに影響を与える操作事例を2つご紹介いたしましたが、誤差の生じるメカニズムが解らないため、2つ以外にも影響を与える操作があるかもしれません。
以上の結果を踏まえると、地図のオートシェープ図形を使用する際の表示倍率の設定に関しては次のような対応を推奨いたします。
以上の3点はオートシェープ図形のサイズが元々の値からずれてしまう事象を発生させないためには、面倒ではありますが最善の策となる認識です。
最後に
現状のExcelのオートシェープ図形には表示倍率の変更にともないサイズを維持できないリスクが存在します。
このリスクは完全に排除する事は難しく、ご利用される皆様の運用で回避せざるを得ない認識です。
なお「国土数値情報 行政区域データに基づくオートシェイプ図形のご紹介」のなかでもご紹介していますがExcel「図形の書式設定のサイズ」と「DrawingMLの寸法」とは別の物になります。
つまり図形の書式設定のサイズはあくまでもDrawingMLの図形情報をExcelシートに配置するための属性情報で、DrawingMLのなかに設定される情報ではありません。
従いまして元のオートシェープ図形のサイズがわかれば、その値に変更してあげる事で元のサイズに戻すことができます。
「だからズレても良い」とは言えませんがそう考えると、厳密にサイズを気にするオートシェープ図形を配置するシートと、それ以外とは分けて運用するのが良いかもしれません。
ただそうは言っても後からすべてのオートシェープ図形のサイズのズレを確認して修正するというはそれはそれで大変な作業なので、ズレが起こらないと確認できた表示倍率だけを使用する運用が最善の策になる認識です。
次回はグラフ散布図の設定方法についてご説明致します。
以上最後までご一読いただき誠にありがとうございました。