|
▼あやか さん:
おじゃまします
>エクセルのCell内に文字が入力された際
>以下の様な変換を行いたいと思いますが、
>
>「abcカタカナ」 ⇒ 「ABCカタカナ」
>
>英数字は半角英数字に、半角カタカナが入力された際は
>全角カタカナに。
チェックするシートのシートモジュール(のChangeイベント)に
こんな風に書いておいて、
セルに入力があったとき、
(1)全角英数部分は半角の大文字に、
(2)半角カタカナは 全角カタカナに
変換させることもできそうです。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim ss As String, m
With CreateObject("VBScript.RegExp")
.Pattern = "[\uFF65-\uFF9F]+"
.Global = True
For Each c In Target
If Len(c.Value) Then
ss = Format$(Application.Asc(c), ">") '英数部→半角大文字に
If .Test(ss) Then '半角カタカナ部分→全角カタカナに
For Each m In .Execute(ss)
ss = VBA.Replace(ss, m, StrConv(m, vbWide))
Next
End If
Application.EnableEvents = False
c.Value = ss
Application.EnableEvents = True
End If
Next
End With
End Sub
|
|