EXCEL オブジェクトを消す(グラフ、図、...)
Background
VBAでグラフを作る、グラフが固定数であればデータを書き換えて再描画できるが、グラフ数が変わるような場合、前回作ったグラフを消して作る必要がある。
シートには棒グラフと、散布図があり、散布図のみ消したい。
散布図を描くレンジ(セルの場所)は決まっている。
Investigation
オブジェクトの一覧は取得可能
グラフの種類は判定できる
名前に細工すれば消したいオブジェクトを特定できる
出来るだけ少ないステップ数で実現したい
.Select(レンジ).delete
.Select("グラフ種類").delete
オブジェクトの名前は一意でなくて構わない
オブジェクト一覧はシート毎に取得可能
レンジ(セル位置)を指定してオブジェクトを取得する方法は見つけられなかった
What to do
他に方法が見つからなかったので名前で回すことにした。残念
オブジェクトの種類(グラフ)、グラフのタイプ(散布図)など判定できるが、今回は名前のみで消すことにする。
VBAで作ったオブジェクトなので名前は指定できる、グラフをコピーされるなどすると名前が”グラフ1”のように変更されるのでVBAで作成されたグラフのみ消すことができる。
Sample
'// 表示しているシートで名前が _VBA_GEN_ を消す
Sub sample_delete()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Name = "_VBA_GEN_" Then
shp.Delete
End If
Next shp
End Sub
おまけ散布図の名前変更
'// グラフ 散布図の名前を _VBA_GEN_ に変更
Sub sample_rename()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoChart And shp.Chart.ChartType = xlXYScatter Then
shp.Name = "_VBA_GEN_"
End If
Next shp
End Sub
Shapes.Type
値 | 定数 | 定義 |
---|---|---|
-2 | msoShapeTypeMixed | |
1 | msoAutoShape | 図形・オートシェイプ |
2 | msoCallout | 吹き出し |
3 | msoChart | グラフ |
4 | msoComment | コメント |
5 | msoFreeform | フリーフォーム |
6 | msoGroup | グループ化された図形 |
7 | msoEmbeddedOLEObject | 埋め込みOLEオブジェクト |
8 | msoFormControl | フォームコントロール |
9 | msoLine | 線 |
10 | msoLinkedOLEObject | リンクOLEオブジェクト |
11 | msoLinkedPicture | リンク画像 |
12 | msoOLEControlObject | ActiveXコントロール |
13 | msoPicture | 画像 |
14 | msoPlaceholder | プレースホルダー |
15 | msoTextEffect | テキスト効果 |
16 | msoMedia | メディア |
17 | msoTextBox | テキストボックス |
18 | msoScriptAnchor | スクリプトアンカー |
19 | msoTable | 表 |
20 | msoCanvas | 描画キャンバス |
21 | msoDiagram | 図表 |
22 | msoInk | インク |
23 | msoInkComment | インクコメント |
24 | msoSmartArt | スマートアート |
25 | msoSlicer | スライサー |
26 | msoWebVideo | Webビデオ |
27 | msoContentApp | コンテンツアドイン |
28 | msoGraphic | グラフィック |
29 | msoLinkedGraphic | リンクグラフィック |
30 | mso3DModel | 3Dモデル |
31 | msoLinked3DModel | リンク3Dモデル |
Chart.Type
値 | 定数 | 意味 |
---|---|---|
-4098 | xl3DArea | 3-D 面 |
78 | xl3DAreaStacked | 3-D 積み上げ面 |
79 | xl3DAreaStacked100 | 100% 積み上げ面 |
60 | xl3DBarClustered | 3-D 集合横棒 |
61 | xl3DBarStacked | 3-D 積み上げ横棒 |
62 | xl3DBarStacked100 | 3-D 100% 積み上げ横棒 |
-4100 | xl3DColumn | 3-D 縦棒 |
54 | xl3DColumnClustered | 3-D 集合縦棒 |
55 | xl3DColumnStacked | 3-D 積み上げ縦棒 |
56 | xl3DColumnStacked100 | 3-D 100% 積み上げ縦棒 |
-4101 | xl3DLine | 3-D 折れ線 |
-4102 | xl3DPie | 3-D 円 |
70 | xl3DPieExploded | 分割 3-D 円 |
1 | xlArea | 面 |
76 | xlAreaStacked | 積み上げ面 |
77 | xlAreaStacked100 | 100% 積み上げ面 |
57 | xlBarClustered | 集合横棒 |
71 | xlBarOfPie | 補助縦棒グラフ付き円 |
58 | xlBarStacked | 積み上げ横棒 |
59 | xlBarStacked100 | 100% 積み上げ横棒 |
15 | xlBubble | バブル |
87 | xlBubble3DEffect | 3-D 効果付きバブル |
51 | xlColumnClustered | 集合縦棒 |
52 | xlColumnStacked | 積み上げ縦棒 |
53 | xlColumnStacked100 | 100% 積み上げ縦棒 |
102 | xlConeBarClustered | 集合円錐型横棒 |
103 | xlConeBarStacked | 積み上げ円錐型横棒 |
104 | xlConeBarStacked100 | 100% 積み上げ円錐型横棒 |
105 | xlConeCol | 3-D 円錐型縦棒 |
99 | xlConeColClustered | 集合円錐型縦棒 |
100 | xlConeColStacked | 積み上げ円錐型縦棒 |
101 | xlConeColStacked100 | 100% 積み上げ円錐型縦棒 |
95 | xlCylinderBarClustered | 集合円柱型横棒 |
96 | xlCylinderBarStacked | 積み上げ円柱型横棒 |
97 | xlCylinderBarStacked100 | 100% 積み上げ円柱型横棒 |
98 | xlCylinderCol | 3-D 円柱型縦棒 |
92 | xlCylinderColClustered | 集合円錐型縦棒 |
93 | xlCylinderColStacked | 積み上げ円錐型縦棒 |
94 | xlCylinderColStacked100 | 100% 積み上げ円柱型縦棒 |
-4120 | xlDoughnut | ドーナツ |
80 | xlDoughnutExploded | 分割ドーナツ |
4 | xlLine | 折れ線 |
65 | xlLineMarkers | マーカー付き折れ線 |
66 | xlLineMarkersStacked | マーカー付き積み上げ折れ線 |
67 | xlLineMarkersStacked100 | マーカー付き 100% 積み上げ折れ線 |
63 | xlLineStacked | 積み上げ折れ線 |
64 | xlLineStacked100 | 100% 積み上げ折れ線 |
5 | xlPie | 円 |
69 | xlPieExploded | 分割円 |
68 | xlPieOfPie | 補助円グラフ付き円 |
109 | xlPyramidBarClustered | 集合ピラミッド型横棒 |
110 | xlPyramidBarStacked | 積み上げピラミッド型横棒 |
111 | xlPyramidBarStacked100 | 100% 積み上げピラミッド型横棒 |
112 | xlPyramidCol | 3-D ピラミッド型縦棒 |
106 | xlPyramidColClustered | 集合ピラミッド型縦棒 |
107 | xlPyramidColStacked | 積み上げピラミッド型縦棒 |
108 | xlPyramidColStacked100 | 100% 積み上げピラミッド型横棒 |
-4151 | xlRadar | レーダー |
82 | xlRadarFilled | 塗りつぶしレーダー |
81 | xlRadarMarkers | データ マーカー付きレーダー |
88 | xlStockHLC | 高値 - 安値 - 終値 |
89 | xlStockOHLC | 始値 - 高値 - 安値 - 終値 |
90 | xlStockVHLC | 出来高 - 高値 - 安値 - 終値 |
91 | xlStockVOHLC | 出来高 - 始値 - 高値 - 安値 - 終値 |
83 | xlSurface | 3-D 表面 |
85 | xlSurfaceTopView | 表面 (トップ ビュー) |
86 | xlSurfaceTopViewWireframe | 表面 (トップ ビュー - ワイヤーフレーム) |
84 | xlSurfaceWireframe | 3-D 表面 (ワイヤーフレーム) |
-4169 | xlXYScatter | 散布図 |
74 | xlXYScatterLines | 折れ線付き散布図 |
75 | xlXYScatterLinesNoMarkers | 折れ線付き散布図 (データ マーカーなし) |
72 | xlXYScatterSmooth | 平滑線付き散布図 |
73 | xlXYScatterSmoothNoMarkers | 平滑線付き散布図 (データ マーカーなし) |
Author And Source
この問題について(EXCEL オブジェクトを消す(グラフ、図、...)), 我々は、より多くの情報をここで見つけました https://qiita.com/abeichi/items/e63ca2b2c93e76f570bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .