Excel VBA質問箱 IV

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

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


2170 / 13645 ツリー ←次へ | 前へ→

【69565】新しいシートを作りそこに既存のデータを貼り付けグラフを作りたい KISS 11/8/3(水) 7:55 質問[未読]
【69566】Re:新しいシートを作りそこに既存のデータ... kanabun 11/8/3(水) 10:01 発言[未読]
【69567】Re:新しいシートを作りそこに既存のデータ... KISS 11/8/3(水) 12:01 お礼[未読]

【69565】新しいシートを作りそこに既存のデータを...
質問  KISS  - 11/8/3(水) 7:55 -

引用なし
パスワード
   始めまして マクロ初心者です
新しいシート作りそこでグラフを作りたいのですが
マクロを理解していない為上手くいきません
知恵を授けてください お願いします

Sheets("Sheet1").Select
  Range("A2:D9630").Select
  Selection.Copy
  Sheets.Add
  ActiveSheet.Paste
  Charts.Add
  Set ws = sheetsts.Add (ここで止ってしまいます)
  ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="2 軸上の折れ線"
  ActiveChart.SetSourceData Source:=ws.Range("B2:D50"), PlotBy _
    :=xlColumns
  ActiveChart.Location Where:=xlLocationAsObject, Name:="ws Name"
  
  With ActiveChart
    .HasAxis(xlCategory, xlPrimary) = True
    .HasAxis(xlCategory, xlSecondary) = False
    .HasAxis(xlValue, xlPrimary) = True
    .HasAxis(xlValue, xlSecondary) = True
  End With
  ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlCategoryScale
  ActiveChart.Axes(xlCategory, xlSecondary).CategoryType = xlCategoryScale
  ActiveChart.HasLegend = True
  ActiveChart.Legend.Select
  Selection.Position = xlTop
  ActiveSheet.Shapes("グラフ 1").IncrementLeft 30.75
  ActiveSheet.Shapes("グラフ 1").IncrementTop -88.5
  ActiveSheet.Shapes("グラフ 1").IncrementLeft 9#
  ActiveSheet.Shapes("グラフ 1").IncrementTop -2.25
  Windows("湿度管理.xls").SmallScroll Down:=-1
  ActiveSheet.Shapes("グラフ 1").ScaleWidth 1.38, msoFalse, msoScaleFromTopLeft
  ActiveSheet.Shapes("グラフ 1").ScaleHeight 1.48, msoFalse, msoScaleFromTopLeft

【69566】Re:新しいシートを作りそこに既存のデー...
発言  kanabun  - 11/8/3(水) 10:01 -

引用なし
パスワード
   ▼KISS さん:

>新しいシート作りそこでグラフを作りたいのですが

>  Set ws = sheetsts.Add (ここで止ってしまいます)

とりあえず、↑ 「sheetsts」というものはありません。
ワークシートを追加するのなら、
  Set ws = Worksheets.Add
でしょうし、
グラフシートを追加するのなら、
   Charts.Add
でしょうけど?

あと、
あたらしいワークシートを作ってそこに埋め込みグラフを描画するのなら、
  Dim ws As Worksheet
  Dim c As Range
  Dim Cht As Chart
 
  Set ws = Worksheets.Add
  Set c = ws.Range("B2").Resize(20, 6)
  Set Cht = ws.ChartObjects.Add(c.Left, c.Top, c.Width, c.Height) _
      .Chart

という順番で ChartObject(埋め込みグラフ)の下位のChartオブジェクトを
取得し、その Chart に対してグラフの種類や、元データ範囲をセットする
ことになります。
そうすれば、ワークシート上のグラフの場所を指定して埋め込みグラフが
作成できるので、
Charts.Add でグラフシートを作成して、それからそのChartをワークシート
上に「場所」移動する ↓ 手間は不要になります。

> ActiveChart.Location Where:=xlLocationAsObject, Name:="ws Name"

                            ↑変数とリテラル
文字列を混同しないように。上は「ws Name」という名前のシートがないと
エラーになります。 Name:=ws.Name ならとりあえずOKですが。

【69567】Re:新しいシートを作りそこに既存のデー...
お礼  KISS  - 11/8/3(水) 12:01 -

引用なし
パスワード
   有難うございます
少し頭の整理します
又よろしくおねがいたします

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