こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAでの全角数字と半角数字の判断について

はじめまして、こんにちは。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」という全角数字に対応することができませんでした。
全角文字に対応するにはどうすればよいでしょうか?
よろしくお願いします。

投稿日時 - 2005-06-04 23:17:05

QNo.1429600

すぐに回答ほしいです

質問者が選んだベストアンサー

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

に変更してやればいいです。

投稿日時 - 2005-06-05 01:56:36

お礼

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

投稿日時 - 2005-06-27 21:02:06

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

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



とすれば最小限の変更でいけます。

投稿日時 - 2005-06-05 07:42:19

お礼

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

投稿日時 - 2005-06-27 21:01:40

ANo.1

IsNumeric関数は使えませんか?

投稿日時 - 2005-06-05 00:29:10

お礼

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

投稿日時 - 2005-06-27 21:02:31

あなたにオススメの質問