過去ログ

                                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

としているのですが・・・
オブジェクトが必要ですとでていて
にっちもさっちもいきません
よろしくおねがいします
 ───────────────────────────────────────  ■題名 : Re:グラフの作成時の範囲選択について  ■名前 : ポンタ  ■日付 : 03/2/14(金) 12:05  -------------------------------------------------------------------------
   パッと見た感じだと、以下の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))
 ───────────────────────────────────────  ■題名 : Re:グラフの作成時の範囲選択について  ■名前 : ntomo  ■日付 : 03/2/14(金) 13:34  -------------------------------------------------------------------------
   ▼ポンタ さん:
>○ 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としたのですが
一つの範囲で設定しなおしたほうがよかったようですね^^
 ───────────────────────────────────────  ■題名 : 続・軸の設定について。  ■名前 : ntomo  ■日付 : 03/2/14(金) 16:52  -------------------------------------------------------------------------
   グラフを自動作成したいのですが、
グラフは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))
この行が黄色く反転します。

この辺の範囲の選択の仕方がいまだによくわかっていないので
だれかよければ教えてください。
 ───────────────────────────────────────  ■題名 : 自己レスですみません  ■名前 : ntomo  ■日付 : 03/2/17(月) 11:52  -------------------------------------------------------------------------
   ×  Set hRng = Worksheets("sheet1").Range("A1", Range("IV").End(xlToLeft))
○  Set hRng = Worksheets("sheet1").Range("A1", Range("IV1").End(xlToLeft))

でした。すっごくつまらないミスですみません・・・・。
 ───────────────────────────────────────  ■題名 : Re:自己レスですみません  ■名前 : ポンタ  ■日付 : 03/2/17(月) 12:13  -------------------------------------------------------------------------
   遅い上に、水を注すような書き込みで申し訳ないのですが、
偶然うまくいってるだけのような気がします。

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にもシートを指定したほうが良いと思います。
 ───────────────────────────────────────  ■題名 : ありがとうございます^^  ■名前 : ntomo  ■日付 : 03/2/17(月) 14:34  -------------------------------------------------------------------------
   ▼ポンタ さん:
>遅い上に、水を注すような書き込みで申し訳ないのですが、
いえいえ十分ありがたいです^^

シートの指定のところ修正しておきます。
まだまだ未解決の所とかもあるのでまた
行き詰まったらよろしくおねがいします^^
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 754