Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4374 / 13644 ツリー ←次へ | 前へ→

【57041】グラフの範囲指定(系列指定) satsuki 08/7/18(金) 16:23 質問[未読]
【57044】Re:グラフの範囲指定(系列指定) Jaka 08/7/18(金) 17:18 発言[未読]
【57047】Re:グラフの範囲指定(系列指定) satsuki 08/7/18(金) 18:40 質問[未読]
【57048】Re:グラフの範囲指定(系列指定) satsuki 08/7/18(金) 19:52 お礼[未読]

【57041】グラフの範囲指定(系列指定)
質問  satsuki  - 08/7/18(金) 16:23 -

引用なし
パスワード
   こんにちは。Satsukiと申します。グラフについてのご質問です。
下記のようなリストがあり、住所欄と比率欄でグラフを書きたいのですが、範囲指定すると、人数欄も含めたグラフができてしまいます。どのように直したらよいでしょうか。
リストは複数あり、行数は可変で、それぞれについてグラフを書くので、共通のNo.欄を基点にして範囲指定をしてみました。
どなたかご教示よろしくお願いいたします。

No. 住所  人数    比率
1 A市   245    77.5
2 B市   38    12.0
3 C市    6     1.9
4 D市    3     0.9
5 E市    1     0.3
  不明   23     7.3     
  合計   316    100.0


Dim FR As Range
Dim FR2 As Range
Dim myrange As Range
Dim myrange2 As Range
Range("A1").Select

Dim SearchWord As String
  SearchWord = "No."
  Set FR = Worksheets("グラフ").Range("A1:A500").Find
  (What:=SearchWord, LookIn:=xlValues, LookAt:=xlWhole)

  Worksheets("グラフ").Select
  Range(FR.Address).Offset(1, 1).Select
  Set myrange = Range(Range(FR.Address).Offset(1, 1), Range(Selection,_
   Selection.End(xlDown).Offset(-1, 0)))
  Range(FR.Address).Offset(1, 3).Select
  Set myrange2 = Range(Range(FR.Address).Offset(1, 3), Range(Selection,_
   Selection.End(xlDown).Offset(-1, 0)))

  Charts.Add
  ActiveChart.ChartType = xlBarClustered
  ActiveChart.SetSourceData Source:=Sheets("グラフ").Range(myrange,_
   myrange2), PlotBy:=xlColumns

【57044】Re:グラフの範囲指定(系列指定)
発言  Jaka  - 08/7/18(金) 17:18 -

引用なし
パスワード
   なんで、Findwoを使ってデータ範囲?を探すのか解りません。
探すということは、レイアウトが決まってない?
と、いうことなのでしょうか?
とすると、「住所」や「比率」の場所を探さないといけない?
ということなのでしょうか?

表の位置が変わるだけでレイアウトが変わらないということでしたら、
下記のように、分ければ大丈夫?見たいなようでしたけど。

  ActiveChart.SetSourceData Source:=Sheets("グラフ").Range("B2:B7,D2:D7"), PlotBy _
    :=xlColumns

取り違えていたらすみません。

【57047】Re:グラフの範囲指定(系列指定)
質問  satsuki  - 08/7/18(金) 18:40 -

引用なし
パスワード
   Jaka さん、レスありがとうございます。
表がいくつもあって、それぞれデータの内容が違い、各々についてグラフを書く必要があります。それで、データ範囲を探す形にしました。
他によい方法がありますでしょうか?

>なんで、Findwoを使ってデータ範囲?を探すのか解りません。
>探すということは、レイアウトが決まってない?
>と、いうことなのでしょうか?
>とすると、「住所」や「比率」の場所を探さないといけない?
>ということなのでしょうか?
>
>表の位置が変わるだけでレイアウトが変わらないということでしたら、
>下記のように、分ければ大丈夫?見たいなようでしたけど。
>
>  ActiveChart.SetSourceData Source:=Sheets("グラフ").Range("B2:B7,D2:D7"), PlotBy _
>    :=xlColumns
>
>取り違えていたらすみません。

【57048】Re:グラフの範囲指定(系列指定)
お礼  satsuki  - 08/7/18(金) 19:52 -

引用なし
パスワード
   解決いたしました。

参考までに解決方法です。
Source:=Unionのように範囲指定の前にUnionを使うそうです。

ActiveChart.SetSourceData Source:=Union(myrange, myrange2), PlotBy:=xlColumns

ありがとうございました。

4374 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free