重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (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
    • good
    • 0

正規表現が使用できるエディタを使用すると簡単なのですが、Wordを使ってもできそうです。


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

関数ではうまく行かないと思います。


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
*********************************************************

このコードでは、ハ゜を パに変換するようにまでは、
していませんので御容赦下さい。
    • good
    • 0

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