重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

作業ブックの「ThisWorkbook」に
下記のコードを設定しております。
このコードは「昇降機【青紙】(表面)」の指定セル「R20」に不特定の文字が表示されないと、警告文が表示され「昇降機質疑」シートに移動できないように設定したコードです。
このコードを
指定セル「R20」に不特定の文字では無く
不特定の半角英数字(8文字)が表示されないとシート移動が出来ないように変更出来る方法を教えてください。
現状のコード
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Name <> "昇降機質疑" Then Exit Sub
Dim ws As Worksheet: Set ws = Worksheets("昇降機【青紙】(表面)")
Dim c As Range
If Not c Is Nothing Or IsEmpty(ws.Range("R20")) Or IsNumeric(ws.Range("R20")) Then
MsgBox "未入力セルがあります、入力しないとシートを移動できません", vbCritical
Application.EnableEvents = False
Sh.Select
Application.EnableEvents = True
End If
End Sub

以上となります。
宜しくお願い致します

A 回答 (1件)

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)


If ActiveSheet.Name <> "昇降機質疑" Then Exit Sub
Dim ws As Worksheet: Set ws = Worksheets("昇降機【青紙】(表面)")
Dim c As Range
Dim re As Object
Set re = CreateObject("VBScript.RegExp")

' 正規表現の設定(半角英数字8文字に一致)
re.Pattern = "^[a-zA-Z0-9]{8}$"
re.IgnoreCase = True

' R20の値を確認
If Not re.Test(ws.Range("R20").Value) Then
MsgBox "セルR20には8文字の半角英数字を入力してください。", vbCritical
Application.EnableEvents = False
Sh.Select
Application.EnableEvents = True
End If
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
早速試させていただきます。

お礼日時:2024/10/16 17:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!