• ベストアンサー

英数文字を半角に、カナを全角に変換したい(Excel関数)

Excel関数で、英数カナ文字混在したセルに対して 英数は半角に、カナ文字は全角に変換したいのですが なにかいい方法はないでしょうか? JIS関数、ASC関数では上手くできません。 当方はエクセル駆け出しです。VBAとかを使えば上手くいくのでしょうか?よろしくご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.2

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)
回答No.3

正規表現が使用できるエディタを使用すると簡単なのですが、Wordを使ってもできそうです。 ワードの「文章校正の詳細オプション」で、カタカナを「全角に統一」に設定して文章校正を行います。英文字設定を「半角に統一」にすれば、英文字の統一も可能ですが、Wordはあまり賢くないので数字が除外されています。そこで、前処理として文字種を半角に変換しておく必要があります。 作業の自動化という点ではマクロの勝ちですが、ついでに文章の誤りも訂正できるというおまけ付きです(苦しいいいわけ)。

  • Itarufox
  • ベストアンサー率31% (10/32)
回答No.1

関数ではうまく行かないと思います。 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 ********************************************************* このコードでは、ハ゜を パに変換するようにまでは、 していませんので御容赦下さい。