EXCEL オブジェクトを消す（グラフ、図、...）

#Background

VBAでグラフを作る、グラフが固定数であればデータを書き換えて再描画できるが、グラフ数が変わるような場合、前回作ったグラフを消して作る必要がある。
シートには棒グラフと、散布図があり、散布図のみ消したい。
散布図を描くレンジ（セルの場所）は決まっている。

##Investigation

オブジェクトの一覧は取得可能
グラフの種類は判定できる
名前に細工すれば消したいオブジェクトを特定できる

出来るだけ少ないステップ数で実現したい
.Select(レンジ).delete
.Select("グラフ種類").delete

オブジェクトの名前は一意でなくて構わない
オブジェクト一覧はシート毎に取得可能
レンジ（セル位置）を指定してオブジェクトを取得する方法は見つけられなかった

## What to do
他に方法が見つからなかったので名前で回すことにした。残念
オブジェクトの種類（グラフ）、グラフのタイプ（散布図）など判定できるが、今回は名前のみで消すことにする。
VBAで作ったオブジェクトなので名前は指定できる、グラフをコピーされるなどすると名前が”グラフ１”のように変更されるのでVBAで作成されたグラフのみ消すことができる。

## Sample

``` sample_delete.vbs
'// 表示しているシートで名前が _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
```

おまけ散布図の名前変更

``` sample_name.vbs
'// グラフ　散布図の名前を _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|平滑線付き散布図 (データ マーカーなし)|