人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのVBAに関する質問です。
あるシートにある元となるチャート(グラフ)をシートごとコピーして、別シートにもっていき、その別シートに別途データをもっていき、それを適用してグラフを再描画したいのです。
そのときにコピーされたチャートはどう指定したらいいのでしょうか? グラフ 8 とかいうプロパティになって、数字の部分がコロコロかわってVBAで指定しずらいです。簡単に指定する方法があったら教えてください。チャートはシートに2つあって、シートごとコピーします。

●質問者: isogaya
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:VBA エクセル グラフ コピー コロコロ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●60ポイント

シートとチャートの左上のセル位置を指定してオブジェクトを取得するようにすれば、できないでしょうか。


下記に簡単な実装例を例示します。

Sub main()
 Dim objChart As ChartObject
 Set objChart = getChartOnRange(Worksheets("Sheet1"), range("E12"))
 If objChart Is Nothing Then
 MsgBox "該当するチャートはありません"
 Else
 MsgBox "チャート名は[" & objChart.Chart.Name & "]です"
 End If
End Sub

'-----------------------------------------------------------
' 左上位置をセルで指定してチャートのオブジェクトを取得する
'-----------------------------------------------------------
Function getChartOnRange(ws As Worksheet, rg As range) As ChartObject
'-----------------------------------------------------------
 Dim objCrt As ChartObject
 For Each objCrt In ws.ChartObjects
 If Not Intersect(rg, objCrt.TopLeftCell) Is Nothing Then
 Set getChartOnRange = objCrt
 Exit Function
 End If
 Next
 Set getChartOnRange = Nothing
End Function

http://makotowatana.ld.infoseek.co.jp/vba_graph.html


あるいはコピーするのではなく、VBA で都度チャートを生成するのは大変でしょうか。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ