アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になります

今、資料の英文変換作業において日本語以外を抽出するステートメントで、ウェブから

Sub FindJapaneseRegExp(s, result)
Dim reg As New RegExp
'// 検索条件=日本語以外を抽出
reg.Pattern = "[^ぁ-んァ-ヶ一-龠〃々〆〇。-゚]"

を参考にプログラムを組んでみましたが
ひとつ気になるところが半角カタカナの抽出で[。-゚]がよく理解できていません
よく分からいなので今は[ヲ-ン]で組もうと思っていますが
[。-゚]の間には半角カタカナ以外何が有るか分かりましたら教えてください
またIMAパッド等、どのように調べれば良いのかも知りたいと思っています

まだまだ未熟者で申し訳ございませんが、よろしくお願い申し上げます

A 回答 (1件)

こんばんは。



>まだまだ未熟者で申し訳ございませんが
ご謙遜を(^^; 難易度の高い質問があったりして、もし突っ込まれたらどうしようかとハラハラしながら回答しております。今回は、この方面にはもっと強いひともいるとは思います。

以下は、私の知っている範囲です。

>今は[ヲ-ン]で組もうと思っていますが
半角カタカナ(ちなみに、ここの掲示板は、UTF系だから、半角カタカナOKのはず)
[\uFF66-\uFF9F]

探し方は、やはり、IMEパッドで、Unicodeモードにして拾っていきます。

ただし Unicodeで行うか、SJISで行うかの問題があります。SJISで行う方法は、私は、忘れてしまったのか、うまく出来なくなってしまいました。漢字の範囲は、Unicodeですと、
[一-龠]
他にも、CJK統合漢字、CHK互換漢字、全角数字などがあります。

それから、英文だけなら、日本語関連を含めた2byte 文字の除去ということになるのでしょうか。半角カタカナもUnicodeですから、2byte文字なので除去できるはずです。

'①
Sub RegTest1()
Dim RegEx As Object
Dim enter_text As String
Dim result_text As String
enter_text = "EXCELエクセルエクセルえくせる"
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Global = True: .IgnoreCase = False: .MultiLine = True
.Pattern = "[\uFF66-\uFF9F\u3041-\u3093\u30A1-\u30F6]"
'半角カタカナ,全角ひらがな,全角カタカナ
result_text = .Replace(enter_text, "")
End With
End Sub

'②
Sub RegTest2()
Dim RegEx As Object
Dim enter_text As String
Dim result_text As String
enter_text = "EXCELエクセルエクセルえくせる"
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Global = True: .IgnoreCase = False: .MultiLine = True
.Pattern = "[^\d\w]*"
'ANSI
result_text = .Replace(enter_text, "")
End With
End Sub

'③ 2byte文字から、半角を探す。
Sub TwoByteChrRemoving()
Dim enter_text As String
Dim b() As Byte
Dim result_text As String
Dim i As Long
enter_text = "EXCELエクセルエクセルえくせる"
b() = enter_text

For i = 0 To UBound(b) Step 2
If b(i + 1) = 0 Then
buf = buf & Chr(b(i))
End If
Next i
result_text = buf
End Sub
    • good
    • 1
この回答へのお礼

WindFallerさん、こんにちは
いつもご丁寧にありがとうございます

大変参考になりました
一緒にやっている若い仲間たちにも教えてやりました
幾つになっても教えられることが沢山有ります
これからもよろしくご教授、お願い申し上げます

本当にいつもありがとうございます

お礼日時:2018/11/01 10:34

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