【VBA】特定のブックにシートが存在するか調べる関数

指定したシートが存在するか調べるには、「ループ処理でシート名を調べる方法」と「オブジェクト変数を使って調べる方法」の2つがあります。

よく使う機能なので関数化しています。シート名だけでなくブック名も指定可能としています。

ループ処理でシート名を調べる

ループ処理で、対象のワークブックにあるシートを1つずつ調べていきます。

その時、シート名を比較することでシートが存在するかチェックしています。

コード

引数

checkBookNm シートを探す対象のブック名
checkSheetNm 存在するか調べるシート名

戻り値

True シートが存在する
False シートが存在しない

使い方

ブック「住所録.xlsx」に、シート「営業1課」が存在するか調べています。

存在する時は「シートは存在するよ」、存在しない時は「シートは存在しないよ」とメッセージを表示していますが、実際にプログラミングをする時は、具体的な処理をコーディングしてください。

 

オブジェクト変数を使って調べる

オブジェクト変数に、存在するかチェックするシートを格納して調べます。

この時「シートが存在しないと、オブジェクト変数に格納できずにNothingになる」ことを利用して、シートが存在するか調べています。

ループで1つずつ調べるのがナンセンスに感じる人は、少し上級テクニックになりますが、こちらの方法がおすすめです。

オブジェクト変数がよくわからない人は「シートをとりあえず保存する場所」くらいの認識でOKです。

コード

引数、戻り値は最初に説明した「ループ処理でシート名を調べる方法」と同じです。
関数名はIsExistSheet_Loop、IsExistSheet_Objectと違います。

引数

checkBookNm シートを探す対象のブック名
checkSheetNm 存在するか調べるシート名

戻り値

True シートが存在する
False シートが存在しない

使い方

ブック「住所録.xlsx」に、シート「営業1課」が存在するか調べています。

 

関連記事

VBAテクニック辞典
成果を出す5つのポイント
タイトルとURLをコピーしました