Excelで方眼目盛を作る方法  | 技術日誌

技術日誌

ここでは,電子工作,木工などの趣味での記録を書いています。
なお当初はKMK研究所のメインテーマであるSPSのノウハウを書いてきましたが,順次SPSノウハウのページに複製を作っていきます。

 SPSの話題からは脱線しますが,前回の粉体の量を求める図の中で方眼目盛を使いました。この方眼目盛を作る方法を紹介します。(長文ですが,スキルに応じてスキップしてご覧ください)
 たくさんの線を引くにはVBAを使うのが常道のようですが,Excelのワークシート内で方眼目盛を作る方法を考案しました(自己流という意味です)。直線は散布図で引くことができますが,それぞれの線について太さや色を指定しなければなりません。そこで考えたのが,一連の線を一筆書きとすることです。下の図は1 cm間隔の縦線です。データ点(マーカー)は灰色の円で示しています。実際にはデータ点は表示させません。Excelはこれらのデータ点を結んでいきます。縦軸の0と10のところは,一つおきに水平に結ばれています(縦0のところの2-3, 4-5,…,縦10のところの1-2, 3-4,…)。これは残っていると見にくいです。最後に少し太めの枠線を重ねて見えなくします。


 上の例は1 cm間隔の目盛の例です。太い線にするため,線のスタイルは2.25 ptとしました。色はR0,G255,B255としました。水色ですが,少し明るくするにはRの値を増やしましょう。実際には,1 mm間隔の目盛を最初に作ります。この線のスタイルは最も細い0.25 ptとしました。次に5 mm間隔の目盛を作ります。これは,1.25 ptとしました。同様にして横線も1 mm, 5 mm, 1 cmのものを作ります。最後に枠線として(0,0), (10,0), (10,10), (0,10), (0,0)を結ぶ線を作ります。これは枠上の水色の線を隠すため黒色の3 ptとしました(水色でもかまいません)。これで方眼目盛ができました。


 それでは,線データの作り方を紹介します。以降,横軸,縦軸の最大値や目盛の間隔を変えたいとき,それらの値を書き込むだけで済むよう,それらの値をセルに入れ,名前を付けておきます。下図のC7のセルはx軸の最大値で,_xmaxという名前を付けておきます。現在,カーソルはC7にあり,値は10です。そして,左上のマス(名前ボックス)に_xmaxと表示されている通り,C7には_xmaxという名前が付いています(名前の付け方は,カーソルをそのセルに置き,名前ボックスに名前を書き込みます。ちなみに,B7セルに_xmaxと書かれているのは,その右のセルの名前が_xmaxであることを後でわかるように,自分のメモとして書いてあるだけです)。同様に,y軸の最大値_ymax,x軸の最小間隔_xstep,y軸の最小間隔_ystepもセットします。


 縦線1 mm間隔の線のデータは左1列(x)と2列(y)です。目盛の位置が0.1, 0.1, 0.2, 0.2という様に,xの最小間隔(_xstep)で2つずつ置かれています。ここでは,下に10, 10(横軸の最大値;縦線は横軸を示す)まで並んでいます。2列目は,[y軸の最大値,0,0,最大値]の4つ単位で同じものが並んでいます。
 縦線5 mmは,5 mm間隔の線のデータです。1 間隔(5 mmの線の間隔は_xstep*10)で2つずつ置かれています。その右は[0,y軸の最大値,y軸の最大値,0]の4つの単位で同じものが並んでいます。0とy軸の最大値が縦線1 mmの場合と逆になっていますが,どちらでもかまいません。横軸の最大値まで続いています。
 縦線10 mmは,10 mm間隔の線のデータです。1間隔で2つずつ置かれています。その右は上と同様です。
 横線1 mm, 5 mm, 10 mmについても上と同様です。
 右端に枠用があります。長方形の四隅の座標が右回りで一周り書かれています。


 上の様な値を1つ1つ入れるのは大変に手間がかかります。Excelの数式を使うと容易です。例えば縦線1 mmのデータの左の列が0.1, 0.1, 0.2, 0.2, 0.3, 0.3,…となっています。各数値が2つずつ,それらが0.1(_xstep)ずつ増えていっています。最初の2つは始めの値0.1(_xstep)を入れてあります。その次の行は
=IF(F8=F9,F9+_xstep,F9)
となっています。これは,上の行とその上の行が等しければ(例えば0.1, 0.1)増分だけ増やします。また,等しくないときは,2つずつあるデータの内の2番目ですから,一つ上の値を入れます。このセルは以下の行にずっとコピーします。F8とかF9は自動的に変わります(F9, F10のように)。このコピーは値が10(_xmax)が出るまで行います。適当にコピーしてみて,最下行が10未満でしたらコピーを更に増やし,10を超えた場合は,その分は削除します。
 縦線1 mmのデータの右の列は,10(_ymax), 0, 0, 10(_ymax)が繰り返されています。この4行を下の方にコピーを繰り返します。ある程度コピーしたら,それらをまとめてコピー&ペーストすると効率的です。


 縦線5mmの左側については,最初の2行は_xstepの5倍です。3行目の増分は10(_xstep*10)となっています。右側は上と同じです(ここでは気まぐれで0, 10, 10, 0になっています。上でどちらでも良いと書きました)。


 横線については,上と左右が逆になっていることと_xstepが_ystep,_ymaxが_xmaxとなっていることを除けば上と同じです。参考のため,横線1 mm,横線5 mm,横線10 mmの数式を下に示します。





 グラフの作り方を説明します。まず,横線1 mmのデータで散布図(直線,プロットなし)を作ります。線の色,太さを設定しましょう。


 次に,グラフ領域を選択しながら右クリックして「データの選択」を選びます。ここで追加をクリックして,系列X,系列Yに横線5 mmの領域を指定します。同じように,横線10 mm,縦線1 mm,縦線5 mm,縦線10 mm,枠用のデータを追加します。
v

 以上で方眼目盛が完成しました。私は,新しいシートにグラフを移し,そのシートにて,この方眼目盛上に実際のプロットを行っています。