Poker online Indonesia コミュニティの成長により、プレイヤー同士が情報を共有し、おすすめのプラットフォームを見つけやすくなっています。SNSグループ、フォーラム、オンラインコミュニティは、ユーザーの選択や好みに大きな影響を与える重要な存在です。こうした議論の中では、インタラクティブな機能や競争性の高いゲームプレイで知られるプラットフォームを紹介する際に、login Nirwanapoker が頻繁に取り上げられています。

Toto Macau コミュニティでは、さまざまな形式や結果について活発な情報交換が行われています。こうした議論の中で、live draw macau は詳細なデータや最新情報を確認するための重要な話題として取り上げられています。これらの情報は、利用者が最新の動向を把握しながら、整理されたデータをより効率的に活用するのに役立っています。

成功するゲーミングプラットフォームは、信頼性、優れたユーザー体験、そして豊富なゲームラインナップによって支えられています。idnslot は、直感的で使いやすいインターフェースを提供し、プレイヤーがスムーズにコンテンツへアクセスできる環境を実現しています。また、slot online プラットフォームはさまざまなデバイス向けに最適化されており、スマートフォン、タブレット、デスクトップパソコンのいずれを利用する場合でも、いつでも安定した快適なゲーム体験を楽しむことができます。

Bagi penggemar permainan kartu online, idn poker menjadi salah satu istilah yang cukup dikenal dan banyak dicari ketika ingin memperoleh informasi mengenai permainan poker. Pemain dapat mempelajari berbagai aspek dasar, seperti aturan permainan, kombinasi kartu, posisi pemain, serta istilah yang umum digunakan agar lebih memahami mekanisme permainan secara menyeluruh.

situs slot online menjadi salah satu istilah yang banyak digunakan ketika mencari informasi mengenai permainan slot melalui internet. Sebelum memilih sebuah platform, pengguna sebaiknya memahami terlebih dahulu cara kerja permainan, informasi layanan, keamanan situs, serta ketentuan yang berlaku di wilayah masing-masing.

VBA 【コピペで使える!】シートの存在を確認してから削除や追加するコード!

この記事は約5分で読めます。

VBA シート存在確認

どうもマサヤです!

今日は、VBAでシートの存在を確認してから削除や追加をするコードを紹介します。

再利用できるようにシート名を指定するだけで使えるようにしています。

「コード説明は不要だよ~ サクッとコードだけ知りたい!」

そういうあなたは、目次の【これをコピペ!】・・・をクリックしてくださいね。

 

スポンサーリンク

シートの存在確認はFor Eachは使わず、例外処理で!

 

下記コードのように、一般的なシートの存在確認はFor Eachを使い、全シートをループさせて目的シートがあるかを確認します。

Sub SheetExists()

Dim s As Worksheet
Dim find_name As String
Dim flg As Boolean

find_name = "Sheet1"

For Each s In ThisWorkbook.Worksheets
    If s.Name = find_name Then
        flg = True
        Exit For
    End If
Next

If flg = True Then 'Trueならシート存在している
    Debug.Print find_name & "は存在しています。"
End If

End Sub

これでも問題ありませんが、多数のシートがある場合ちょっと遅くなります。

そこで今回紹介するコードでは、例外処理の特性を使ってシートの存在確認をしています。

このコードであればピンポイントで目的シートの存在確認ができ無駄がありません。

 

例外処理を使ったシート存在確認のコード

 

例外処理を使ったコードはこちらです!

Sub SheetExists()

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook

On Error Resume Next
Set ws = wb.Worksheets("Sheet1") '←存在確認したいシートを指定
On Error GoTo 0

If Not ws Is Nothing Then 'Nothingならシートが存在しない
    Debug.Print ws.Name & "は存在しています"
End If

End Sub

この手法はStack OverflowでTim Williamsさんが紹介しているコードです。

 

コードのポイント

このコードのポイントは2つです。

① On Error Resume Next を使うことで、set ws = wb.Worksheets(“Sheet1”) でエラーが発生しても、次のコードを実行させています。

② Not ws in Nothingを使うことで、wsがNothing(存在していない)でも、エラーなく処理されるようにしています。

 

スポンサーリンク

【これをコピペ!】煩雑にしないため関数にしました

 

上記のコードをメイン関数と同じにすると、例外処理が煩雑になります。

別で関数化したほうが間違いなく使いやすいので2パターンの関数を作成しました!

  • シートの存在確認だけするコード
  • 追加や削除もしてくれるコード

お好きにコピペしてお使いください。

 

シートの存在を確認するコード

Function SheetExists(name As String) As Boolean

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook

On Error Resume Next
Set ws = wb.Worksheets(name)
On Error GoTo 0

SheetExists = Not ws Is Nothing

End Function

 

説明不要かと思いますが、下記コードにて実行できます。

flg = SheetExists("Sheet5") '  ←存在確認したいシートを指定

戻値がTrueならシートが存在している、 Falseならシートが存在していない。

 

シートの削除・追加もしてくれるコード

Sub SheetExistsToDeleteAndAdd(name As String)

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook

On Error Resume Next
Set ws = wb.Worksheets(name)
On Error GoTo 0

If Not ws Is Nothing Then 'Nothingならシートが存在しない
Application.DisplayAlerts = False
ws.Delete 'シート削除
Application.DisplayAlerts = True
End If

wb.Worksheets.Add(Worksheets(1)).name = name '一番手前にシート追加して、シート名を変更

End Sub

VBAを実行する度にシートの削除・作成(初期化に近い)をしたい場合に使えます。

あと、関数名がダサいのでアナタの好きな名前に変えてください)笑

 

まとめ

 

いかがでしたでしょうか?

シート数が多い場合はこちらのコードのほうが便利で速いですよ。

よければ、使ってみてくださいね!

 

コメント