
ASP(VBScript)での開発をしています。
全角英数記号を、半角英数記号に変換したくて、以下のメソッドを
作りました。
Function FunFullToHalf(ByVal StrTarget)
Dim ObjBASP21
Dim StrHalf
Set ObjBASP21 = Server.CreateObject("basp21")
StrHalf = ObjBASP21.StrConv(StrTarget,8)
FunFullToHalf = StrTarget
End Function
しかし、これだと、全角カタカナまで半角になってしまい、困っています。
回避策を教えていただけないでしょうか。

No.1ベストアンサー
- 回答日時:
だったら関数を自作すれば?
所詮変換の方向が [全角]→[半角] なんだし、変換してもよい文字の一覧が質問者の頭の中にあるんだろうし。
泥臭いけれど、あらかじめ変換候補としている文字の一覧と、変換後イメージの一覧を持っておいて、対象文字列の先頭から順に一文字ずつ変換するって方法。
' 変換してもよい文字の一覧
Const wideList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=_"
' 変換後の文字一覧(変換してもよい文字の一覧と同じ並び、同じ数にしておく)
Const narrowList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=_"
Dim src
src = "Aあア1-ーBk_" ' これを変換する。あアー の3文字以外は変換したい。
Dim dest
dest = conv(src) ' 変換する conv 関数を呼び出す
WScript.Echo dest
' 変換前の文字列を受け取って、変換した文字列を返す
Function conv(aSrc)
Dim returnValue
' ソース文字列を 1文字ずつ取り出す
Dim srcPos
For srcPos = 1 To Len(aSrc)
Dim hit
hit = False
' 変換候補リストを 1文字ずつ取り出す
Dim listPos
For listPos = 1 To Len(wideList)
' 比較して変換候補リストにあればフラグを立てる
If Mid(aSrc, srcPos, 1) = Mid(wideList, listPos, 1) Then
hit = True
Exit For
End If
Next
' フラグが立っていれば変換し、立っていなければソースの文字を使用する
If hit Then
returnValue = returnValue & Mid(narrowList, listPos, 1)
Else
returnValue = returnValue & Mid(aSrc, srcPos, 1)
End If
Next
conv = returnValue
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- マウス・キーボード macからリモートデスクトップでwindowsに接続した際のキーボード配列 3 2023/07/10 08:40
- Android(アンドロイド) 海外のAndroid 端末の場合、日本語全角は、どう表示されるのでしょうか? 1 2022/10/02 21:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
- 地図・道路 クロネコヤマトのメンバーズで番地変更できません 例えば私の家の番地が12-3とかなんですが、そしたら 2 2022/07/10 19:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字コードの%E3%80%とは何です...
-
あるユニコード文字が、あるコ...
-
JISとシフトJIS
-
SJIS->UTF8->SJISコード変換に...
-
html内のカタカナを全て全...
-
改行を含んだ文字列を正規表現...
-
CString から LPCTSTRの型に変換
-
CSVファイルの中で、「 , 」カ...
-
住宅にカナを入力する際に丁目...
-
エクセルで数値を全角文字(カ...
-
IEからEdgeへの移行に伴うIMEの...
-
マッチングアプリで新しくアカ...
-
VBA 文字に半角が含まれて...
-
封筒の宛先で縦書きの書き方
-
マクロを使ってフォルダー内に...
-
文字のマッチングについて
-
カートの送料設定を2個まで1個...
-
コマンドラインスイッチ -pe 's...
-
直前のワードとの間にスペース...
-
Excelについて質問です。 セル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでPDFファイルをMicro...
-
CString から LPCTSTRの型に変換
-
文字コードの%E3%80%とは何です...
-
CString型からdouble型への変換
-
SQLのデータで半角カナを全角に...
-
ローマ字からカナに変換する方...
-
Delphiの型変換
-
VBScript 全角英数記号→半角英...
-
SJIS->UTF8->SJISコード変換に...
-
テキストをhtml変換するには
-
漢数字の変換
-
Encode.pmで「髙」(ハシゴ高)...
-
VBScript文字列をSJISからUTF8...
-
vbwide(半角⇒全角変換)について
-
文字列を quoted-printable 文...
-
エクセルでの漢字(全角ひらが...
-
oracle10g eucのblobをsjisのch...
-
漢字からカタカナ変換マクロ
-
VB6にも「ToString」ってあり...
-
goo blogでyou tube を埋め込む...
おすすめ情報