Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


54 / 2272 ツリー ←次へ | 前へ→

【13176】文字列は半角英数字かの確認 YamadaSa 17/6/27(火) 16:55 質問[未読]
【13177】Re:文字列は半角英数字かの確認 hatena 17/6/27(火) 21:06 回答[未読]
【13178】Re:文字列は半角英数字かの確認 YamadaSa 17/7/3(月) 19:02 回答[未読]
【13179】Re:文字列は半角英数字かの確認 hatena 17/7/4(火) 10:35 回答[未読]
【13189】Re:文字列は半角英数字かの確認 YamadaSa 17/7/15(土) 18:05 質問[未読]
【13190】Re:文字列は半角英数字かの確認 hatena 17/7/16(日) 14:15 回答[未読]

【13176】文字列は半角英数字かの確認
質問  YamadaSa  - 17/6/27(火) 16:55 -

引用なし
パスワード
   お世話になります。

ユーザー関数を作ろうとしていますが、なかなか進まないです。

作りたい関数:「対象CD」の文字列16桁で、すべて半角英数字かどうかのチェックを行いたいです。

今の方法は、16桁の文字列を16個に分解し、さらに16個の「チェック結果i」を判断しています。あまり効率が良くなくて、一つの関数ができれば、いいかなと思います。ご教示していただけませんか。

チェック結果1: IIf((Asc(Mid([対象CD],1,1))>=48 And Asc(Mid([対象CD],1,1))<=57) Or (Asc(Mid([対象CD],1,1))>=65 And Asc(Mid([対象CD],1,1))<=90),"YES","NO")

【13177】Re:文字列は半角英数字かの確認
回答  hatena  - 17/6/27(火) 21:06 -

引用なし
パスワード
   >作りたい関数:「対象CD」の文字列16桁で、すべて半角英数字かどうかのチェックを行いたいです。


下記の式で英数字のみかどうかチェックできます。

チェック結果: Not [対象CD] Like "*[!0-9A-Z]*"

上記の式で、[対象CD]が英数字のみなら True、英数字以外が含まれていたらFalse になります。


ただしLikeは全角/半角の区別をしないので、全角英数字も許可します。
全角英数字もFalseにしたいなら、下記のように条件を追加します。

チェック結果: Not [対象CD] Like "*[!0-9A-Z]*" AND StrComp(StrConv([対象CD],8),[対象CD],0)=0

あるいは、下記で紹介しているLike演算子代替ユーザー定義関数を使用すれば、

クエリで大文字/小文字、全角/半角を区別して文字列比較をしたい - hatena chips
hatenachips.blog34.fc2.com/blog-entry-399.html

下記のような式で、半角英数字のみのチェックができます。

チェック結果: Not LikeB([対象CD], "*[!0-9A-Z]*")

【13178】Re:文字列は半角英数字かの確認
回答  YamadaSa  - 17/7/3(月) 19:02 -

引用なし
パスワード
   ありがとうございます!

以下のような操作をしますと、式に未定義関数 'LikeB'があります
というメッセージがでます。どこか間違っているのでしょうか?
よろしくお願いします。

チェック結果: Not LikeB([対象CD], "*[!0-9A-Z]*")

【13179】Re:文字列は半角英数字かの確認
回答  hatena  - 17/7/4(火) 10:35 -

引用なし
パスワード
   hatenachips.blog34.fc2.com/blog-entry-399.html

リンク先の説明を読みましたか。

読んでその通りにすればできるはずです。

【13189】Re:文字列は半角英数字かの確認
質問  YamadaSa  - 17/7/15(土) 18:05 -

引用なし
パスワード
   ▼hatena さん:
>hatenachips.blog34.fc2.com/blog-entry-399.html
>
>リンク先の説明を読みましたか。
>
>読んでその通りにすればできるはずです。

hatenachips.blog34.fc2.com/blog-entry-399.htmlを
読みましたが、やはりわかりませんでした。
大変申し訳ありませんが、再度ご指導をいただけませんか?

【13190】Re:文字列は半角英数字かの確認
回答  hatena  - 17/7/16(日) 14:15 -

引用なし
パスワード
   hatenachips.blog34.fc2.com/blog-entry-399.html

のそのままのコピペです。

まず、標準モジュールを新規作成します。名前は、mdlBinaryCompare とします。そこに、下記のコードをコピーして貼り付けます。


Option Compare Binary 'バイナリモードで文字列比較
Option Explicit

Public Function LikeB(s1, s2) As Boolean

  If IsNull(s1 + s2) Then Exit Function
  LikeB = s1 Like s2

End Function

これを保存します。

以上です。

54 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free