2016-05-27 6 views
0

複数のグラフを含むダッシュボード画面を構築しています。私はそのような個々のビルド関数でチャートを宣言します。私は複数のグラフを持っているのでVBAを使用した複数のグラフのグラフサイズのパラメータ化

Dim chartGallonsComp as ChartObject 
Set chartGallonsComp = wsDest.ChartObjects.Add(Left:=0, Top:=45, Width:=240, Height:=180) 

が、私は、これはなんとかです確信しているこの

Dim chartSalesComp As ChartObject, chartGallonsComp As ChartObject 
Dim chartCustomers As ChartObject 

Dim ws As Worksheet  
ws = Sheets("Dashboard") 

Dim aryChartOneDimensions(), aryChartTwoDimensions() 
Dim aryChartThreeDimensions() 

aryChartOneDimensions = Array(0, 45, 240, 180) 
aryChartTwoDimensions = Array(240, 45, 240, 180) 
aryChartThreeDimensions = Array(480, 45, 240, 180) 

With ws 
    Set chartGallonsComp = ws.ChartObjects.Add(Left:=aryChartOneDimensions(1), Top:=aryChartOneDimensions(2), 
             Width:=aryChartOneDimensions(3), 
             , Height:=aryChartOneDimensions(4)) 
End With 

のようなものを使用して.Addメソッドのパラメータの関数に渡したい、私は得ることができません構文の権利。私は数式構文を含む多くの方法を試みました

Left:="=aryChartOneDimensions(1)" 

しかし、私の試みはうまくいっていません。もしこれが達成できれば私に教えてください。

答えて

0
Set chartGallonsComp = ws.ChartObjects.Add(Left:=aryChartOneDimensions(0), _ 
              Top:=aryChartOneDimensions(1), _ 
              Width:=aryChartOneDimensions(2), _ 
              Height:=aryChartOneDimensions(3)) 

配列は、デフォルトで思い出してくださいゼロベースではなく、1ベース(あなたはあなたのモジュールの上部にOption Base 1が含まれ、私はそれは良い習慣だとは思わない限り)

+0

うん、使用されてC#が長すぎるため、このスプレッドシートのvbaに戻って少し錆びます。それはうまくいく。だから、その配列を関数に渡す?... SomeFunction(ByRef ary()as integer) – dinotom

+0

これはうまくいくはずです –

+0

@TimWilliams ... – dinotom

関連する問題