2016年5月4日水曜日

Excelシート上の座標①

1. Excelシート上の座標を理解する。


MS Acess に保存してあるデータを読み出して、Excel VBAでチャートを作成するプログラムを作っているときに、セルで表示している行、列の幅と座標の関係が理解できてなかったことに気付いたので、調べてメモを残しておきます。


2. 動作確認するためのVBAプログラム


座標を確認するためのプログラムを説明します。

プログラムを実行するボタンを作成


 最初に、「デザインモード」を選択します。次に、リボンの「挿入」から「コマンドボタン」(Activex コントロール)を選択します。これで、シート上にボタンを配置できるようになっているので、シート上でクリックして、その後、ドラッグでボタンのサイズを決めます。




 デフォルトだとボタンの名前が「CommandButton1」となっているので、この文字列を変更します。
ボタン上で右クリックして、「プロパティ」を選択すると、設定を変更するためのウインドウが開きますので、「オブジェクト名」「Caption」を変更します。
「オブジェクト名」は、プログラム内でこのボタンを識別するために使用する名前なので、区別が付く名前を付けておきます。
「Caption」は、ボタンの表示名なので、ここでは、チャートを作成としておきます。







VBAのコーディング


「デザインモード」を選択した状態で、作成したボタンをダブルクリックすると、Visual Basic Editorが立ち上がって、「Create_Chart_Button_Click()」というSubが作成されます。先ほど作成したボタンをクリックすると、ここに記述したコードが実行されます。

今回は、以下のようなプログラムにしました。
Call ActiveSheet.Shapes.AddChart(Null, 100, 100, 200, 200)
詳細は、Methdの説明に書いてありますが、最初の引数は、chartTypeなので、ここではNullにしています。チャートが発生する座標を確認するだけなので、チャートタイプは、無視します。残りの4つの引数は、順番に Left, Top, width, heightとなっていて、100,100,200,200で実行するプログラムとなっています。




実行した結果は、次の図のようになる。行の高さと列の幅を確認すると行の高さは100に近い値ではあるが厳密には一致してない。列の幅は、100とはまったく違う値になっています。


その2へ。



0 件のコメント:

コメントを投稿