Excel VBA質問箱 IV

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

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


12846 / 13646 ツリー ←次へ | 前へ→

【8312】グラフ表示位置について ポリンキー 03/10/8(水) 11:29 質問
【8321】Re:グラフ表示位置について りん 03/10/8(水) 18:24 回答
【8335】Re:グラフ表示位置について ポリンキー 03/10/9(木) 11:44 お礼
【8337】Re:グラフ表示位置について ポリンキー 03/10/9(木) 14:17 質問
【8356】Re:グラフ表示位置について ポリンキー 03/10/10(金) 13:27 お礼

【8312】グラフ表示位置について
質問  ポリンキー  - 03/10/8(水) 11:29 -

引用なし
パスワード
   テキストデータを読み込み、グラフ(散布図)を作成するマクロを作っています。
読み込まれたデータの後ろにグラフを表示したいのですが、テキストデータの大きさが
ファイルによってまちまちなので、位置を指定することができません。どのようにしたらよいのでしょうか?マニュアルを読んでもなかなか理解できない程度のレベルです。どうぞよろしくお願いいたします。

【8321】Re:グラフ表示位置について
回答  りん E-MAIL  - 03/10/8(水) 18:24 -

引用なし
パスワード
   ポリンキー さん、こんばんわ。

>テキストデータを読み込み、グラフ(散布図)を作成するマクロを作っています。
>読み込まれたデータの後ろにグラフを表示したいのですが、テキストデータの大きさが
>ファイルによってまちまちなので、位置を指定することができません。
 A列の一番下(A65536)のセルから ↑ + End で移動して最下行のセルを取得し、その2つ下のセルを左上にするようにChartObjectを配置しました。

Sub Test()
  'AがX,BがY
  Dim co As ChartObject, r1 As Range, r2 As Range, Rmax as Long
  With ActiveSheet
   Set r1 = .Range(.Range("A1"), .Range("A65536").End(xlUp)) 'X
   Set r2 = r1.Offset(0, 1) 'Y
  End With
  With r1
   Rmax = .Cells(.Count).Row
  End With
  With ActiveSheet
  '一つあけて下
   With Range(.Cells(Rmax + 2, 1), .Cells(Rmax + 21, 10)) '大きさは適当
     Set co = ActiveSheet.ChartObjects.Add(.Left, .Top, .Width, .Height)
   End With
  End With
  With co.Chart
   .ChartArea.Font.Size = 10
   .ChartType = xlXYScatter
   .HasLegend = False
   .SetSourceData Source:=r2, PlotBy:=xlColumns
   .SeriesCollection(1).XValues = r1
  End With
  Set co = Nothing: Set r1 = Nothing: Set r2 = Nothing
End Sub

こんな感じです。

【8335】Re:グラフ表示位置について
お礼  ポリンキー  - 03/10/9(木) 11:44 -

引用なし
パスワード
   りんさん

 なるほど〜。一番下(A65536)のセルから ↑ + End で移動して最下行のセルを取得すればいいんですね。わかりやすいように注釈も加えていただき、ご丁寧に教えてくださって、どうもありがとうございました。勉強しながら頑張ってみます。

【8337】Re:グラフ表示位置について
質問  ポリンキー  - 03/10/9(木) 14:17 -

引用なし
パスワード
    りんさん、さきほどはご親切に教えていただき、どうもありがとうございました。

 ちょっとわからないところがありますので、教えてください。教えていただいたのは、データの終わりの2つ下のセルの位置から散布図を作成するという記述だと思うのですが、散布図を表示するところまではうまくいっている私のマクロの記述を見てみますと、

ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets(Mfile).Range("F46:F" & CStr(r), "I46:I" & CStr(r)) _
    , PlotBy:=xlColumns

 というように、ActiveChart.SetSourceData SourceのところにMfileというシート名が記述されてしまっていて、どうしたらよいのかなぁと。グラフを表示するところまではうまくいっているので、その後データ最終行の下に移動するというようなことはできますか?前後の記述を省略しているので(いろんな処理をしているので記述が長く、省略させていただきました。)わかりにくいとは思いますが、よろしくお願いいたします。


 

【8356】Re:グラフ表示位置について
お礼  ポリンキー  - 03/10/10(金) 13:27 -

引用なし
パスワード
   りんさん

 初歩的などうしようもない質問をして、どうもすみませんでした。
散布図を作成してから、りんさんから教えていただいた通りにセルを取得して、
ActiveChart.SeriesCollection(1)のところで取得したセルの場所を記述
したらできました。マニュアルにもヘルプにも載っていなかったので、
どう記述すればいいのかわからなかったのですが、Pointsを使ったら
できました。どうもありがとうございました。

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