Excel VBA質問箱 IV

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

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


9020 / 13646 ツリー ←次へ | 前へ→

【29453】グラフ作成 ラモンMG 05/10/5(水) 17:55 質問[未読]
【29457】Re:グラフ作成 太公望 05/10/5(水) 20:38 回答[未読]
【29496】Re:グラフ作成 ラモンMG 05/10/6(木) 13:34 質問[未読]
【29505】Re:グラフ作成 太公望 05/10/6(木) 18:07 回答[未読]
【29762】Re:グラフ作成 ラモンMG 05/10/13(木) 9:59 質問[未読]
【29784】Re:グラフ作成 ラモンMG 05/10/13(木) 17:45 お礼[未読]

【29453】グラフ作成
質問  ラモンMG  - 05/10/5(水) 17:55 -

引用なし
パスワード
   みなさんこんにちわ。
Sheet1の中のアクティブになってるセルの列のデータをグラフにしたいと思っています。
・ 1列目に名前があるので選んだ名前から5列目までを指定する用にしたいです。
・ 1行目にはタイトルが入っているのでこれもグラフ表示させたいです。
以上のことをやりたいと思いマクロを記録しながらやってみたのですが、いきなり範囲指定で壁にぶち当たってしましました。
どなたかご教授いただけないでしょうか?
よろしくお願いします。
Sub グラフ作成()
  Dim 範囲 As String
  範囲 = ActiveCell.End(xlToRight).Offset(0, -1).Select
  Range(Selection, Selection.End(xlToLeft)).Select
  Charts.Add
  ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:E1,範囲"), _
    PlotBy:=xlRows
  ActiveChart.Location Where:=xlLocationAsNewSheet
End Sub

【29457】Re:グラフ作成
回答  太公望  - 05/10/5(水) 20:38 -

引用なし
パスワード
   ▼ラモンMG さん今晩は
こんな感じでしょうか。

Sub グラフ作成()
Dim r As Long
Dim 範囲 As Range
  If ActiveCell.Value = Empty Then Exit Sub
  r = ActiveCell.Row
  Set 範囲 = Range(Cells(r, 1), Cells(r, 256).End(xlToLeft))
  
  Charts.Add
  ActiveChart.ChartType = xlPie
  ActiveChart.SetSourceData Source:= _
    Union(Sheets("Sheet1").Range("A1:E1"), 範囲), PlotBy:=xlRows
  ActiveChart.Location Where:=xlLocationAsNewSheet
End Sub

【29496】Re:グラフ作成
質問  ラモンMG  - 05/10/6(木) 13:34 -

引用なし
パスワード
   太公望さんこんにちわ。
早速の解答ありがとうございます。
早速解答して頂いたコードを試してみたのですが、やはり範囲指定が出来ません。
>Dim r As Long
>Dim 範囲 As Range
>  If ActiveCell.Value = Empty Then Exit Sub
>  r = ActiveCell.Row
>  Set 範囲 = Range(Cells(r, 1), Cells(r, 256).End(xlToLeft))
の所でRange("A1:E1")を付け加えるのはどうすればいいでしょうか?
よろしくお願いします。

【29505】Re:グラフ作成
回答  太公望  - 05/10/6(木) 18:07 -

引用なし
パスワード
   ラモンMG さん 今晩は。

提示のコードは当方で動作確認していますので、
まず提示のコードをそのまま試してみてください。

Sub グラフ作成()
Dim r As Long
Dim 範囲 As Range
  If ActiveCell.Value = Empty Then Exit Sub
  r = ActiveCell.Row
  Set 範囲 = Range(Cells(r, 1), Cells(r, 256).End(xlToLeft))
  
  Charts.Add
  ActiveChart.ChartType = xlPie
  ActiveChart.SetSourceData Source:= _
    Union(Sheets("Sheet1").Range("A1:E1"), 範囲), PlotBy:=xlRows
'                    ↑ここでRange("A1:E1")を付け加えています

  ActiveChart.Location Where:=xlLocationAsNewSheet
End Sub

-----------------------------------------

>>  Set 範囲 = Range(Cells(r, 1), Cells(r, 256).End(xlToLeft))
>の所でRange("A1:E1")を付け加えるのはどうすればいいでしょうか?
>よろしくお願いします。

もし、ここでRange("A1:E1")を付け加えたいのなら

Sub グラフ作成()
Dim r As Long
Dim 範囲 As Range
  If ActiveCell.Value = Empty Then Exit Sub
  r = ActiveCell.Row
  With Sheets("Sheet1")
    Set 範囲 = Union(.Range("A1:E1"), Range(.Cells(r, 1), .Cells(r, 256).End(xlToLeft)))
'               ↑ここでRange("A1:E1")を付け加えています
  End With
  Charts.Add
  ActiveChart.ChartType = xlPie
  ActiveChart.SetSourceData Source:=範囲, PlotBy:=xlRows
'                    ↑ここも変更します

  ActiveChart.Location Where:=xlLocationAsNewSheet
End Sub

となります。
動作確認しています。
このまま貼り付けて試してみてください。

【29762】Re:グラフ作成
質問  ラモンMG  - 05/10/13(木) 9:59 -

引用なし
パスワード
   太公望さん。おはようございます。
お返事が遅くなりましてすみませんm(__)m
所用がありましてしばらくパソコンが使えなかったもので・・
太公望さんに提示して頂いたコードをそのまま使わせていただいたのですが、円グラフにした時に内容が線1本しかならずタイトルも名前ではなくA1:E1の項目名になってしまいます。
最初に選んだ人の名前をタイトルにして、凡例項目にA1:E1の項目を入れ、円グラフの内容を範囲で選んだ数字で表示したいです。
もしまだ見て頂けていましたらよろしくお願いします。

【29784】Re:グラフ作成
お礼  ラモンMG  - 05/10/13(木) 17:45 -

引用なし
パスワード
   こんばんわ。
色々試した結果なんとかグラフが完成しました。
太公望さん色々お手数をお掛けしてすみませんでした。
今後ともよろしくお願いします。

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