- ベストアンサー
VBAのRangeについて
- VBAのRangeを使用して、表の特定の列を選択してグラフを作成する方法が分かりません。
- 具体的には、A列とB列、A列とC列、A列とD列など、異なる列の組み合わせでグラフを作成する方法を知りたいです。
- 現在試している方法では、A列からC列まで全て選択されてしまい、特定の列だけを選択することができません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問のように飛び飛びの範囲参照は基本的には回答1にも提示されてるように Range("A1:A4,C1:C4") Range("セルアドレスの文字列,セルアドレスの文字列") となります。 で、セルのアドレス文字列を所得して それらを、"," と&で結合してやればいいわけです。 セルアドレスの文字列は、Addressプロパティで取得できます。 -------------------------------------------------------- Range(Range(Cells(1, 1), Cells(4, 1)).Address & "," & Range(Cells(1, 3), Cells(4, 3)).Address).Select これでは一行が長くて見にくいのでそれぞれを変数にいれて -------------------------------------------------------- Dim Adrs1,Adrs2 Adrs1=Range(Cells(1, 1), Cells(4, 1)).Address Adrs2=Range(Cells(1, 3), Cells(4, 3)).Address Range(Range(Adrs1 & "," & Adrs2).Select -------------------------------------------------------- それから、Addressの引数によって結果が下記のように変りますので 必要に応じて使い分けること。 Range("A1:A4").Address ---> $A$1:$A$4 (絶対参照) Range("A1:A4").Address(0,0) -> A1:A4 (相対参照) 尚、この回答はグラフとは関係なくセル範囲参照の方法のみの回答になります。 以上です。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
グラフに関するVBAはマクロの記録で勉強するのが一番。 例データ A1:D4で(円は書式で設定のこと) - りんご バナナ すいか A店 200 100 500 B店 180 130 800 C店 220 150 650 ーーー Sub Macro1() Range("A2:A4,A1:A4,C1:C4").Select Range("C1").Activate Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("Sheet2").Range("A2:A4,C2:C4") ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2" End Sub このRange()の()内の書き方を真似すれば仕舞い。 ーーー 計数データを主体にして Sub Macro2() Charts.Add ActiveChart.SetSourceData Source:=Sheets("Sheet2").Range("C2:C4") ActiveChart.SeriesCollection(1).XValues = Sheets("Sheet2").Range("A2:A4") End Sub のようなのも可能のようだ。
- tom11
- ベストアンサー率53% (134/251)
これでも、できるみたいです。 Union(Range(Cells(1, 1), Cells(4, 1)), Range(Cells(1, 3), Cells(4, 3))).Select
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
Range("A1:A4,C1:C4").Select ではいかがでしょう?