Excel VBAでシートの存在確認を行う|有ればTRUE,無ければFALSE

シートの存在確認を行うFunctionプロシージャを作成します。




Homeに戻る > Excel シートのTipsへ

例えばVBAでシートにデータを入力する場合、シートが存在しないとエラーになるので、あらかじめ作成しておく必要があります。

その場合の流れは、シートの存在確認を行う、有ればデータを入力する、無ければシートを作成しデータを入力します。

シートの存在確認の方法は下記になります。

  • For Eachでブック内のシートを総当たりで調べる。
  • 指定したシート名が見つかればTRUEを返します。
  • 見つからなければFALSEを返します。

ここではコマンドボタンをクリックすると、C7セルにあるシート名の存在をチェックし、TRUEが返れば「見つかりました。」と表示、FALSEが返れば「見つかりませんでした。」と表示します。

シート関連の「シートのイベント一覧」を掲載しています参照してください。



シートの存在確認を行うVBA

Excel VBA コード

VBAコードの解説

ExSheetexistプロシージャ

  1. ExSheetexistの戻り値をFALSEにセット
  2. For Eachでブック内のシートを1枚づつ取り出す
  3. LCaseで大文字にし、取り出したシート名と引数のシート名が同じかチェックする。
  4. 同じであれば、ExSheetexistの戻り値をTRUEにセットし、ループを抜けます。
  5. 全てのシートをチェックします。

コマンドボタンのクリックイベント

  1. ExSheetexistを呼び出します。
  2. TRUEが返れば「見つかりました。」と表示します、FALSEが返れば「見つかりませんでした。」と表示します。

Option Explicit

'シートの存在チェック
Private Function ExSheetexist(sheetname As String) As Boolean
  Dim tsheet As Object
  
  ExSheetexist = False
  '全シートを順に調べる
  For Each tsheet In ActiveWorkbook.Worksheets
    If LCase(tsheet.Name) = LCase(sheetname) Then
        '同じ名前が見つかれば終了
        ExSheetexist = True
        Exit For
    End If
  Next
End Function

Private Sub CommandButton1_Click()
    '検索シート名を指定し検索
    If ExSheetexist(Range("C7")) Then
        CommandButton1.Caption = "見つかりました。"
    Else
        CommandButton1.Caption = "見つかりませんでした。"
    End If
End Sub



Excelシート画面

「C7」に検索するシート名を入力し、ボタンをクリックします。


シート名「sheet1」を検索します。

見つかった場合のExcelシート

シート存在確認 発見

シート名「sheet100」を検索します。

見つからない場合のExcelシート

シート存在確認 見つからない

Homeに戻る > Excel シートのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved