Excel VBAに躓いています(><)
(For文×)IF文を使用して
シート名が一致したら(存在します)と表示したいのですが、下記の⭐︎でエラーがでます。
記述の仕方がわかりません。泣
————————————————————————-
Sub 検索()
Dim name as string
name = InputBox”名前を入力”
⭐︎If Sheets(name) < > name then
MsgBox”存在します”
Eelse
MsgBox”存在しません”
End If
End sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは!
横からお邪魔します。
すでに的確な回答が出ていますので、参考程度で・・・
単にシートが存在するかどうか?だけでよいのですね。
Sub Sample1()
Dim k As Long
Dim sN As String
Dim myFlg As Boolean
sN = Application.InputBox("検索シート名を入力")
For k = 1 To Worksheets.Count
If Worksheets(k).Name = sN Then
myFlg = True
Exit For
End If
Next k
If myFlg = True Then
MsgBox "【" & sN & "】シートあり"
Else
MsgBox "【" & sN & "】シートなし"
End If
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.2
- 回答日時:
存在の有無をエラートラップで。
Sub 検索_2()
Dim WS_Name As String, WS As Worksheet
WS_Name = InputBox("名前を入力")
On Error Resume Next
Set WS = Worksheets(WS_Name)
On Error GoTo 0
If Not WS Is Nothing Then
MsgBox "存在します"
Else
MsgBox "存在しません"
End If
Set WS = Nothing
End Sub
No.1
- 回答日時:
こんばんは、
色々と問題がありそうですが、If Sheets(name) < > name then は名前を比較している事にはなりません。
Sheets(name)は、シートオブジェクトそのものです。
Sheets(1).Name とかActiveSheet.Nameとか、、
あと、シート名が一致したら であるなら If Sheets(name) = name then になります
もっとも、Eelseタイプミス?(Else)の後が MsgBox ”存在します” ならそのままでも良いのですが。。
さらに、1つのシートに対して名前のあるなしを調べるのは、あまり意味がないと思います。
何かの課題か何かでしょうか?
サンプルを示しますが、鵜呑みにせず、ちゃんとコードを調べて理解してくださいね。
Sub 検索()
Dim Search_Name As String ’プロパティにあるnameを変数にするのは好ましくないので変えました
Dim sh As Worksheet ’変数shがWorksheetであることを宣言
Search_Name = InputBox("名前を入力") ’ご質問には()がないけど、、通り
For Each sh In Worksheets ’ブックにあるすべてのシートをループ
If sh.Name = Search_Name Then ’シート名とキーワードを比較、条件分岐
MsgBox "存在します" ’条件で=にしているので見つかった場合に実行される
Exit Sub ’見つかった場合、さらなるプロセスは不要なので終了する
End If ’条件分岐終了
Next ’次のシートへ
MsgBox "存在しません" ’すべてのシートを実行したのちにExit Subが実行されなかったので存在しないと言う結論
End Sub
InputBoxについては、追加すべきプロセスがありますが、調べて追加してください。
ありがとうございます(><)
比較にならないですね...
詳しく記述してくださり感謝します。
サンプルとても参考になりました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
Excelマクロのエラーを解決した...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
実行時エラー1004「Select メソ...
-
同じ作業を複数のシートに実行...
-
実行時エラー'1004': WorkSheet...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
VBAでオブジェクト変数にsetし...
-
VBA 最終行まで数式をコピーする
-
エクセルVBA Ifでシート名が合...
-
VBA 検索して一致したセル...
-
ブック名、シート名を他のモジ...
-
Excel マクロについての相談
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報