Excel上でのグラフ貼り付け時のマクロについて – プログラミング – Home

Excel上でのグラフ貼り付け時のマク...
 
通知
すべてクリア

Excel上でのグラフ貼り付け時のマクロについて


ナオ
 ナオ
(@ナオ)
ゲスト
結合: 25年前
投稿: 35
Topic starter  

はじめまして。内容がExcelよりですがよろしくお願いします。

現在、ExcelにてVBを使用し、データからグラフを作成するマクロを作成中なのですが、
マクロの内容としてはグラフウィザードに従ってグラフを作成し、指定したオブジェク
トに貼り付けたいのですが、通常のグラフウィザードでは既存のオブジェクトに作成し
たグラフを貼り付けることが出来るのに、この一通りの処理をマクロにすると別のシー
トにグラフを貼り付けてしまいます。また、グラフウィザードで新規シートに貼り付け
る場合は問題ありません。

マクロは以下の通りです。
●既存オブジェクトにグラフを貼り付けた場合
Sheets(結果).Select
Range(E1:E897).Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets(結果).Range(E1:E897), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:=既存オブジェクト
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = A
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = B
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = C
End With
○結果
 別のシート(指定した既存オブジェクトではないところ)にグラフが貼り付けられて
 しまう。

●新規シートにグラフを貼り付けた場合
Sheets(結果).Select
Range(F1:F897).Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets(結果).Range(F1:F897), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=新規シート
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = A
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = B
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = C
End With
○結果
 新規シートにグラフが貼り付けられる。

どこかチェックした方がよい点がありましたら教えて頂ければと思います。
ちなみに環境はVB6.0でOSはXPです。よろしくお願いします。


引用解決済
トピックタグ
kuma
 kuma
(@kuma)
ゲスト
結合: 21年前
投稿: 32
 

Location プロシージャに渡している Name 引数が適正な値か
チェックしてみてください。


返信引用
ナオ
 ナオ
(@ナオ)
ゲスト
結合: 25年前
投稿: 35
Topic starter  

kumaさん返信ありがとうございました。

本日Locationプロシージャに渡しているName引数を変更(シンプルな名前)確認してみ
たところ、既存オブジェクトにグラフを貼り付けることができました。恐らく以前のも
のはLocationプロシージャに渡しているName引数が適正な値(名前)でなかったんだと
思います(ちゃんとコピーして設定したはずだったんですが・・・)。

ご指導ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました