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 件のコメント:
コメントを投稿