- ベストアンサー
全角の英数(0から9、AからZなど)を全て検出したい。
こんにちは。先ほど質問したものです。 EXCELのsheetにセルごとに約300文字、セルの数約150、合計4万5000文字の日本語文章があります。この文章中から全角英数字をすべて検出するプログラミングをお願いしたいのですが、・・ 英数字は半角で入力したつもりですが、精査の必要が生じました。簡易言語か、マクロで検出したいのですが、プログラミングをお願いできればと思います。プログラミングは自分でも経験あります。現在多忙なため時間が取れません。また、しばらくプログラミングをしておらず、時間がかかります。どなたか助けていただければ有難いです。よろしくお願いします。 -- 回答で「置き換え」を使うことをアドバイスいただきましたが、精査の内容を再確認すると、全角英数のすべてでした。一語づずつ処理してもいいのですが、大変ですし、完璧な処理の要求される内容ですので、できれば、一発で処理できるものが欲しいです。 お助けください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ありましたね。 http://kokoro.kir.jp/excel/asc.html Excelの関数でできるようです。 後、もう一つ思いついたのは、一回エクセルからテキスト形式(CSV)に落として、ワードで開きます。そこで、 http://kokoro.kir.jp/word/mojisyu.html 文字種を変換して、CSVを上書き保存。それを、エクセルから開きなおせば、全角->半角の変換ができるはずです。 この二つでダメなら、置き換えをするのが一番確実かつ早いと思います。
その他の回答 (2)
s_husky です。 Err_ChangeToHankaku: isOK= False Resume Exit_ChangeToHankaku End Function 投稿の際に、エラートラップを書き加えましたが Resume文が欠落していました。
お礼
皆さん有難うございます。
Private Sub CommandButton1_Click() Dim isOK As Boolean isOK = ChangeToHankaku(3, 10, 10) End Sub Public Function ChangeToHankaku(ByVal S_Max As Integer, _ ByVal R_Max As Integer, _ ByVal C_Max As Integer) As Boolean On Error Goto Err_ChangeToHankaku Dim isOK As Boolean Dim S As Integer Dim R As Integer Dim C As Integer isOK = True For S = 1 To S_Max For R = 1 To R_Max For C = 1 To C_Max If Len(Worksheets(S).Cells(R, C) & "") > 0 Then Worksheets(S).Cells(R, C) = StrConv(Worksheets(S).Cells(R, C), vbNarrow) End If Next C Next R Next S Exit_ChangeToHankaku: ChangeToHankaku = isOK Err_ChangeToHankaku: isOK= False End Function 一応、これでSheet1、Sheet2、Sheet3の1行から10行の1列から10列の全角英数が半角英数に変換されました。 AHあ123 | AHあ123 ズブの素人ですので、全く、自信はありません。
補足
そうですね、ただ、カタカナまで半角になるのが残念です。 VBAで何とか出来そうな気がするのですが・・・。