電子書籍の厳選無料作品が豊富!

現在VB2008からエクセルにグラフを表示するプログラムを作成しているのですが、
グラフ等を作成するときにエクセルの座標を指定して作成とnullのですが、

X2 = xlApp.Selection.Left
Y2 = xlApp.Selection.Top
で現在のセルの座標を取得して、

xlPageSetup = xlSheets("Sheet1")
MyCharts = xlPageSetup.ChartObjects
MyChart = MyCharts.Add(0, 0, X2, Y2)
でグラフ等を作成してもグラフの位置が若干ずれてしまいます。

こういった現象がなぜ発生するのかは不明で、正確な座標入力でグラフを並べることがかなり困難な状況です。

なにかほかに手順があるのでしょうか?

A 回答 (1件)

Range("A3:D4").Select


ActiveSheet.ChartObjects.Add Left:=Selection.Left, Top:=Selection.Top, _
Width:=Selection.Width, Height:=Selection.Height
と入力して実行してみました、セレクション上にチャートが作成されました。
オーバーライドが存在するためではないでしょうか?
本来使いたいメソッド
Object.Add(Left, Top, Width, Height)
実際動作してしまったメソッド
Object.Add(Before, After, Count, Type)
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
Selection.Left
Selection.Top
を使用して座標を取得することは理解していたのですが、


セルのサイズ変更、倍率変更をする前に、固定値として座標を記述していてそれがずれの原因だったみたいです。

セルのサイズ変更、倍率変更を実施した場合、セルのピクセル数が倍率によっては表示できないサイズがあるようで・・・。
セルのサイズ変更、倍率変更を実施したあとでもセルの座標をいったん取得してからグラフを作成すると正確な座標で作成することが出来ました。


回答していただきありがとうございました。

お礼日時:2008/12/13 22:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!