Softex Celware

ExcelVBA専門技術ブログ

中級者向けVBA課題 No.12 (シート内の名前定義一覧表示と削除)

概要

今回も「実装出来たら便利!」って問題

 

↓課題内容

 

セルの名前定義は

  • VBAからセルを参照において、セルが移動しても処理に影響しない
  • 定義範囲のセルに行・列が挿入、消去で範囲が変わっても定義範囲がついてきてくれる。

などのメリットがありますが、

  • 定義位置が後でわかりづらくなる。
  • Excel標準機能の「名前の管理」機能が使いづらい

などのデメリットがあります。

 

 動画のユーザーフォームは、

  • 表示しているシート内のセル名前定義を一覧(ListBox)で表示する
  • 一覧において特定の名前定義をクリックするとそのセル範囲を選択する
  • 一覧表示の頭には定義範囲が「S:シート内」「B:ブック内」で表示される
  • 「消去」で名前定義を消去が可能
  • 選択した名前定義で「Delete」キーで名前定義の消去が可能

のような操作ができるような設計になっています。

標準機能の「名前の管理」を実務で必要な機能に絞って、より使いやすく設計している感じです。

 

実装のポイント

下記項目をクリアすれば同じようなものが作れます。

詳細はググるなり、今時なら生成AIに聞けば答えが出てくるので詳細の解説は行いません。

  • ユーザーフォームにおけるコマンドボタン、リストボックスの扱い方
  • リストボックスでの一覧から選択時の処理
  • シート内のセル名前定義一覧取得と、定義範囲の取得
  • リストボックスでの選択時のキーボード操作(Deleteキー)での処理実行

 

コード

実装したユーザーフォームにおけるVBAのコードだけ抜粋します。 

frm名前定義一覧 · GitHub

 

頂いた回答

今回も回答をいただきました。毎度ありがとうございます!

 

前回課題

softex-celwear.hatenablog.com

次回課題

softex-celwear.hatenablog.com

PR

ExcelVBAでのツール開発を承っております。(対応実績350件以上 2023.8月)

お気軽にご相談ください。

coconala.com