• ベストアンサー

全角の英数(0から9、AからZなど)を全て検出したい。

こんにちは。先ほど質問したものです。 EXCELのsheetにセルごとに約300文字、セルの数約150、合計4万5000文字の日本語文章があります。この文章中から全角英数字をすべて検出するプログラミングをお願いしたいのですが、・・ 英数字は半角で入力したつもりですが、精査の必要が生じました。簡易言語か、マクロで検出したいのですが、プログラミングをお願いできればと思います。プログラミングは自分でも経験あります。現在多忙なため時間が取れません。また、しばらくプログラミングをしておらず、時間がかかります。どなたか助けていただければ有難いです。よろしくお願いします。 -- 回答で「置き換え」を使うことをアドバイスいただきましたが、精査の内容を再確認すると、全角英数のすべてでした。一語づずつ処理してもいいのですが、大変ですし、完璧な処理の要求される内容ですので、できれば、一発で処理できるものが欲しいです。 お助けください。

質問者が選んだベストアンサー

  • ベストアンサー
  • betagamma
  • ベストアンサー率34% (195/558)
回答No.1

ありましたね。 http://kokoro.kir.jp/excel/asc.html Excelの関数でできるようです。 後、もう一つ思いついたのは、一回エクセルからテキスト形式(CSV)に落として、ワードで開きます。そこで、 http://kokoro.kir.jp/word/mojisyu.html 文字種を変換して、CSVを上書き保存。それを、エクセルから開きなおせば、全角->半角の変換ができるはずです。 この二つでダメなら、置き換えをするのが一番確実かつ早いと思います。

noname#18526
質問者

補足

そうですね、ただ、カタカナまで半角になるのが残念です。 VBAで何とか出来そうな気がするのですが・・・。

その他の回答 (2)

noname#22222
noname#22222
回答No.3

s_husky です。 Err_ChangeToHankaku:   isOK= False   Resume Exit_ChangeToHankaku End Function 投稿の際に、エラートラップを書き加えましたが Resume文が欠落していました。

noname#18526
質問者

お礼

皆さん有難うございます。

noname#22222
noname#22222
回答No.2

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 ズブの素人ですので、全く、自信はありません。

関連するQ&A