- ベストアンサー
エクセルでひらがな・漢字はそのままでカタカナを全角・英数字を半角にする方法
エクセル2000を使っています。 会社で住所録作成を引き継ぎましたが、 一つのセルにひらがな、漢字、カタカナ、英数字 が半角・全角ごちゃ混ぜで入っているので 管理がしづらくて困っています。 例えば、 あいうアジアNET株式会社 株式会社ABC123 などなど・・・・ ひらがな・漢字はそのままで、 カタカナを全角、英数字を半角にする方法は ありませんか? 最初にASC関数を使ってみたらカタカナも半角になり、 Phonetic関数を使うと、 カタカナだけ全角になりましたが、 ひらがなまでカタカナになり・・・ JIS関数も試しましたが今度は英数字まで全角になり、 どうしたものかと困っております。 よろしくお願いします。
- thiel0215
- お礼率96% (26/27)
- オフィス系ソフト
- 回答数4
- ありがとう数13
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。遅くなりました。修正コード、、というより別物ですがアップします。 実は、以前に類似した質問に回答したことがあります。(参考URL) 今回はBLUEPIXYのコードも参考にさせてもらい、その時のコードに手を加えました。 関数myStrFmtはワークシートでも使えますし、他のプロシージャーでも使えます。 どうでしょうか? ========== 次行からコード ================================== '*************************************************************** ' カタカナは全角化、英数字および記号を半角化するユーザー定義関数 ' 引数:文字列 変換対象となる文字列を指定します ' 引数:数字 数字半角化オプション(省略可) 規定値:True ' 引数:記号 記号半角化オプション(省略可) 規定値:False '*************************************************************** Function myStrFmt(文字列 As String, Optional 数字 As Boolean = True, Optional 記号 As Boolean = False) Dim ReplaceList As String Dim TargetStr As String Dim MAK As String, NUM As String, ALB As String Dim i As Long '半角化の対象とする文字を全角で定義 MAK = "!#$%&'()*+-./:;<=>?@[¥]^_{|}。、,," NUM = "01234567890" ALB = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" '置換リスト作成 ReplaceList = NUM & ALB & StrConv(ALB, vbLowerCase) If 数字 Then ReplaceList = ReplaceList & NUM If 記号 Then ReplaceList = ReplaceList & MAK '全角化 文字列 = StrConv(文字列, vbWide) '置換 For i = 1 To Len(ReplaceList) TargetStr = Mid(ReplaceList, i, 1) 文字列 = Replace(文字列, TargetStr, StrConv(TargetStr, vbNarrow)) Next i myStrFmt = 文字列 End Function 'マクロで関数を使用するサンプル(セルを選択した状態で実行) Sub サンプル() On Error Resume Next Dim rngCell As Range Application.ScreenUpdating = False For Each rngCell In Selection If rngCell.Value <> "" Then rngCell.Value = myStrFmt(rngCell.Value, True, False) End If Next rngCell Application.ScreenUpdating = True End Sub
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
No.2です。 >なぜかportという単語が ppsu になったり、 申し訳ないです。関数で変換部分がマズかったです。私が関数のコードを作成したPCではOKだったのですが、ほかのPCでは、誤置換されてしまいました。 修正コードをアップしますので、少々お待ちいただけたら幸いです。
お礼
お手数をおかけします。 よろしくお願いいたします。
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。 一般操作による方法が思い付きません。ユーザー定義関数にしてみました。したがって、ワークシートで使用することも、マクロで使用することも可能です。 1. ワークシートで使用する場合 A1セル:変換対象となるデータ B1セル:=myStrFmt(A1) ASC関数などと同じように使用します。 2. マクロで使用する場合 サンプルマクロを示します。セルを範囲選択し、実行すると漢字・ひらがな・カタカナは全角、英数字は半角に統一します。 ただし、あまり効率的なやり方では無いような気がしてます。置換をゴリゴリやっているだけですから。でも、以下の環境で10,000件のテストデータ変換に1分程度ですから、実用には耐えるのではないでしょうか? CPU:C400 Memory:256M Win98SE Excel2000 ========== 次行からコード ================================== 'ユーザー定義関数(ワークシートで使えます) '文字列中のひらがな・カタカナを全角、英数字を半角にします。 Function myStrFmt(Target As String) As String Target = StrConv(Target, vbWide) '全角アルファベット置換 For i = -32160 To -32135 Target = Replace(Target, Chr(i), Chr(i + 32225)) Target = Replace(Target, Chr(i + 32), Chr(i + 32 + 32225)) Next i '全角数字置換 For i = -32177 To -32168 Target = Replace(Target, Chr(i), Chr(i + 32225)) Next i myStrFmt = Target End Function 'マクロで関数を使用するサンプル(セルを選択した状態で実行) Sub サンプル() On Error Resume Next Dim rngCell As Range Application.ScreenUpdating = False For Each rngCell In Selection If rngCell.Value <> "" Then rngCell.Value = myStrFmt(rngCell.Value) End If Next rngCell Application.ScreenUpdating = True End Sub
補足
丁寧に教えていただき、ありがとうございました。 教えていただいたとおりにやったつもりなのですが、 なぜかportという単語が ppsu になったり、 e が f になってしまいました。 全てのportが ppsuに、eがfになるわけではないので、 もともとのデータの入力時になにか問題があったのかしら? と思います。 また、最初に触れませんでしたが、「・」も リスト中にあり、それは全て「a」に変換されました。 頂いた関数を見ればなにかわかるかな・・・ と思いましたが、なにぶん、マクロ・関数は(も) 初心者でよくわかりませんでした・・・。 何か思いつくことがございましたら、 今一度ご教授いただけますでしょうか。 よろしくお願いいたします。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
拙作のユーザー定義関数で指定した文字を置き換えることができます。 変換が必要なセルをA1だとして いったん全角に変換してから英数字を半角に置き換えるという方針で =tr(JIS(A1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ@+-.0123456789","ABCDEFGHIJKLMNOPQRSTUVWXYZ@+-.0123456789") みたいな、感じで置き換えたい文字の種類を書きます。お好みで英記号を追加して下さい。 ALT+F11でVBEにて標準モジュールで以下を貼り付けて使用して下さい。 Public Function tr(str As String, replaceList As String, convertList) As String Dim i, c For i = 1 To Len(replaceList) str = Replace(str, Mid(replaceList, i, 1), Mid(convertList, i, 1)) Next tr = str End Function
お礼
ご教授ありがとうございました。 コピペでやってみたら解決しました! ユーザー定義関数などは 利用したことがなかったので、 これから教えていただいた関数の中身を 理解したいと思います! 本当にありがとうございました。
関連するQ&A
- EXCEL 「ASC」関数 英数字の全角を半角に変換するよい方法があれば教えてください
EXCELで入力しているデータをフィルターを使用して検索できる データベースにしたいのですが、以前からの入力しているデータの英数字が全角、半角が混在していてます。 フィルター検索の際に全角で入力すると半角入力のものがヒットしないので不便で、英数字の半角統一にしたいと考えています。 ASC関数を使用して英数字の全角→半角を行なうこと考えたのですが ASC関数ですとカタカタも半角カタカナに変換されるので 英数字だけを全角→半角にする関数や方法などあれば教えてください。 入力データは 漢字、ひらがな、カタカナ、英数字が混在しています。 希望 全角→漢字、ひらがな、カタカナ 半角→英数字 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Excel カタカナと英数字の混在セルでカタカナのみ全角にする
同じセルの中に、半角カタカナと英数字が混在しています。 カタカナのみ全角にし、英数字は半角の設定のままにする関数を教えてください。 アイウエABCショウジ(半角カタカナ+半角英数字) ⇒ アイウエABCショウジ(全角カタカナ+半角英数字)
- ベストアンサー
- オフィス系ソフト
- Excel。英数字カタカナ混ぜこぜのセルで、カタカナのみ全角にする方法は?
とっても基本的なことで困ってます。 Excelの1つのセルの中に、英数字カタカナがごちゃ混ぜのデータが入っています。英数字は全角の場合もあれば半角の場合もありです。片仮名もしかり。 そのデータを、英数字のみ半角にし、カタカナは全角に修正したいんです。 間違ってASC関数を使ったら、カタカナまで半角になっちゃった・・・・。 本日午後一のミーティングにそろえなきゃいけない資料なんです! 誰かーーー! 助けてーーーー!!
- ベストアンサー
- Windows 95・98
- エクセルで英数字のみを半角にしたい。
エクセル2000を使用しています。 1つのセルにカタカナと英数字が混在しています。 英数字のみを半角にすることはできるでしょうか。 「ASC関数」を使用したら、 カタカナも半角になってしまいました……。
- ベストアンサー
- オフィス系ソフト
- Excelで、ワークシート内の半角・全角変換
いつもお世話になっております。 人からもらったファイルをくっつけて、一つの報告書を作っているとします。 すると人によって、半角・全角の基準がバラバラになります。 パソコンに関しては几帳面な私は ・漢字・ひらがな・カタカナは全角 ・英数字・記号は半角 で統一したいのです。 現在はいちいち直しておりますが、関数などを使用して簡単に変換できる方法は無いでしょうか。 ASC関数だとカタカナまで半角になってしまうので使えないのです。 よろしくご教授願います。
- ベストアンサー
- オフィス系ソフト
- エクセル:半角カナを全角に、半角英数はそのままに。
エクセル:半角カナを全角に、半角英数はそのままに。 ひらがな・漢字・半角カナ・半角英数が混じったセルが縦に沢山あります。 半角カナだけを全角にし、半角英数はそのままにしたいのですが、JISでは全て全角になってしまいます。 どなたか良い関数を教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセル 関数で全角カタカナを半角にしたい
エクセル初心者です。人からもらったデータなのですが、住所の記載でカタカナの部分に半角と全角が混ざってしまっています。漢字・ひらがなはすべて全角、カタカナ・数字は半角に統一したいのですが、関数でできますか? 良い方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- Excelでカタカナや英数字の変換
1つのセルの中に【漢字】と【全角カタカナ】と【全角英数字】が入力してあります。この【全角カタカナ】と【全角英数字】を、「範囲選択後F10キー」等ではなく簡単に手際よく半角に変換する方法はありますか?
- ベストアンサー
- オフィス系ソフト
- Excelで全角英数字を半角英数字に変換
こんばんは! お世話になります。 Excel sheetの列(F・G・J・K・N・O・R・S・V・W・Z・AA)、行(4~33)に アルファベットを入力するし、35行目以降に(例)A=1・B=2と"COUNTIF"関数使用でカウントされる様になっています。 そこで、その関数の式に半角英数字で入力した為、半角英数字で入力したものしかカウントされません。 入力時の注意で、半角英数字での統一入力でお願いしたものの、やはり中には全角英数字で入力する方もいて、一つ全角入力があると全て信用出来なくなり、折角自動でカウントされるようにしていても全部見直していては自動にした意味がありません。 その為、関数 or マクロでも結構です。 入力した範囲を選択して、半角英数字”A”の場合はそのままで全角英数字”A”の場合半角”A”に上書きされるようなことは出来ますか? 知っている中で、関数”ASC”も全角を半角に変換できますが、入力したセルと別のセルに返すので、そうではなく、入力してあるセルに上書きしたいのです。 ご存知の方がいらっしゃいましたら、宜しくお願いします。 お手数ですが初心者の為、具体的に教えて頂けたら幸いです。 ”のものは半角英数字
- ベストアンサー
- その他(データベース)
- Excelで漢字をひらがなにする関数
セルに入力されている単語(漢字、カタカナ、ひらがなが混合、例:「エクセル関数」)があります。それを隣のセルに全部ひらがなで出したいのですが、方法はありますか?IMEの「再変換」の機能ではなく、関数があれば教えていただきたいのです。(「PHONETIC」関数は知っていますが、これはカタカナに変換する関数です) 段階として、 1.ひらがなに変換する関数 2.または、PHONETIC関数でカタカナに直したセルをひらがなに変換する関数 3.ダメなら、うまいこと「ひらがな」になるマクロの組み方(あまり好みませんが、この際・・・) を、ご存知の方、是非よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました! 今度は問題なく全て変換されました。 過去にお答えになったという質問も 読ませていただきました。 過去の質問も一応は チェックしましたが、完全に見落としておりまして、 恥ずかしい限りです。 問題もおかげで解決し、 本当にありがとうございました。