CELLNETS Excel開発の専門会社

ExcelVBA商品マスター存在チェック 初心者あるある 速度向上にも影響する書き方

ExcelVBA初心者あるある
商品マスター存在チェック


言語不問!プログラミンに欠かせない「検索」高速化のコツ。対象範囲を何度もSet格納したら遅いだけ!

みなさん、こんにちは。セルネッツ竹本です。


商品コードを検索キーとして、台帳である商品マスタから「商品名」や「売価」を取得する処理は、データ存在チェックの定番です。

図のような件数ならば、短時間で処理は完了します。

が、もしも大量なレコード数だったら・・・。

◆検索の対象データ範囲に着目すると良い


掲載の図は、検索データ範囲をSet命令でバッファ格納し、商品コードの有無をチェックしています。

問題は、記載のSet命令です。

この検索Moduleをよく見ると、調べるレコードの件数分は毎回Set命令を行うことになります。

20件なら20回。1000件なら1000回。これを繰り返すModuleであることがわかります。

◆Dim変数をPublic型に変えて、一度だけSetで解決

レコード数にかかわらず、検索データ範囲は不変なので、この場合は、一回だけSet命令を使えば、何回でもこの領域を探せるのです。

他の開発言語では、開発チームにより、複数人プロジェクトがからむケースが多いため、「Public変数」は、リスクが高いものと認識されることが多いようです。

が、Excelマクロ開発においては、大規模システムになり得ない、という背景からも、Public変数の恩恵を十分に得られる記述が望ましいと考えます。

◆便利なPublic変数を上手に活用できると、ソース記述が激減

リスク回避には、Call分の名前や、「変数の名前」などから、一発で識別できる命名ルールを採用することです。

これにより、Public活用リスクは減り、可読性、メンテナンス性が向上します。

標準化ガイドラインでは、誰もが同じ書き方で、誰もがソースを解析できるように工夫すると、何よりも「属人化」が防止できます。

退職したAさんじゃないと、危険で改修などできない・・・これは避けたいものです。


関連記事

Excelシステム開発

Excelを複数人で共同編集できるExcel for the webとは?Excelオンラインの共有手順と業務改善事例

更新日:2026年9月5日

Excelシステム開発

販売管理はエクセルで十分?売上管理表・発注管理表の作り方と「限界」の乗り越え方

更新日:2026年9月5日

Excelシステム開発

勤怠管理はエクセルで自動化できる|関数の限界とマクロ活用・事例まで解説

更新日:2026年9月5日

Excelシステム開発

顧客管理はエクセルで十分?管理表の作り方5ステップと「限界」の見極め方をプロが解説

更新日:2026年9月5日

Excelシステム開発

マニュアル作成をエクセルで行う手順5ステップ|見やすく作るコツと「自動化」という選択肢

更新日:2026年9月5日

Excelシステム開発

請求書をエクセルで作る方法|テンプレート・関数・インボイス対応まで解説

更新日:2026年9月5日

Excelシステム開発

エクセルでプルダウン連動・自動入力する方法|値の自動入力とリスト連動をわかりやすく解説

更新日:2026年9月5日

Excelシステム開発

棚卸表を自動計算するエクセルの作り方|コピペで使える関数も解説

更新日:2026年9月5日

Excelシステム開発

エクセルの自動計算とは?設定方法・されない原因・自動計算表の作り方まで完全解説

更新日:2026年9月5日

newsite