|
皆さん、おはようございます。
>>
>>確認させて頂きました。カナのみの変換、バッチリですね。
>>新ピカつーるに使わさせて頂くかもしれません。
>
>こんにちは。
>前に半角カタカナの濁音半濁音で、チョンボしたことが合ったんで試してみようとしたら、
>97だと、Enumはコンパイルエラーで動きまへんでした。
Enumステートメントって2000からだったんですねえ・・・。
ちょっとした訂正もあったので、再投稿です。
'===================================================================
'Public Enum kanacnv
' kwide = 4
' knarrow = 8
'End Enum
Dim regEx
'==================================================
Sub main() '全角に変換
Dim rng As Range
Application.ScreenUpdating = False
Set regEx = CreateObject("VBScript.RegExp")
For Each rng In ActiveSheet.UsedRange
With rng
.Value = kana_cnv(.Value, 4)
End With
Next
Set regEx = Nothing
Application.ScreenUpdating = True
End Sub
'=========================================================
Function kana_cnv(cnv_str, w_or_n As Long)
'指定された文字列のカタカナを全角又は、半角に変換する
'input---cnv_str---変換する文字列
' w_or_n 変換指示 4-全角変換 8-半角変換
'output--kana_cnv 変換された文字列
Dim Match, Matches '←これ、中の宣言でよかった
With regEx
If w_or_n = 4 Then
.Pattern = "([。-、]|[ヲ-゚])+" '正規表現をちょっと変更
ElseIf w_or_n = 8 Then
.Pattern = "([ァ-ヶ]|゛|゜|、|。|「|」|ー)+"
Else
Exit Function
End If
.IgnoreCase = True
.Global = True
Set Matches = .Execute(cnv_str)
kana_cnv = cnv_str
If Matches.Count > 0 Then
For Each Match In Matches
.Pattern = Match.Value
.IgnoreCase = False
kana_cnv = regEx.Replace(kana_cnv, StrConv(Match.Value, w_or_n))
If w_or_n = kwide Then kana_cnv = Replace(kana_cnv, "ク", Chr(&H8168))
Next
End If
End With
Set Match = Nothing
Set Matches = Nothing
End Function
これ、「””」や「’」も入れるという仕様だと工夫が必要ですね!!
(今回は、カナということで入れてないですが)
|
|