【Excel VBA】シート名がすでに存在するかを調べる

当ページのリンクには広告が含まれている可能性があります。
シート名がすでに存在するか調べる

こんにちは、ユーキです。

今回は、指定した名前のシートが既に存在するかを調べる方法を紹介します。

シート名を変更する際に、同じ名前のシートがあるとエラーになってしまいますので、エラー回避のために使うことができます。

また、シート名を指定してシートを削除する際にも使用することができます。

やり方を知っておくと、きめ細やかなシステムづくりに役に立つこと間違いないです。

目次

重複するシート名が存在するかを調べる

重複するシートが存在するかを調べる方法は2つあります。

全シートをチェックする

一番簡単なのが、対象ブックにあるシートの名前を確認する方法です。

Function IsExistsSheet(shName As String) As Boolean
    Dim sh As Worksheet
    Dim ret As Boolean
    
    ret = False
    
    For Each sh In ActiveWorkbook.Sheets
        
        If sh.Name = shName Then
            ret = True
            Exit For
        End If
    Next
    
    IsExistsSheet = ret

End Function

選択中のWorkbookのシートを1つずつ調べていって、名前が一致すれば、すでに同じ名前のシートがあると判断しています。

シート名を変更する際のエラーを利用する

シート名を変更する際に、すでに同じ名前のシート名が存在すると、エラーになることを利用して、判定が可能です。

Function IsExistsSheet(shName As String) As Boolean
On Error GoTo ErrHandle

    ActiveSheet.Name = shName
    
    IsExistsSheet = False
    Return

ErrHandle:
    IsExistsSheet = True
    
End Function

この方法だと、ActiveSheetのシート名を変更してしまいます。

シート名を変更する際のチェックにはもってこいですが、汎用的に使いたい場合、少し工夫が必要になります。

エラートラップについは、以下の記事を参考にしてください。

まとめ

今回は、シート名がすでに存在するか調べる方法を紹介しました。

Point
  • 全シートチェックする
  • シート名を変更するときのエラーを利用する

少しでもお役に立てば、幸いです。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅好き職業プログラマ。文系大学卒業後、ITソフトウエア開発会社に勤務してプログラミング言語を学ぶ。現在は転職し、プロジェクトマネージャ的ポジションで生産管理システムの開発にあたる。
得意言語は、VB、VB.NET、C#.NET、Java、SQLなど。

目次