Page 754 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼グラフの作成時の範囲選択について ntomo 03/2/14(金) 11:51 ┣Re:グラフの作成時の範囲選択について ポンタ 03/2/14(金) 12:05 ┃ ┗Re:グラフの作成時の範囲選択について ntomo 03/2/14(金) 13:34 ┗続・軸の設定について。 ntomo 03/2/14(金) 16:52 ┗自己レスですみません ntomo 03/2/17(月) 11:52 ┗Re:自己レスですみません ポンタ 03/2/17(月) 12:13 ┗ありがとうございます^^ ntomo 03/2/17(月) 14:34 ─────────────────────────────────────── ■題名 : グラフの作成時の範囲選択について ■名前 : ntomo ■日付 : 03/2/14(金) 11:51 -------------------------------------------------------------------------
グラフを自動作成したいのですが、 グラフはA2からA4までの3行で右端は毎回変わります。 そのときの範囲の設定の仕方がわかりません。 1項目目 2項目目 3項目目 x項目目 赤 データR1 データR2 データR3・・・・データRx 緑 データG1 データG2 データG3・・・・データGx 青 データB1 データB2 データB3・・・・データBx 範囲選択のところだけでもいいのでどなたか教えてください。 Dim aRng As Range, hRng As Range Sheets("平均値").Select Set aRng = Range("A2", Range("A4").End(xlToLeft)).Select Set hRng = Range("A5", Range("A7").End(xlToLeft)).Select としているのですが・・・ オブジェクトが必要ですとでていて にっちもさっちもいきません よろしくおねがいします |
パッと見た感じだと、以下の2行の 「.Select」は不要なのではないでしょうか? × Set aRng = Range("A2", Range("A4").End(xlToLeft)).Select Set hRng = Range("A5", Range("A7").End(xlToLeft)).Select ○ Set aRng = Range("A2", Range("A4").End(xlToLeft)) Set hRng = Range("A5", Range("A7").End(xlToLeft)) |
▼ポンタ さん: >○ Set aRng = Range("A2", Range("A4").End(xlToLeft)) > Set hRng = Range("A5", Range("A7").End(xlToLeft)) ありがとうございました^^♪ これでOKでした 後自分のミスなんですが、leftではなくrightでした。 Set aRng = Range("A2", Range("A4").End(xlToRight)) が正ですね^^。 余談ですが・・・グラフを2つ更新するのでaRngとhRngとしたのですが 一つの範囲で設定しなおしたほうがよかったようですね^^ |
グラフを自動作成したいのですが、 グラフはA2からA4までの3行で右端は毎回変わります。 そのときの範囲の設定の仕方がわかりません。 1項目目 2項目目 3項目目 x項目目 赤 データR1 データR2 データR3・・・・データRx 緑 データG1 データG2 データG3・・・・データGx 青 データB1 データB2 データB3・・・・データBx となっています。 このときに、1行目を項目軸として設定したいのです。 上の表だとわかりにくいのですが><。。 A B C ・・・・・・ 1 1項目目 2項目目 3項目目 x項目目 2 赤 データR1 データR2 データR3・・・・データRx 3 緑 データG1 データG2 データG3・・・・データGx 4 青 データB1 データB2 データB3・・・・データBx とエクセルの表示にしたがって表現するとこうなります。(わかりにくいかな・・・) このときに 前回の設定だと、A2〜X4までのデータしかみれず、1列目が項目軸であるような設定が できません。 そこで Set aRng = Range("A1", Range("A4").End(xlToRight)) 'R:平均値の領域 Set hRng = Worksheets("sheet1").Range("A1", Range("IV").End(xlToLeft)) 'グラフの更新@平均値 ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.ChartArea.Select ActiveChart.SetSourceData Source:=aRng, PlotBy:=xlRows ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).XValues = "sheet1!" & hRng.Address(, , xlR1C1) ActiveChart.SeriesCollection(2).XValues = "sheet1!" & hRng.Address(, , xlR1C1) ActiveChart.SeriesCollection(3).XValues = "sheet1!" & hRng.Address(, , xlR1C1) ActiveWindow.Visible = False としてみたところ・・・ 実行時エラー'1004' 'Range'メソッドは失敗しました:'_Global'オブジェクト と表示され Set hRng = Worksheets("sheet1").Range("A1", Range("IV").End(xlToLeft)) この行が黄色く反転します。 この辺の範囲の選択の仕方がいまだによくわかっていないので だれかよければ教えてください。 |
× Set hRng = Worksheets("sheet1").Range("A1", Range("IV").End(xlToLeft)) ○ Set hRng = Worksheets("sheet1").Range("A1", Range("IV1").End(xlToLeft)) でした。すっごくつまらないミスですみません・・・・。 |
遅い上に、水を注すような書き込みで申し訳ないのですが、 偶然うまくいってるだけのような気がします。 Set hRng = Worksheets("sheet1").Range("A1", Range("IV1").End(xlToLeft)) の場合、Sheet1のA1〜アクティブシートの1行目最終入力列までが対象になります。 Sheet1の1行目最終入力列とアクティブシートの1行目最終入力列が 異なる場合、うまく動かないように思います。 Set hRng = Worksheets("sheet1").Range("A1", Worksheets("sheet1").Range("IV1").End(xlToLeft)) ↑のように2つ目のRangeにもシートを指定したほうが良いと思います。 |
▼ポンタ さん: >遅い上に、水を注すような書き込みで申し訳ないのですが、 いえいえ十分ありがたいです^^ シートの指定のところ修正しておきます。 まだまだ未解決の所とかもあるのでまた 行き詰まったらよろしくおねがいします^^ |