- ベストアンサー
英数文字を半角に、カナを全角に変換したい(Excel関数)
Excel関数で、英数カナ文字混在したセルに対して 英数は半角に、カナ文字は全角に変換したいのですが なにかいい方法はないでしょうか? JIS関数、ASC関数では上手くできません。 当方はエクセル駆け出しです。VBAとかを使えば上手くいくのでしょうか?よろしくご教授願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
a1="1234ABCDカタカナデス" と入力されている場合、 B1=XferText(Asc(a1), Jis(a1)) で、英数(!"#$%・・・012・・・ABC・・・abc{|}~)が半角に、その他が全角になります。 ブランクは、変換しません。 Public Function XferText(ByVal strText1 As String, ByVal strText2 As String) As String Dim I As Integer Dim J As Integer Dim L As Integer Dim C As String * 1 Dim strTexts(1) As String Dim strXfer As String strTexts(0) = strText1 strTexts(1) = strText2 For I = 0 To 1 L = Len(strTexts(I)) For J = 1 To L C = Mid$(strTexts(I), J, 1) If I = 0 Then If C >= "!" And C <= "~" Then strXfer = strXfer & C End If Else If Not (C >= "!" And C <= "~") Then strXfer = strXfer & C End If End If Next J Next I XferText = strXfer End Function
その他の回答 (2)
- cockerel
- ベストアンサー率46% (253/548)
正規表現が使用できるエディタを使用すると簡単なのですが、Wordを使ってもできそうです。 ワードの「文章校正の詳細オプション」で、カタカナを「全角に統一」に設定して文章校正を行います。英文字設定を「半角に統一」にすれば、英文字の統一も可能ですが、Wordはあまり賢くないので数字が除外されています。そこで、前処理として文字種を半角に変換しておく必要があります。 作業の自動化という点ではマクロの勝ちですが、ついでに文章の誤りも訂正できるというおまけ付きです(苦しいいいわけ)。
- Itarufox
- ベストアンサー率31% (10/32)
関数ではうまく行かないと思います。 VBAで以下のようなコードを組んでみてください。 使い方は、=HENKAN([セル名]) となります。 ※注意:実際のVBAでは If "ヲ" <= str1 And str1 <= "゜" Then のヲと゜は半角にして下さい。 ********************************************************* Public Function Henkan(ByVal str As String) As String On Error GoTo Err_Henkan Dim i As Long Dim j As Long Dim str1 As String Dim str2 As String j = Len(str) '*** 文字の長さを数えて If j > 0 Then For i = 1 To j str1 = Mid(str, i, 1) '*** 1文字ずつ検査する '*** 半角カタカナなら全角に変換する If "ヲ" <= str1 And str1 <= "゜" Then str1 = StrConv(str1, vbWide) Else '*** 全角英文字なら半角に変換する If "A" <= str1 And str1 <= "z" Then str1 = StrConv(str1, vbNarrow) End If End If str2 = str2 & str1 Next i Henkan = str2 End If Exit Function Err_Henkan: Henkan = str End Function ********************************************************* このコードでは、ハ゜を パに変換するようにまでは、 していませんので御容赦下さい。