プロが教える店舗&オフィスのセキュリティ対策術

はじめまして、こんにちは。VBAのプログラムについて教えて欲しいのですが、「ぐう1」のように文字列の一番後ろの数字を削除するプログラムを作成したいです。asc関数を利用して

str="ぐう1234"
StrLenNum = Len(str)
If Asc(Right(str, 1)) >= 48 And Asc(Right(str, 1)) <= 57 Then
str = Left(str, StrLenNum - 1)

としたのですが、これでは
「ぐう1」という全角数字に対応することができませんでした。
全角文字に対応するにはどうすればよいでしょうか?
よろしくお願いします。

A 回答 (3件)

IsNumeric関数は使えませんか?

    • good
    • 0
この回答へのお礼

ご返事遅くなりもうしわけございません。
おかげさまでできるようになりました。
ありがとうございます。

お礼日時:2005/06/27 21:02

If Asc(Right(str, 1)) >= 48 And Asc(Right(str, 1)) <= 57 Then


str = Left(str, StrLenNum - 1)



If Asc(StrConv(Right(str, 1),vbNarrow)) >= 48 And Asc(StrConv(Right(str, 1),vbNarrow)) <= 57 Then

に変更してやればいいです。
    • good
    • 0
この回答へのお礼

ご返事遅くなりもうしわけございません。
おかげさまでできるようになりました。
ありがとうございます。

お礼日時:2005/06/27 21:02

#2さんの回答で問題は解決していますが、



str="ぐう1234"
str=strConv(str, vbNarrow) ←これを追加
StrLenNum = Len(str)



とすれば最小限の変更でいけます。
    • good
    • 0
この回答へのお礼

ご返事遅くなりもうしわけございません。
おかげさまでできるようになりました。
ありがとうございます。

お礼日時:2005/06/27 21:01

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