top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(13)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

DeleteShapeNameLike|ワークシート内で指定名を基準にシェイプを全て消去する | Excel VBA

DeleteShapeNameLike|ワークシート内で指定名を基準にシェイプを全て消去する | Excel VBA

<概要 ワークシート内で指定名を基準にシェイプを全て消去

DeleteShapeNameLikeは、指定した名前を基準にしてワークシート上のシェイプを一括削除するためのExcel VBA用の汎用プロシージャです。


シェイプ名の前方一致(Like比較)を利用しているため、「btn_」「img_」「rect_」などの

命名ルールで管理された図形をまとめて削除できます。


図形を多用する帳票やUI付きシートでは、再描画や初期化処理の一環として不要なシェイプを安全かつ簡潔に削除できる点が特徴です。


Excel VBAでシェイプ管理を行う際の定番処理として再利用しやすい構成になっています。


<実行例>

 実行例のサンプルコードは次の通りです

 

上記の実行サンプルを実行すると、まず Stop ステートメントの位置で処理が一時停止します。


この停止状態でワークシートを確認すると、ランダムな位置に 10個の円(楕円)シェイプ が作成されていることが分かります。

これらの円は、シェイプ名がCircle_1Circle_2Circle_3…のように、「Circle_」から始まる命名規則で付けられています。


つまりこの時点では、ワークシート上に「名前付きで管理された円シェイプが複数存在している」状態です。


停止位置の確認
停止位置の確認
円が作図されているのを確認
円が作図されているのを確認

DeleteShapeNameLike による一括削除

停止状態を解除して処理を続行すると、次に DeleteShapeNameLike が呼び出されます。

Call DeleteShapeNameLike(Sheet, "Circle")

この処理では、第2引数で指定した "Circle" を基準に、シェイプ名が「Circle」で始まるすべてのシェイプを対象として削除が行われます。

その結果、

  • ワークシート上に作成されていた円シェイプはすべて削除され

  • セルの内容や、条件に一致しない他のシェイプには一切影響を与えません


「Circle」の名前の付いた図形がすべて消去された
「Circle」の名前の付いた図形がすべて消去された

実行結果のまとめ

このように DeleteShapeNameLike を使用することで、

  • 命名規則に基づいたシェイプを

  • 安全かつ一括で削除する


といった処理を、非常にシンプルなコードで実現できます。

UI部品や図形を多用するシートにおいて、初期化処理・再描画前のクリーンアップとして非常に有効な汎用プロシージャです。


<関連記事>

 今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。

 コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


<コード>


Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page