• 締切済み

エクセル 全角から半角に変換 マクロ

エクセルでシートの上すべてのカタカナ、ひらがな、漢字、スペースを全角から半角に変換するマクロを教えてください。 アルファベットは残したいです。

みんなの回答

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.4

シートの上すべてですか。 ひらがな、漢字には半角がありません。フリガナを使いました。 値が入っているセルが対象です。関数等が入っているセルは対象外です。 フリガナの入っていない漢字(他からコピペした等)は漢字のままです。 Option Explicit ' Sub Macro1()   Dim Cell As Range   Dim OutData As String   Dim Start As Integer   Dim Char As String '   For Each Cell In Cells.SpecialCells(xlCellTypeConstants)     OutData = "" '     For Start = 1 To Len(Cell.Phonetic.Text)       Char = Mid(Cell.Phonetic.Text, Start, 1) '       If Char < "A" Then         Char = StrConv(Char, vbNarrow)       End If       OutData = OutData & Char     Next Start     Cell = OutData   Next Cell End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#2です。 私がやってみたのは A1:A7セルに 東京都 アオキ ’123 くろだ 123 ABC ああ を手入力し、 Sub test01() For i = 1 To 7 'x = StrConv(Range("A1"), 8) 'x = StrConv(Range("A4"), 8) x = StrConv(Cells(i, "A"), 8) MsgBox x Next i End Sub を実行すると、 全角カタカナ、全角数字、全角英字の例では半角の文字になる(で表示される)が、漢字などは、元のままで、半角化しない。もともと存在しないのだから。それを言いたかっただけです。 質問の通りは、出来ないことの関連を述べただけで、「やれる」ーー>そして、その答えでは 全くない.もう、こんな話は打ち切りにしたい。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>ひらがな、漢字 には、半角文字(突き詰めて言えば、文字コード)は、(現在、存在するどんな文字コード体系でも)作られてないはず。 そんなレベルで、マクロを言うのは、早すぎると思う。 ーー 見た目は何も不便はないのだろうが、その先に何かしたいことがあるのでは? それを直截的に表現して質問したら、なーんだ、それか、となりそうな気もする。 ーー http://officetanaka.net/excel/vba/function/strconv.htm などを見れば、VBAで使う文字種の変換の、関数があるが、こんな知識で役立つかな? 「vbNarrow  8」でやってみたら 。 Sub test01() x = StrConv(Range("A1"), 8) MsgBox x End Sub A1セルに全角漢字入れて、実行すると、そのまま、が返ってきた。

nakanakaokwave
質問者

補足

Run-time error 5: Invalid procedure call or argument とエラーになります デバックを押すと x = StrConv(Range("A1"), 8)の部分にカラーが付いています

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

ひらがなや漢字はそもそも半角に変換できませんし、カタカナも半角に変換できない文字があります。