- ベストアンサー
Excelの置換について
Excelにおいて、全角英数字で入力されている文字列を一括して半角英数字に変えたいのですが、どうすればいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
遅くなりました。修正サンプルマクロを作ってみました。以下のように操作してみて下さい。 1.新規ブックを開き、ALT+F11を押してVBE(Visual Basic Editor)画面を表示させる。 2.VBE画面左上にあるVBAProjectと書かれている下のSheet1にマウスをあわせ、ダブルクリックする。 3.下記のコードをVBE画面右の白い部分にコピー・ペーストする。 Private Sub CommandButton1_Click() Dim myStr As String Dim myRange As Range myStr = Range("A1").CurrentRegion.SpecialCells(xlCellTypeLastCell).Address For Each myRange In Range("A1:" & myStr) myStr = Left(myRange.Value, 1) Select Case myStr Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" myRange.Value = StrConv(myRange.Value, vbNarrow) Case "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" myRange.Value = StrConv(myRange.Value, vbNarrow) Case "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z " myRange.Value = StrConv(myRange.Value, vbNarrow) End Select Next End Sub 4.ALT+F11を押し、Sheet1を表示させる。 5.メニューバーの中にある表示→ツールバー→コントロールツールボックスを順にクリック。 6.ダイアログボックスの一番右の上から2番目にコマンドボタンがあるのでそれをクリック 7.シートの適当な位置をクリックするとコマンド場短が貼り付けられる。 8.ダイアログボックスの一番左上にある三角定規のマークをクリックする。 この状態で、コマンドボタンをクリックしてみて下さい。カタカナとひらがな以外の文字が半角に変換されると思います。 不都合な点がありましたら、またお知らせ下さい。
その他の回答 (3)
- kamonohashi
- ベストアンサー率26% (73/271)
置換じゃないのですが、 関数をつかって半角英数に直したものを張り付ける というのはどうでしょう。 =ASC(文字列) これで半角になります。 後はコピーして値のみ貼り付けして終わりです。
お礼
参考になります。ありがとうございます。
- imogasi
- ベストアンサー率27% (4737/17069)
(操作) 編集-置換で「検索する文字列」に複数文字指定が出来れば良いが、出来ないと思う。 (関数) 全セルを対象に式を設定する必要が出てくるが不可能。 自分自身のセル値を使って、変換し自分のセルに戻すことは 出来ない。元の式が崩れる。 (VBA)既に#1でご解答がありますが、VBAらしく、短く考えました。「置換」のマクロの記録を改造。 Sub test01() z = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" For i = 1 To 26 Cells.Replace What:=Mid(z, i, 1), Replacement:=Chr(96 + i), LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False Next i '---- z = "0123456789" For i = 1 To 10 Cells.Replace What:=Mid(z, i, 1), Replacement:=Chr(47 + i), LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False Next i End Sub (OKWEBで強制改行される行がありますが元に戻してください。元は13行です。)
お礼
ありがとうございます。 とても参考になりました。
- kazuhiko5681
- ベストアンサー率49% (79/159)
はじめまして。次の様に操作してみて下さい。 1.新規ブックを開き、ALT+F11を押してVBE(Visual Basic Editor)画面を表示させる。 2.VBE画面左上にあるVBAProjectと書かれている下のSheet1にマウスをあわせ、ダブルクリックする。 3.下記のコードをVBE画面右の白い部分にコピー・ペーストする。 Private Sub CommandButton1_Click() Dim myColumn As Integer Dim myRow As Long Dim i As Integer Dim j As Long myColumn = Cells(1, Columns.Count).End(xlToLeft).Column myRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To myColumn For j = 1 To myRow Cells(j, i).Value = StrConv(Cells(j, i).Value, vbNarrow) Next j Next i End Sub 4.ALT+F11を押し、Sheet1を表示させる。 5.メニューバーの中にある表示→ツールバー→コントロールツールボックスを順にクリック。 6.ダイアログボックスの一番右の上から2番目にコマンドボタンがあるのでそれをクリック 7.シートの適当な位置をクリックするとコマンド場短が貼り付けられる。 8.ダイアログボックスの一番左上にある三角定規のマークをクリックする。 この状態で、コマンドボタンをクリックしてみて下さい。半角に変換されると思います。 セルに適当にデータを入力してみて下さい。すべて半角で表示されるはすです。 何か解らないことがありましたら、遠慮なくお知らせ下さい。
補足
ご回答ありがとうございます。 とても役に立ちます。 しかし、やってみて気づいたのですが、全角カタカナまで半角になってしまいました。 これは変えたくないですが、できますか?
お礼
何度もすいませんでした。 とても参考になりました。 ありがとうございました。