アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクティブになっているsheetのグラフを参照し、
それを『まとめ』sheetに移動して張り付ける。
現在 ★マークのところでエラーになっています。
オブジェクトは、このメソッドをサポートしていません…と、これは何のエラーになるのでしょうか?
アドバイスお願い致します.

Sub test()
Dim str As String
★str = ActiveSheet.ChartObjects.Name 'strにグラフ名を代入 ←不具合中…

Sheets("まとめ").Activate '---sheet 『まとめ』を アクティブにする
ActiveSheet.ChartObjects(str).Activate
ActiveChart.Paste
End Sub

A 回答 (3件)

こんにちは。


>オブジェクトは、このメソッドをサポートしていません…と、これは何のエラーになるのでしょうか?

ChartObjects だけですと、オブジェクトのコレクションだから、固有の名前を持たないということではありませんか?

ちょっと手直ししてみました。

Sub test2()
Dim str As String
 str = ActiveSheet.ChartObjects(1).Name
 ActiveSheet.ChartObjects(str).Copy
 Sheets("まとめ").Paste
End Sub

#1 さんのおっしゃるとおり、シートに1個しかない時は、インデックス は、「1」でよいのですが。

早い話、以下でもよいわけですね。(^^;

 ActiveChart.ChartObjects.Copy
 Sheets("まとめ").Paste

この回答への補足

>オブジェクト… エラー部分は解消されました。

補足で教えてもらいたいのですが…
●Sheets("まとめ").Paste 部分を改造して、
貼付先のsheet名を(今回はまとめ)選択しつつ、貼付位置のセルを指定して貼付を行う事は可能でしょうか?

以下が現在処理している全体ソースです。

Sub まとめ用()
Dim ws As Worksheet
Dim str As String
Dim i As Integer
i = 1
Sheets("sheet名").Select
ActiveSheet.Next.Select

For Each ws In ActiveWorkbook.Sheets
If ws.Name = "まとめ" Then
Else
str = ActiveSheet.ChartObjects(1).Name
ActiveSheet.ChartObjects(str).Copy
●Range("A2").Offset(i).Select
Sheets("まとめ").Paste

On Error Resume Next
ActiveSheet.Next.Select
▲i = i + 20
End If
Next
End Sub

<現在の不具合状況>
●部分のセル参照の効果がなく、グラフの貼付2回目以降は自動貼付で 『まとめ』sheet に順に貼付していってしまう。
これを ▲部分の定義のように i = i+20 と offset()関数組み合わせにより、2回目以降の貼付はセル参照を20順に下げて貼付されていくように処理したい。

再度アドバイスよろしくお願い致します m(__)m

補足日時:2005/06/02 03:28
    • good
    • 0

#1です



さらに調べていたら間違だったので、訂正します

グラフの名前を取得するサンプルがありました
http://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi? …

そもそもグラフの名前の取得するのですから、ActiveSheetではなくActiveChartと思います

参考URL:http://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi? …
    • good
    • 0

ちょっと調べただけなんですけど、グラフって複数枚作れるじゃないですか だから


ChartObjects(対象とするグラフの番号).Nama
となるようです
(1枚しかないのなら1)

参考になれば幸いです
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!