|8| オブジェクトの微移動 Wordを深掘り

|8| オブジェクトの微移動 Wordを深掘り

矢印キーでの移動を深掘り

第7回で「線を選択した状態で上下左右の矢印キーを押すことで移動できます。ただし、↓キーを10回押して下に移動して、↑キーを10回押して上に戻しても元の位置にはなりません。ワードの癖なので気にしないようにします。」と書きました。

なぜ元の位置に戻らないのかモヤモヤしていたので、いろいろなことを試してみました。

Wordでは数値をポイントで計算しているようなので、表示される単位をミリメートルからポイントに変更します。

リボンの「ファイル」から「オプション > 詳細設定 > 表示」と選択し、「使用する単位」をポイントに変更します。表示の項目は詳細設定の真ん中あたりになります。

 

「挿入 > 図形」から長方形を選択し、適当な大きさで長方形を描きます。「サイズ」を確認すると小数点以下2桁まで表示されています。高さを0.01pt増やしてエンターキーを押します。もう一度サイズをクリックして表示すると0.01pt増えていません。同じことを何回か繰り返すと0.05pt単位で増えていくのが分ります。0.05ptより小さな数値は切り捨てられているようです。

とりあえずWordでの最小数値は0.05ptと考えることにします。

矢印キーでのオブジェクトの移動ですが、画面の拡大率によって移動距離が変わります。そこで実際に移動距離をみてみることにしました。
やり方は↓キーを1回押すごとに位置を表示させ、20回繰り返す。その位置から同じように↑キーを1回押すごとに位置を表示させ、20回繰り返すという方法です。
開始位置の「下方向の距離」は40pt、ズーム比率100%で下に20回移動させた「下方向の距離」は47pt、そこから上に20回移動させた「下方向の距離」は39ptとなり開始位置より1pt上になりました。

Wordのズーム比率を50%、500%に変更してそれぞれの数値をエクセルに記録しました。50%のズーム比率では上下方向とも移動距離は同じで元の位置に戻りました。
100%と500%では上方向への移動距離が下方向よりも大きく、その差分も100%と500%では違っています。

よく観察していると、どうもディスプレイのピクセルに合わせて移動しているような気がします。

私のマシン環境はMacBookでディスプレイのピクセル数は2304*1440ですが、2560*1600のディスプレイとして扱っているようです。仮想環境でも2560*1600のディスプレイとして扱っていてWindowsの表示スケールは200%、1280*800相当の表示になっています。
話はややこしくなりますが、Windowsでは1インチの長さを96ピクセルで表示することになっています。1ptは1/72インチなので1ピクセルは0.75ptに相当します。私のマシンではWindowsの表示スケールが200%なので、Wordのズームが100%の時に192ピクセルが1インチ、1ピクセルは0.375ptに相当します。Wordのズームを50%にすると96ピクセルが1インチ、1ピクセルが0.75ptに相当することになります。

 

エクセルファイルarwkey_mv.zipのダウンロード

実際に試した結果ではWordのズームを50%にして微移動させた時は上方向、下方向ともに0.75ptづつ移動しています。
ズーム100%の時は下方向へは0.35ptづつ、上方向へは0.4ptづつ移動しています。
Wordでは上下方向の位置はページの上端から計算されていることと、数値の精度が0.05ptづつ切り捨てられていることから下方向へは元の位置を40ptとすると
40pt+0.375pt=40.375pt、0.05pt単位で切り捨てると40.35ptになります。
この位置から上方向に移動させると
40.35ptー0.375pt=39.975pt、0.05pt単位で切り捨てると39.95ptになり、元の位置には戻りません。

ズーム500%の時は50%の10倍なので元の位置に戻りそうな気がしますが、移動距離が0.075ptと小数点以下3桁目に端数が出るので元の位置に戻りません。
ズーム150%の時は移動距離が0.25、250%の時は移動距離が0.15となるので元の位置に戻ります。
Windowsの表示スケールが100%の場合はWordのズーム50%、100%、300%、500%で元の位置に戻ると思います。

中途半端なズーム比率の時はどうなるかと思い、253%でやってみましたが、計算通りの位置で上下しました。エクセルファイルには実際の位置を入力したセルと計算したセルがあります。
下方向へはROUNDDOWN ((直前の位置+72/(96×2×2.53))/0.05,0)×0.05
上方向へはROUNDDOWN ((直前の位置-72/(96×2×2.53))/0.05,0)×0.05
になります。
72/(96×2×2.53)は1ピクセルに相当する「pt」になります。
72は1インチのpt数、96はWindowsの画面解像度、2はWindows表示スケール、2.53はWordのズーム比率です。

ここでMac版Wordはどうなのだろうと思いました。というのもMacは1インチの長さを72ピクセルとするという決まりなので1ピクセルは1ptに相当するからです。
Macの画面も2304*1440ピクセルを2560*1600ピクセルとして扱っていて表示スケールは200%になっています。
Macで上下方向に微移動させてみるとWordのズーム50%、100%、500%で元の位置に戻ります。移動距離は50%で1pt、100%で0.5pt、500%で0.1ptと0.05ptで切り捨てても変わらない値になっているからです。実際にはもっと多くのズーム倍率でも元に戻ると思います。

これでモヤモヤしていたものがスッキリしました。
ただし、この結果は表示される数値や現象から類推したものなので正しいとは限りません。言えることはWordでは小数点以下2桁の数値が表示されますが、そこまでの精度はありません。
1ptは約0.35mmなので0.05ptは約0.0175mmになります。扱える最小の数値は0.02mmぐらいと考えた方がいいでしょう。

Illustratorなどのグラフィックソフトでは表示されている数値よりもっと小さな桁のところでインチやポイントをミリメートルに換算しています。もちろん割り切れる数値だけではないので誤差が出るわけですが、Wordに比べるとはるかに小さい誤差です。だからと言ってWordが劣っていると考えずに、0.02mm単位の精度を持っていてすごいんだと考えましょう。日常生活の中では0.02mmという数値は存在しないからです。

Illustratorなどのグラフィックソフトでも矢印キーにを使ってオブジェクトを移動することができます。通常は設定によって移動距離を決めることができます。ディスプレイのピクセルに頼っているわけではないので元の位置に戻らないということはありません。

矢印キーを押して移動するのをよく見ると時々、位置を示す数値は変わっているのですが、オブジェクトが動いていない気がします。OS上では縦方向のピクセル数が1600なのですが、実際には1440しかありません。その差分を解消するために表示上はオブジェクトを動かしていないのかもしれません。差分が160ピクセルなので10回に1回は動いていないのかもしれませんが、はっきりしたことはわかりません。新たなモヤモヤ発生です。