Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 同じ名前のシートが存在しないかチェックするユーザー定義関数

同じ名前のシートが存在しないかチェックするユーザー定義関数

対象: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

引数にシート名を指定して、同じ名前のシートが存在していれば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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 同じ名前のシートが存在しないかチェックするユーザー定義関数

「ユーザー定義関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.