
いつもお世話になります
今、グラフを含んだエリアをコピーして
別の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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルにおける、グラフの指...
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
イラレのグラフがグループ解除...
-
エクセルグラフの一括設定。
-
Excelのグラフを一太郎に貼ると...
-
エクセルでこんなグラフを作り...
-
エクセルで散布図をつくったとき
-
Wordでレポートを作っています...
-
一太郎にエクセルからコピーし...
-
excel 波形
-
~エクセル~円グラフのみを抽...
-
エクセルで作業ごとの時間をグ...
-
エクセル(Excel)の目盛りの一...
-
(エクセル)グラフにテキスト...
-
EXCELでの棒グラフの太さについて
-
パワーポイントに貼り付けたエ...
-
エクセルでグラフをコピーする...
-
SD法の結果をExcelでグラフ化す...
-
【Excel2007】グラフ線太さのデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルにおける、グラフの指...
-
たくさん作った同じ設定のグラ...
-
エクセルでグラフタイトルが折...
-
イラレのグラフがグループ解除...
-
エクセル(Excel)の目盛りの一...
-
エクセルグラフの一括設定。
-
エクセルのグラフの一部拡大
-
~エクセル~円グラフのみを抽...
-
パワーポイントに貼り付けたエ...
-
エクセルでこんなグラフを作り...
-
エクセル:ぴったり重なった後...
-
EXCELでの棒グラフの太さについて
-
EXCEL・複数ある円グラフの円の...
-
エクセルグラフの数値軸(Y)の...
-
エクセルのグラフタイトルを中...
-
excel2010 グラフエリアの外の...
-
エクセルで作業ごとの時間をグ...
-
EXCELで海の潮見表(タイドグラ...
-
Wordでレポートを作っています...
-
イスラーム王朝について質問で...
おすすめ情報