対象:Excel97, Excel2000, Excel2002, Excel2003
ファイル・ワークブックが開かれているかチェックするFunctionプロシージャをご紹介しました。
同様にシートが存在するかチェックをしたい場合もあります。
[スポンサードリンク]
同じ名前のシートが存在しないか調べるFunctionプロシージャ
例えば、ワークシートを挿入してユーザーにシート名を指定してもらうような場合、既に同一名称のシートが存在するとエラーとなってしまうので、これを回避するためです。
▼ワークシートが存在するか調べるユーザー定義関数
Function ExistsSheet(ByVal シート名 As String) As Boolean
Dim sh As Object
For Each sh In Sheets
If UCase(sh.Name) = UCase(シート名) Then
ExistsSheet = True
Exit Function
End If
Next sh
ExistsSheet = False
End Function
Function ExistsSheet(ByVal シート名 As String) As Boolean
Dim sh As Object
For Each sh In Sheets
If UCase(sh.Name) = UCase(シート名) Then
ExistsSheet = True
Exit Function
End If
Next sh
ExistsSheet = False
End Function
引数にシート名を指定して、同じ名前のシートが存在していればTrue、なければFalseを返します。
Functionプロシージャで行っている処理内容
For Each~Nextループの中で、
For Each sh In Sheets
引数に指定されたシート名と同じシートが存在するかを順番に調べて存在していたときにTrueを返して、
If UCase(sh.Name) = UCase(シート名) Then
ExistsSheet = True
Functionプロシージャを抜けています。
Exit Function
途中で抜けることなく最後まで来たときは、同じ名前のシートが存在しないのでFalseを返します。
ExistsSheet = False
[スポンサードリンク]
- Newer:日本語入力のOn/Off切り替えキーを変更する
- Older:スタートメニュー表示を以前のWindowsのように
Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 同じ名前のシートが存在しないかチェックするユーザー定義関数