一回も披露したことのない豆知識

作業シートに
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("$C$23")) Is Nothing Then
If Range("$C$23").Value = "増築" Then
Call 増築建物規模コピー
End If
End If
End Sub
を設定してます。
指定セル値に「増築」と表示された場合にマクロ「増築建物規模コピー」
が実行されます、
このコードを
指定セルC23に不特定の半角英数字が表示された場合に
マクロ「増築建物規模コピー」が実行できる方法を教えてください。
セルC23の書式設定は
(0.00"㎡";@)としております。
よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    半角英数字とは、ですが、
    ①0~9の数字のみの数字になります。
    試しに下記のコードを設定し
    セルC23に「30」と表示させると
    マクロ「増築建物規模コピー」
    が実行されました。
    If Not Intersect(Target, Range("$C$23")) Is Nothing Then
    If Range("$C$23").Value = "30" Then
    Call 増築建物規模コピー
    End If
    End If
    尚、セルC23の画面上の表示は「30.00㎡」と表示されております。
    よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2025/01/19 13:01

A 回答 (2件)

以下のようにしてください。



Private Sub Worksheet_Change(ByVal Target As Range)
Dim RE As Object
Set RE = CreateObject("VBScript.RegExp")
RE.Pattern = "^\d+$"
If Not Intersect(Target, Range("$C$23")) Is Nothing Then
If RE.test(Range("$C$23").Value) = True Then
Call 増築建物規模コピー
End If
End If
End Sub
    • good
    • 0
この回答へのお礼

親切に教えていただきまして、
ありがとうございます。
全て上手く出来ました。
感謝いたします。

お礼日時:2025/01/19 13:19

半角英数字とは、以下の何れかであってますか。


①0~9の数字
②a~zの文字(小文字)
③A~Zの文字(大文字)


念のためですが、
C23セルに30が設定された場合(数字のみの場合)、「増築建物規模コピー」が実行されますが、あってますか。
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A