1. 確認の続き
次に、ボタンをクリックした時の動作として、以下のプログラムを実行してみます。プログラムとしては、セルのB2~C4にサイズを合わせてチャートを作成するものです。まず、Rangeを指定して、指定したRangeのTop, Left, Width, HeightをA列に表示して確認する。次に、指定したRangeの大きさに合わせてチャートを作成する。
Private Sub Create_chart_button_Click()
Dim range_var As Range
Set range_var = Range("B2:C4")
Range("A1") = range_var.Top
Range("A2") = range_var.Left
Range("A3") = range_var.Width
Range("A4") = range_var.Height
Call ActiveSheet.Shapes.AddChart(Null, range_var.Left, range_var.Top, _
range_var.Width, range_var.Height)
End Sub
実行結果は, A1 = Top, A2 = Left, A3 = Width, A4 = heightとなっています。さらに、B2~C4にチャートが生成されています。前回と同じようにチャートの中身はありません。
Excelシートの行と列のデフォルトは、行の高さ=15, 列の幅 = 8.38となっているので、行の高さはチャートで指定している座標と一致しているみたいです。列の幅は、8.38で座標では63.75となっていて関係がよくわからなかったです。

2. わかったこと
行の高さを変更した場合、例えばデフォルトの高さ15 → 10 に変更して再度プログラムを実行すると10ではなく、[9.75]になっていました。ということなので、行の高さ、列の幅を設定しておいて、その升目に合わせてチャートを正確に配置するのはむずかしい?ということなのか。。このルールを理解するよりも、Rangeから座標を取得して、そこに配置する方法がよさそうです。

0 件のコメント:
コメントを投稿