過去ログ

                                Page     447
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼グラフの指定範囲を記録マクロで変更した...  泉 啓右 02/12/7(土) 13:37
   ┗Re:グラフの指定範囲を記録マクロで変更した...  通りすがりのななし 02/12/8(日) 21:51
      ┗Re:グラフの指定範囲を記録マクロで変更した...  泉 啓右 02/12/8(日) 22:35
         ┗Re:グラフの指定範囲を記録マクロで変更した...  通りすがりのななし 02/12/11(水) 22:45

 ───────────────────────────────────────
 ■題名 : グラフの指定範囲を記録マクロで変更した...
 ■名前 : 泉 啓右 <dogra11@hotmail.com>
 ■日付 : 02/12/7(土) 13:37
 -------------------------------------------------------------------------
   月別の売上推移を表した縦棒グラフがあります。翌月の売上をセルに入力するたびに手作業でグラフの指定範囲を変更しておりますが、これを記録マクロで行いたいと考えております。

しかしマクロ実行ボタンを押すと、絶対参照記録、相対参照記録に関わらず、グラフで範囲しているセルが、最初に記録した範囲にしか移動しません。

例)1月〜3月の売上をグラフ範囲で「A2:C2」と指定。4月の売上をD2に入力した後、記録マクロでグラフの指定範囲を「A2:D2」に変更。次に、5月の売上をE2に入力した際にこのマクロを実行すると、グラフは「A2:D2」(1〜4月)のまま変わらない。本当は「A2:E2」とセル指定範囲を横に1セル追加したい。

記録マクロのスクリプトは以下となります。解決手段をご存知の方、どなたかお教え頂ければ大変(もう3年もこの作業を続けているので言葉にならぬほど)助かります。何卒よろしくお願い致します。
※エクセルのバージョンは「エクセル2000」です。

===スクリプトここから======

Sub Macro4()
'
' Macro4 Macro
' マクロ記録日 : 2002/12/7 ユーザー名 : 泉啓右
'

'
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B4:K5"), PlotBy:= _
xlRows
End Sub

===スクリプトここまで======
 ───────────────────────────────────────  ■題名 : Re:グラフの指定範囲を記録マクロで変更した...  ■名前 : 通りすがりのななし  ■日付 : 02/12/8(日) 21:51  -------------------------------------------------------------------------
   泉 啓右 さん、こんばんは
>月別の売上推移を表した縦棒グラフがあります。翌月の売上をセルに入力するたびに手作業でグラフの指定範囲を変更しておりますが、これを記録マクロで行いたいと考えております。

>ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B4:K5"), PlotBy:= _
>xlRows

過去ログですが参考になりませんか?
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=7617;id=Excel
 ───────────────────────────────────────  ■題名 : Re:グラフの指定範囲を記録マクロで変更した...  ■名前 : 泉 啓右 <dogra11@hotmail.com>  ■日付 : 02/12/8(日) 22:35  -------------------------------------------------------------------------
   こんばんは。お教えくださりありがとうございます。

VBAの質問箱でこんなことを書くのは心苦しいのですが、VBAの知識が全くないため
お教え頂いた過去ログに記載されていたVBAを見てもそれを使うことができません。

この問題では、VBAの知識がある程度なければ対応は難しいでしょうか?

▼通りすがりのななし さん:
>泉 啓右 さん、こんばんは
>>月別の売上推移を表した縦棒グラフがあります。翌月の売上をセルに入力するたびに手作業でグラフの指定範囲を変更しておりますが、これを記録マクロで行いたいと考えております。
>
>>ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B4:K5"), PlotBy:= _
>>xlRows
>
>過去ログですが参考になりませんか?
>http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=7617;id=Excel
 ───────────────────────────────────────  ■題名 : Re:グラフの指定範囲を記録マクロで変更した...  ■名前 : 通りすがりのななし  ■日付 : 02/12/11(水) 22:45  -------------------------------------------------------------------------
   泉 啓右 さん、こんばんは。

>VBAの質問箱でこんなことを書くのは心苦しいのですが、VBAの知識が全くないため
>お教え頂いた過去ログに記載されていたVBAを見てもそれを使うことができません。

 ヘルプみましたか?

 1行目見出し、2行目データで、2行目のデータが入っている範囲を横に移動してグラフの範囲とします(IVから右に移動して右端を判定)。
 グラフオブジェクトはシート上に1つしかないとします。
 グラフのあるシートがアクティブな状態であるとします。

Sub Test()
  With ActiveSheet
    '右端の列
    intCol = .Range("IV2").End(xlToLeft).Column
    'グラフオブジェクトの1つめのグラフ部分
    .ChartObjects(1).Chart. _
      SetSourceData .Range(.Cells(1, 1), .Cells(2, intCol)), _
      PlotBy:=xlRows
  End With
End Sub

>この問題では、VBAの知識がある程度なければ対応は難しいでしょうか?
 そんな事ないと思いますよ。Sheet,Range,Cellsは特によく使うオブジェクトですし。
 わからないときは「問」で追加質問をしたらいいと思います。「礼」をつけてしまうと、他の回答者の方々の目にとまらない可能性が高いですし。完結したように見えますからね。

ただ、
 手作業では1・2行目
 記録マクロでは4・5行目
どちらが正しいのでしょうか? サンプルは1・2行目A列よりで対応しています。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 447