- ベストアンサー
エクセル上で英数のみを半角するにはどうしたらいいでしょうか?
エクセル上で、英数のみを全角から半角にするソフトはあるでしょうか? 英数・カナ・記号・スペースまで一括に半角にするものや、英数でも日本文の中の英数1文字は半角にしないものなどは見つけることができたのですが、英数だけをすべて半角にするものは見つけられません。 何かいいものがありましたら教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんなマクロでいけるかと思います。 Public Sub Convert() Dim s As String Dim c As String Dim i As Integer Dim cell As Range If Not (TypeOf Selection Is Range) Then Exit Sub For Each cell In Selection.Cells s = cell.Value For i = 1 To Len(s) c = Mid(s, i, 1) If IsWideAlphabet(c) Or IsWideNumber(c) Then Mid(s, i, 1) = StrConv(c, vbNarrow) End If Next i cell.Value = s Next End Sub Private Function IsWideAlphabet(c As String) As Boolean IsWideAlphabet = Asc("A") <= Asc(c) And Asc(c) <= Asc("Z") _ Or Asc("a") <= Asc(c) And Asc(c) <= Asc("z") End Function Private Function IsWideNumber(c As String) As Boolean IsWideNumber = Asc("0") <= Asc(c) And Asc(c) <= Asc("9") End Function
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
#2のお礼に関して。 (1)私も少数例ですが、テストして確認済みで上げてます。 (2)A列に全角データがあり、C列に半角データをセットしてます。C列は意味ありません。B列はASC関数で使ってたので。 (3)英数は大文字・小文字、全角・半角が見て判別し難いとは思いますが。 (4)ロジックに付いては何度も使っているので (5)私の凡ミスがあるかも知れませんが、それも含めて 見つけて直して修正していただくことが出来ないと、使っていただくのはむりですかね。
お礼
意味がわかりました。 私のエクセルには複数列入力したあったので、A列がC列にコピーされたわけですね。 A列だけ入力してみたら、C列にちゃんと半角が出ました。 素人なもので、理解できなくて申し訳ありませんでした。 詳しく説明してくださりありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
ASC関数はカナも半角にするようです。 もしそれが都合悪ければ、英数だけなら、半角と全角が1対1対応なので(ぱのパのように1文字が2文字になることが無いので) 標準モジュールに貼りつけて実行して見てください。 Sub test01() d = Range("A65536").End(xlUp).Row MsgBox d a = "1234567890abcdefghjiklmnopqrstuvwxyz" & _ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" b = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" For j = 1 To d t = "" For i = 1 To Len(Cells(j, "A")) 'A列の文字を変換 s = Mid(Cells(j, "A"), i, 1) For k = 1 To Len(a) If s = Mid(a, k, 1) Then t = t & Mid(b, k, 1) GoTo p02 Else End If Next k t = t & s p02: Next i Cells(j, "C") = t 'C列にセット Next j End Sub
お礼
回答ありがとうございます。 私のやり方が悪いのか、なぜかA列がC列にコピーされるだけであとは変りません。 何がいけないのでしょうか?
- heycha
- ベストアンサー率20% (16/78)
ASC関数はダメですか?
お礼
早速の回答ありがとうございます。 素人に近い方なので、ASC関数がどんなものかよくわらかないのですがこれはカナ・記号・スペースなども半角になりませんか?
お礼
ありがとうございました。 私にもできました。 とても感激しております。 本当にありがとうございました。