Excel VBA質問箱 IV

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

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


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

【35038】グラフの作図をマクロに登録すると miku02 06/2/19(日) 21:58 質問[未読]
【35039】Re:グラフの作図をマクロに登録すると 初心者 06/2/19(日) 23:45 発言[未読]
【35040】Re:グラフの作図をマクロに登録すると miku02 06/2/20(月) 0:09 質問[未読]
【35041】Re:グラフの作図をマクロに登録すると ponpon 06/2/20(月) 0:17 発言[未読]
【35042】Re:グラフの作図をマクロに登録すると 初心者 06/2/20(月) 0:19 発言[未読]
【35044】Sheets("ソニ")を、activesheet... miku02 06/2/20(月) 5:20 質問[未読]
【35046】Re:Sheets("ソニ")を、activesh... 初心者 06/2/20(月) 6:05 発言[未読]
【35050】Re:Sheets("ソニ")を、activesh... Jaka 06/2/20(月) 12:46 発言[未読]

【35038】グラフの作図をマクロに登録すると
質問  miku02  - 06/2/19(日) 21:58 -

引用なし
パスワード
   登録したデータのグラフを再現するだけになってしまうものなのですか?

別のシート(別のデータ)上でマクロを実行しても、マクロを登録した時のグラフが描かれるだけになってしまいます。。。。。。

【35039】Re:グラフの作図をマクロに登録すると
発言  初心者  - 06/2/19(日) 23:45 -

引用なし
パスワード
   ▼miku02 さん:
>登録したデータのグラフを再現するだけになってしまうものなのですか?
>
>別のシート(別のデータ)上でマクロを実行しても、マクロを登録した時のグラフが描かれるだけになってしまいます。。。。。。

私は初心者なので、miku02さんがどのような意図で質問されているのか分かりかねますが、グラフの参照される元データが同じであれば同じグラフが作成されますよね?
グラフの参照される元データが違うのに同じグラフが作成されるということですか?

【35040】Re:グラフの作図をマクロに登録すると
質問  miku02  - 06/2/20(月) 0:09 -

引用なし
パスワード
   ありがとうございます。

参照される元データを、作業をしているシートに指定するにはどのような方法があるのでしょうか?


私が作ったマクロは下記の通りです。

Sub Macro1()
  ActiveCell.Columns("A:E").EntireColumn.Select
  Charts.Add
  ActiveChart.ChartType = xlStockVOHLC
  ActiveChart.SetSourceData Source:=Sheets("ソニ").Range("A1:E3084"), PlotBy:= _
    xlColumns
  ActiveChart.Location Where:=xlLocationAsObject, Name:="ソニ"
End Sub


Sheets("ソニ")の部分などを色々変えて試したのですが、行き詰まってしまいました。。。。。


元のデータは下記の通りで株価チャート用のものです。

913100    5710    5720    5700    5700
273400    5710    5760    5700    5760
243600    5770    5780    5760    5770
203800    5780    5780    5760    5760
86300    5750    5750    5740    5750
59700    5740    5760    5740    5750
68700    5760    5760    5740    5740
29700    5750    5750    5730    5730
68700    5740    5740    5720    5730
90700    5720    5730    5720    5720
63900    5730    5730    5710    5710
232500    5700    5730    5700    5730
115800    5720    5730    5710    5710
47700    5720    5730    5710    5730
136400    5720    5730    5720    5720
129500    5720    5720    5690    5690
93200    5680    5700    5680    5690
100100    5700    5700    5690    5690
54500    5690    5690    5680    5690
72900    5700    5700    5670    5670
23100    5680    5680    5670    5670
40400    5670    5680    5670    5680
129600    5680    5690    5680    5680
93400    5690    5690    5670    5680
26600    5680    5690    5680    5690
74500    5680    5690    5670    5680


マクロ記録の過程は、

A列〜E列をShiftを押して指定 → グラフウィザード → 株価 → 株価チャート(出来高-始値-高値-安値)という風にやりました。


よろしくお願いします。

【35041】Re:グラフの作図をマクロに登録すると
発言  ponpon  - 06/2/20(月) 0:17 -

引用なし
パスワード
   こんばんは。

>ActiveChart.SetSourceData Source:=Sheets("ソニ").Range("A1:E3084"), PlotBy:= _
>xlColumns

ここの部分でグラフのデータを参照しています。
SetSourceDataをヘルプで調べてみましょう?

【35042】Re:グラフの作図をマクロに登録すると
発言  初心者  - 06/2/20(月) 0:19 -

引用なし
パスワード
   ▼miku02 さん:
>ありがとうございます。
>
>参照される元データを、作業をしているシートに指定するにはどのような方法があるのでしょうか?
>
>
>私が作ったマクロは下記の通りです。
>
>Sub Macro1()
>  ActiveCell.Columns("A:E").EntireColumn.Select
>  Charts.Add
>  ActiveChart.ChartType = xlStockVOHLC
>  ActiveChart.SetSourceData Source:=Sheets("ソニ").Range("A1:E3084"), PlotBy:= _
>    xlColumns
>  ActiveChart.Location Where:=xlLocationAsObject, Name:="ソニ"
>End Sub
>
>
>Sheets("ソニ")の部分などを色々変えて試したのですが、行き詰まってしまいました。。。。。
>
>
>元のデータは下記の通りで株価チャート用のものです。
>
>913100    5710    5720    5700    5700
>273400    5710    5760    5700    5760
>243600    5770    5780    5760    5770
>203800    5780    5780    5760    5760
>86300    5750    5750    5740    5750
>59700    5740    5760    5740    5750
>68700    5760    5760    5740    5740
>29700    5750    5750    5730    5730
>68700    5740    5740    5720    5730
>90700    5720    5730    5720    5720
>63900    5730    5730    5710    5710
>232500    5700    5730    5700    5730
>115800    5720    5730    5710    5710
>47700    5720    5730    5710    5730
>136400    5720    5730    5720    5720
>129500    5720    5720    5690    5690
>93200    5680    5700    5680    5690
>100100    5700    5700    5690    5690
>54500    5690    5690    5680    5690
>72900    5700    5700    5670    5670
>23100    5680    5680    5670    5670
>40400    5670    5680    5670    5680
>129600    5680    5690    5680    5680
>93400    5690    5690    5670    5680
>26600    5680    5690    5680    5690
>74500    5680    5690    5670    5680
>
>
>マクロ記録の過程は、
>
>A列〜E列をShiftを押して指定 → グラフウィザード → 株価 → 株価チャート(出来高-始値-高値-安値)という風にやりました。
>
>
>よろしくお願いします。

作業をしているシートとか?
アクティブになっているシートのことですか?

であれば、
>Sub Macro1()
>  ActiveCell.Columns("A:E").EntireColumn.Select
>  Charts.Add
>  ActiveChart.ChartType = xlStockVOHLC
>  ActiveChart.SetSourceData Source:=activesheet.Range("A1:E3084"), PlotBy:= _
>    xlColumns
>  ActiveChart.Location Where:=xlLocationAsObject, Name:="ソニ"
>End Sub

でできませんか?
グラフの元データはたぶんSetSourceData Source:=activesheet.Range("A1:E3084")って所だと思いますので。
たぶんソニってシートに、アクティブシートのデータのグラフが作成されると思いますが。

【35044】Sheets("ソニ")を、activeshe...
質問  miku02  - 06/2/20(月) 5:20 -

引用なし
パスワード
   Sheets("ソニ")を、activesheet に換えると、エラーになってしまいました。。。。。

コンパイル エラー:
修正候補: 名前付き引数

と出ます。


う〜ん。。。。。

つまづくと、なかなか先に進めませんねw

【35046】Re:Sheets("ソニ")を、active...
発言  初心者  - 06/2/20(月) 6:05 -

引用なし
パスワード
   おはようございます。
私も初心者のためチャレンジで質問に答えようとしたことが間違っていたのかもしれませんが。

Charts.Add
としていることで、アクティブはシートではなく、チャートになっているんですよね。
よって、ActiveSheetという考えはなくなるのかなって想像しました。

ActiveSheetをどのように指定すればいいのかなって考えてみました。
以下のように変えてみても動かないようであれば、私には無理だったということかも。そのときはお騒がせして申し訳ありませんでした。

>Sub Macro1()
Dim WS As Worksheet
Set WS=ActiveSheet
>  ActiveCell.Columns("A:E").EntireColumn.Select
>  Charts.Add
>  ActiveChart.ChartType = xlStockVOHLC
>  ActiveChart.SetSourceData Source:=WS.Range("A1:E3084"), PlotBy:= _
>    xlColumns
>  ActiveChart.Location Where:=xlLocationAsObject, Name:="ソニ"
Set WS=Nothing
>End Sub

【35050】Re:Sheets("ソニ")を、active...
発言  Jaka  - 06/2/20(月) 12:46 -

引用なし
パスワード
   手が空かないのであまり読んでいませんけど...。
こんな風にしてみたらどうでしょうか?
見本ですからシート名等他もろもろは修正してください。

Sub Macro1()
  Application.ScreenUpdating = False
  acb = ActiveSheet.Name
  Sheets("Sheet2").Select
  Columns("A:E").Select
  Charts.Add
  DoEvents
  ActiveChart.ChartType = xlStockVOHLC
  最終行 = Sheets("Sheet2").Range("A65536").End(xlUp).Row
  ActiveChart.SetSourceData Source:=Sheets("Sheet2").Range("A1:E" & 最終行)
  ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2"
  Range("a1").Select
  Sheets(acb).Select
  Application.ScreenUpdating = True
End Sub

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