過去ログ

                                Page     209
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼散布図について  こうき 02/10/15(火) 14:22
   ┗Re:散布図について  yu-ji 02/10/15(火) 14:53
      ┣Re:散布図について  こうき 02/10/15(火) 15:15
      ┃  ┗Re:散布図について  yu-ji 02/10/15(火) 15:55
      ┗Re:散布図について  こうき 02/10/15(火) 15:57
         ┗Re:散布図について  yu-ji 02/10/16(水) 10:42

 ───────────────────────────────────────
 ■題名 : 散布図について
 ■名前 : こうき
 ■日付 : 02/10/15(火) 14:22
 -------------------------------------------------------------------------
   こんにちは。
下のようなシートがあって、年度を横軸、日付を縦軸にした散布図を
作りたいのですが、値や系列がでたらめになってしまいます。
(系列が3つになったり、年度が30000以上になったりします・・・)

  A    B      C
1 年度  最大日付  最小日付
2 2000  9/17   10/5  
3 2001  11/5   2/6
4 2002   3/5   10/5

マクロ化する以前の問題なのですが、いい方法はないでしょうか?
 ───────────────────────────────────────  ■題名 : Re:散布図について  ■名前 : yu-ji  ■日付 : 02/10/15(火) 14:53  -------------------------------------------------------------------------
   ▼こうき さん:
>下のようなシートがあって、年度を横軸、日付を縦軸にした散布図を
>作りたいのですが、値や系列がでたらめになってしまいます。
>(系列が3つになったり、年度が30000以上になったりします・・・)
>
>  A    B      C
>1 年度  最大日付  最小日付
>2 2000  9/17   10/5  
>3 2001  11/5   2/6
>4 2002   3/5   10/5
>
>マクロ化する以前の問題なのですが、いい方法はないでしょうか?

多分、グラフウィザードの2/4の「グラフの元データ」を自動で入力される
値をそのまま使っている為、上手くいかないと言われているのだと思います。
手動で、ちゃんと指定をしてやれば上手くいきますよ。

手動での設定は、系列タブで、それぞれ設定できます。

上記の例でいうと

最大日付
 名前: B1
 X : A2:A4
 Y : B2:B4

最小日付
 名前: C1
 X : A2:A4
 Y : C2:C4

以上のような設定で、上手くいくと思います。
 ───────────────────────────────────────  ■題名 : Re:散布図について  ■名前 : こうき  ■日付 : 02/10/15(火) 15:15  -------------------------------------------------------------------------
   ▼yu-ji さん:
>手動での設定は、系列タブで、それぞれ設定できます。
>
>最大日付
> 名前: B1
> X : A2:A4
> Y : B2:B4
>
>最小日付
> 名前: C1
> X : A2:A4
> Y : C2:C4
>
>以上のような設定で、上手くいくと思います。

ありがとうございます。
うまくいきました。

ただ、これは手動でないとできないのでしょうか?
 ───────────────────────────────────────  ■題名 : Re:散布図について  ■名前 : yu-ji  ■日付 : 02/10/15(火) 15:55  -------------------------------------------------------------------------
   ▼こうき さん:
>ただ、これは手動でないとできないのでしょうか?

先程書いた”手動”とは、2/4で自動的に(=勝手に)作られるものではなく
自分で設定してくださいという意味で使っただけです。

なので、もちろん手動(=自動化できない)でなく、VBAで設定することもできますよ。

まずは、新しいマクロの記述で、手動の処理を記録して、VBAで参照されると
いいと思います。
 ───────────────────────────────────────  ■題名 : Re:散布図について  ■名前 : こうき  ■日付 : 02/10/15(火) 15:57  -------------------------------------------------------------------------
   ▼yu-ji さん:
さきほどの散布図をマクロで作ろうとしたのですが、
Dim monrow As Integer
Dim m As Integer

For m = 1 To 12
monrow=Cells(m,1)

'散布図を挿入する
’系列の変更
ActiveChart.SeriesCollection(1).XValues = Sheets("data"). _
    Range(Cells(2, 14 + 3 * m), Cells(monrow, 14 + 3 * m))
ActiveChart.SeriesCollection(1).Values = Sheets("data"). _
    Range(Cells(2, 15 + 3 * m), Cells(monrow, 15 + 3 * m))
ActiveChart.SeriesCollection(1).Name = "=""最大日付"""
ActiveChart.SeriesCollection(2).XValues = Sheets("data"). _
    Range(Cells(2, 14 + 3 * m), Cells(monrow, 14 + 3 * m))
ActiveChart.SeriesCollection(2).Values = Sheets("data"). _
    Range(Cells(2, 16 + 3 * m), Cells(monrow, 16 + 3 * m))
ActiveChart.SeriesCollection(2).Name = "=""最小日付"""

Next

このように書くと、「Cellsメソッドは失敗しました」と出て、
SeriesCollection(1).XValues の段階でとまってしまいます。

何が悪いのでしょうか?
 ───────────────────────────────────────  ■題名 : Re:散布図について  ■名前 : yu-ji  ■日付 : 02/10/16(水) 10:42  -------------------------------------------------------------------------
   ▼こうき さん:

この処理前の記述がないので、それ以外のことは分かりませんが、
エラーが出ているのはXValuesへの代入のミスなので、まずXValuesのヘルプを
見てください。

で、エラーですが、範囲の指定方法が間違ってます。
まず、CellsにはAddressを付けないと、そのセルの値を見に行ってしまいます。
次に複数範囲を指定する場合は、真中に":"をつけないといけません。
ってことで、

>ActiveChart.SeriesCollection(1).XValues = Sheets("data"). _
>    Range(Cells(2, 14 + 3 * m), Cells(monrow, 14 + 3 * m))

の場合、

ActiveChart.SeriesCollection(1).XValues = Sheets("data"). _
Range(Cells(2, 14 + 3 * m).Address & ":" & _
Cells(monrow, 14 + 3 * m).Address)

という感じになると思います。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 209