Vba: シートが存在するかどうかを確認する方法 (例あり)
VBA で次の関数を作成して、現在アクティブな Excel ワークブックに特定のシートが存在するかどうかを確認できます。
Function sheetExists(some_sheet As String) As Boolean
On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)
End Function
この関数はTRUEまたはFALSEを返し、現在アクティブな Excel ワークブックに特定のシート名が存在するかどうかを示します。
この関数は、シートのインデックス番号が 0 より大きいかどうかを単にチェックするだけであることに注意してください。
シートが存在する場合、シート インデックス番号の値は少なくとも1になり、関数は値TRUEを返します。
次の例は、この関数を実際に使用する方法を示しています。
例: VBA を使用してシートが存在するかどうかを確認する
次の 3 つのシートを含む Excel ワークブックがあるとします。
VBA で次の関数を作成して、このブックに特定のシート名が存在するかどうかを確認できます。
Function sheetExists(some_sheet As String) As Boolean
On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)
End Function
次に、現在アクティブなシートのセルA1に次の数式を入力して、シート名「Teams」がこのブックに存在するかどうかを確認します。
=sheetExists("Teams")
次のスクリーンショットは、この式を実際に使用する方法を示しています。
このシート名はワークブックに存在するため、関数はTRUEを返します。
また、この関数では大文字と小文字が区別されないことに注意してください。
たとえば、シート名「teams」が存在するかどうかを確認すると、関数はTRUEも返します。
ただし、シート名「coaches」が存在するかどうかを確認するとします。
このシート名はワークブックに存在しないため、関数はFALSEを返します。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: ワークブック内のシート数を数える方法
VBA: 別のブックからデータを抽出する方法
VBA: 複数行を挿入する方法