質問: Sheets("レポート") Then MsgBox "一致している" Else MsgBox "一致してない" End If End Sub ``` ただこのまま実行してもエラーで438が返ってきます。 現状シートの取得が間違っているかif文の条件一致の文法ミスかわからない状態です。 指定のシートを取り出し取り出したものと一致してるかどうかのプログラムをif文の理解とシート取得の理解を深めるために教えて頂きたいです。 宜しくお願い致します。 参考にした記事 シート取得:https://www.tipsfound.com/vba/10001 if文:https://www.fastclassinfo.com/entry/excel_vba_if OS:macOS Catalina バージョン10.15.3 Excelバージョン: Microsoft Excel for Mac バージョン16.39
回答: オブジェクトを比較するときは、 Is演算子を使います。 ``` Sub test() Const s As String = "Sheet2" Dim ws As Worksheet Set ws = Worksheets(s) If ws Is Sheets(s) Then MsgBox "一致している" Else MsgBox "一致してない" End If End Sub ``` もちろんシート名(文字列)で比較するのもありです。 両方知っておいた方がいいと思います。 比較対象がセルだとIs演算子で比較してもTrueにならないので、 セルアドレス(文字列)で比較します。 ``` Sub test2() Dim c As Range Dim flg As Boolean Set c = Range("A1") If c Is Range("A1") Then flg = True Else flg = False End If MsgBox CStr(flg) End Sub ``` なんでかはネットで検索願います。