2016年5月5日木曜日

Excelシート上の座標②

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

コメントを投稿