
いつもお世話になります
今、グラフを含んだエリアをコピーして
別のBookの任意のシートに張り付け、その後いろいろと操作したと思いますが
貼り付け先のChartのIndex番号の取得の方法が分かりません
Windows("A.xlsx").Activate
OrgRng = Selection.Address
Range(OrgRng).Select
Selection.Copy
Windows("B.xlsx").Activate
(任意のシート、位置を事前に選択)
ActiveSheet.Paste
・
・
この時に任意のシートには別なグラフも複数有るものとします
張り付けたグラフを処理するためにIndex番号が必要となると思いますが
どのように取得して良いか、検討中です
お分かりになりましたら是非ご教示、お願い申し上げます
No.2ベストアンサー
- 回答日時:
一つお詫びしておきます。
以前のエクセルでは同じ名称のグラフをコピーした時は勝手にグラフ名の最後の番号が変更されユニークな名称になっていたと認識していましたが Excel 2013 ではそのままの名前になっていました。仕方がないのでコピー後のグラフ名を指定する事も出来るようにしました。
応用がききやすい様にユーザー定義関数として作成しました。戻り値はIndex番号になります。グラフの削除が無ければそのまま使えます。グラフ名は指定する事でユニークな物にすることも出来ます、省略した場合は元のグラフ名のままになります。
引数は日本語なので判ると思いますが判らない所が有りましたら聞いて下さい。
グラフのコピーは複数を一度に行わないで下さい。
Sub Sample()
Dim インデックス As Long
' グラフ名を指定する場合
' インデックス = ChartCopy("A.xlsx", "Sheet1", "A1:M40", "B.xlsx", "Sheet1", "A1", "グラフ①")
' グラフ名を省略する場合
インデックス = ChartCopy("A.xlsx", "Sheet1", "A1:M40", "B.xlsx", "Sheet1", "A1")
MsgBox (インデックス)
End Sub
Function ChartCopy(元ブック名 As String, 元シート名 As String, コピー範囲 As String, 先ブック名 As String, 先シート名 As String, 貼付位置 As String, Optional グラフ名 As String = "") As Long
Dim グラフ As ChartObject
Dim グラフ辞書 As Object
Windows(先ブック名).Activate
Sheets(先シート名).Select
Set グラフ辞書 = CreateObject("Scripting.Dictionary")
For Each グラフ In ActiveSheet.ChartObjects
グラフ辞書.Add グラフ.Index, グラフ.Name
Next
Windows(元ブック名).Activate
Sheets(元シート名).Select
Range(コピー範囲).Copy
Windows(先ブック名).Activate
Range(貼付位置).Select
ActiveSheet.Paste
Application.CutCopyMode = False
For Each グラフ In ActiveSheet.ChartObjects
If グラフ辞書.Exists(グラフ.Index) = False Then
ChartCopy = グラフ.Index
If グラフ名 <> "" Then
グラフ.Name = グラフ名
End If
Exit For
End If
Next
Set グラフ辞書 = Nothing
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Excel(エクセル) エクセルの大きなシートでグラフを見つける 4 2022/07/28 10:07
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルにおける、グラフの指...
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
イラレのグラフがグループ解除...
-
イスラーム王朝について質問で...
-
パワーポイントに貼り付けたエ...
-
エクセルのグラフの一部拡大
-
エクセルグラフの一括設定。
-
Excel2007のグラフ なぜデータ...
-
グラフの部分だけを取り出す方法
-
~エクセル~円グラフのみを抽...
-
ExcelからPowerPointへ画像を貼...
-
EXCELで海の潮見表(タイドグラ...
-
【Excel2007】グラフ線太さのデ...
-
一太郎にエクセルからコピーし...
-
ピボットグラフの軸と凡例を入...
-
白黒印刷用のグラフの作成方法
-
エクセルグラフの数値軸(Y)の...
-
エクセル(Excel)の目盛りの一...
-
エクセルのグラフが作成した通...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
エクセルにおける、グラフの指...
-
EXCEL・複数ある円グラフの円の...
-
エクセルグラフの一括設定。
-
パワーポイントに貼り付けたエ...
-
イラレのグラフがグループ解除...
-
~エクセル~円グラフのみを抽...
-
エクセル(Excel)の目盛りの一...
-
エクセルグラフの数値軸(Y)の...
-
エクセルのグラフの一部拡大
-
excel2010 グラフエリアの外の...
-
エクセル:ぴったり重なった後...
-
EXCELでの棒グラフの太さについて
-
エクセルで作業ごとの時間をグ...
-
エクセルのグラフが作成した通...
-
Wordでレポートを作っています...
-
EXCELで海の潮見表(タイドグラ...
-
excelレーダーチャートの重なり...
-
【Excel2007】グラフ線太さのデ...
おすすめ情報