- 締切済み
エクセル 全角から半角に変換 マクロ
エクセルでシートの上すべてのカタカナ、ひらがな、漢字、スペースを全角から半角に変換するマクロを教えてください。 アルファベットは残したいです。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- SI299792
- ベストアンサー率47% (772/1616)
シートの上すべてですか。 ひらがな、漢字には半角がありません。フリガナを使いました。 値が入っているセルが対象です。関数等が入っているセルは対象外です。 フリガナの入っていない漢字(他からコピペした等)は漢字のままです。 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)
#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)
>ひらがな、漢字 には、半角文字(突き詰めて言えば、文字コード)は、(現在、存在するどんな文字コード体系でも)作られてないはず。 そんなレベルで、マクロを言うのは、早すぎると思う。 ーー 見た目は何も不便はないのだろうが、その先に何かしたいことがあるのでは? それを直截的に表現して質問したら、なーんだ、それか、となりそうな気もする。 ーー http://officetanaka.net/excel/vba/function/strconv.htm などを見れば、VBAで使う文字種の変換の、関数があるが、こんな知識で役立つかな? 「vbNarrow 8」でやってみたら 。 Sub test01() x = StrConv(Range("A1"), 8) MsgBox x End Sub A1セルに全角漢字入れて、実行すると、そのまま、が返ってきた。
- _kappe_
- ベストアンサー率68% (1581/2304)
ひらがなや漢字はそもそも半角に変換できませんし、カタカナも半角に変換できない文字があります。
補足
Run-time error 5: Invalid procedure call or argument とエラーになります デバックを押すと x = StrConv(Range("A1"), 8)の部分にカラーが付いています