EXCELで英数字の全角を半角に変換する方法
- EXCELで入力しているデータの英数字が全角と半角で混在しているため、フィルター検索の際に不便を感じています。
- ASC関数を使用して英数字の全角を半角に変換する方法を探していますが、ASC関数はカタカナも半角に変換してしまうため、英数字のみを変換する方法を知りたいと思っています。
- 入力データには漢字、ひらがな、カタカナ、英数字が混在していますが、全角の漢字、ひらがな、カタカナを半角に、英数字を全角に変換したいです。
- ベストアンサー
EXCEL 「ASC」関数 英数字の全角を半角に変換するよい方法があれば教えてください
EXCELで入力しているデータをフィルターを使用して検索できる データベースにしたいのですが、以前からの入力しているデータの英数字が全角、半角が混在していてます。 フィルター検索の際に全角で入力すると半角入力のものがヒットしないので不便で、英数字の半角統一にしたいと考えています。 ASC関数を使用して英数字の全角→半角を行なうこと考えたのですが ASC関数ですとカタカタも半角カタカナに変換されるので 英数字だけを全角→半角にする関数や方法などあれば教えてください。 入力データは 漢字、ひらがな、カタカナ、英数字が混在しています。 希望 全角→漢字、ひらがな、カタカナ 半角→英数字 宜しくお願い致します。
- tororu5
- お礼率24% (8/33)
- オフィス系ソフト
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 行きがかりで、以下の質問と同じですが、こちらにも書いておきます。 http://oshiete1.goo.ne.jp/kotaeru.php3?qid=4071741 #3 にマクロがあります。 それを手直しし、ユーザー定義関数に変更してみました。 標準モジュールに貼り付けてください。後は、通常の関数のように入れてくださればよいです。ただ、Office の場合は、ExcelのJIS 関数にしても、中身は、単に、1文字ずつを、全角にしているわけではありません。一文字ずつ変換するのは、どちらかというと中途半端な結果になってしまいます。 例えば、 「半角」で、パピプ と入れ、=LEN(A1) とすると、6 それを、JIS関数で変換して、=LEN(A2) とすると、3 が出てきます。 つまり、バ、パ など、半角の濁音、半濁音は、必ずまとめて全角に変換しなければなりません。また、VBA以外で、それを実行するときは、ストリームの中で、半濁音の監視をしないといけないわけですが、幸い、そのようなプログラムは必要ありません。Office に詳しくない方だと、この点を見落としてしまいます。 以下の関数は、フィルタになりますから、そのまま、マクロに入れることも可能です。その場合は、出来れば、VBScrip.RegExp は、参照設定して、そのまま、開放しないままにしておいたほう速いかもしれません。 なお、 >全角→漢字、ひらがな、カタカナ カタカナ以外に対しては、漢字、ひらがなの半角文字はExcelにはないはずです。 また、=Now()関数 で[22時40分](書式:[DBNum3]h"時"mm"分") を表示したものも、[22時40分]と変換することは可能です。 '------------------------------- '標準モジュール Function Zen2Han(strText As Variant) As String '全角:カタカナ,半角:英数字・記号 Dim myPats As Variant Dim Re As Object ' As RegExp '参照設定では、Microsoft VBScript Regular Expressions 5.5 Dim Matches As Object 'As MatchCollection Dim Match As Object 'As Match Dim buf As String Dim i As Integer '半角カタカナ, 全角英数など '半角のカタカナはWebで表示できないので、コードにしてあります。 myPats = Array("([\uFF66-\uFF9F]+)", "([!-}]+)") If IsEmpty(strText) Then Exit Function If StrComp(TypeName(strText), "Range") = 0 Then strText = strText.Text End If Set Re = CreateObject("VBScript.RegExp") 'Set Re = New VBScript With Re .Global = True .IgnoreCase = True buf = strText For i = 0 To 1 .Pattern = myPats(i) Set Matches = .Execute(buf) If Matches.Count > 0 Then For Each Match In Matches buf = Replace(buf, Match, StrConv(Match, (i + 1) * 4), , , vbBinaryCompare) Next Match End If Next End With Zen2Han = buf Set Re = Nothing End Function ---------------------------------- ''変換関数を組み合わせたマクロ(標準モジュール) Sub Main() Dim c As Range Dim rng As Range On Error Resume Next Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues) On Error GoTo 0 Application.ScreenUpdating = False If rng Is Nothing Then MsgBox "対象セルが見つかりません", vbExclamation, "終了" Exit Sub End If For Each c In rng.Cells c.Value = Zen2Han(c.Value) Next c Application.ScreenUpdating = True End Sub -----------------------------
その他の回答 (2)
- enunokokoro
- ベストアンサー率74% (3543/4732)
関数を使っても良いのなら、[ ASC関数]ではなく[ユーザー定義関数]を 使用してはいかが。 http://billyboy.blog81.fc2.com/blog-entry-84.html [ユーザー定義関数]が初めてならこちら↓ http://www.konomiti.com/Ex_kan_05.html
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
Excel日本語版は昔からカタカナとASCII文字の区別が出来ないか ら、面倒くさいですね。 私ならテキストファイルに吐き出して、高機能のテキストエディタ で必要な文字だけ一度にまとめて変換し、Excelに戻します。JEdit を愛用していますが、本当に一瞬で終わりますよ。 でなければ、せっかくデータベースとして活用したいのだから表計 算ソフトを卒業して、ファイルメーカーあたりに持ち込みます。検 索で1バイト文字/2バイト文字や大文字/小文字を区別しません。
関連するQ&A
- Excelで、ワークシート内の半角・全角変換
いつもお世話になっております。 人からもらったファイルをくっつけて、一つの報告書を作っているとします。 すると人によって、半角・全角の基準がバラバラになります。 パソコンに関しては几帳面な私は ・漢字・ひらがな・カタカナは全角 ・英数字・記号は半角 で統一したいのです。 現在はいちいち直しておりますが、関数などを使用して簡単に変換できる方法は無いでしょうか。 ASC関数だとカタカナまで半角になってしまうので使えないのです。 よろしくご教授願います。
- ベストアンサー
- オフィス系ソフト
- エクセルでひらがな・漢字はそのままでカタカナを全角・英数字を半角にする方法
エクセル2000を使っています。 会社で住所録作成を引き継ぎましたが、 一つのセルにひらがな、漢字、カタカナ、英数字 が半角・全角ごちゃ混ぜで入っているので 管理がしづらくて困っています。 例えば、 あいうアジアNET株式会社 株式会社ABC123 などなど・・・・ ひらがな・漢字はそのままで、 カタカナを全角、英数字を半角にする方法は ありませんか? 最初にASC関数を使ってみたらカタカナも半角になり、 Phonetic関数を使うと、 カタカナだけ全角になりましたが、 ひらがなまでカタカナになり・・・ JIS関数も試しましたが今度は英数字まで全角になり、 どうしたものかと困っております。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで英数字のみを半角にしたい。
エクセル2000を使用しています。 1つのセルにカタカナと英数字が混在しています。 英数字のみを半角にすることはできるでしょうか。 「ASC関数」を使用したら、 カタカナも半角になってしまいました……。
- ベストアンサー
- オフィス系ソフト
- 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”も全角を半角に変換できますが、入力したセルと別のセルに返すので、そうではなく、入力してあるセルに上書きしたいのです。 ご存知の方がいらっしゃいましたら、宜しくお願いします。 お手数ですが初心者の為、具体的に教えて頂けたら幸いです。 ”のものは半角英数字
- ベストアンサー
- その他(データベース)
- エクセル 関数で全角カタカナを半角にしたい
エクセル初心者です。人からもらったデータなのですが、住所の記載でカタカナの部分に半角と全角が混ざってしまっています。漢字・ひらがなはすべて全角、カタカナ・数字は半角に統一したいのですが、関数でできますか? 良い方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- EXCSL ASC関数 数値のみ変換
WindowsXP EXCEL2007を使っています 住所録の番地が全角・半角が混在しているので半角に統一するため ASC関数を使いました 当然英文字・カタカナも半角になってしまいます 数字だけを半角にすることはできないでしょうか
- 締切済み
- その他MS Office製品
- Excel。英数字カタカナ混ぜこぜのセルで、カタカナのみ全角にする方法は?
とっても基本的なことで困ってます。 Excelの1つのセルの中に、英数字カタカナがごちゃ混ぜのデータが入っています。英数字は全角の場合もあれば半角の場合もありです。片仮名もしかり。 そのデータを、英数字のみ半角にし、カタカナは全角に修正したいんです。 間違ってASC関数を使ったら、カタカナまで半角になっちゃった・・・・。 本日午後一のミーティングにそろえなきゃいけない資料なんです! 誰かーーー! 助けてーーーー!!
- ベストアンサー
- Windows 95・98
- 全角英数字のみ半角英数字にするには。
VisualC++6.00 を使用しています。 ダイアログのエディットボックスで入力された文字を、 全角英数字のみ半角英数字にしたいのですが、 LCMapString だと、カタカナも半角になってしまいます。 英数字のみ半角にするには、どのようにすればいいでしょうか。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 半角/全角の変換方法
Excelで1つのセルの中に文章が入力されたデータがあります。 1行に対して1つの文章(A1に1つ、B1に1つという感じです)で 約2万行あり、1つの文章の長さは50文字~8000文字と様々です。 その文章の中には英数字も含まれているのですが その英数字が半角であったり、全角であったりと統一されておらず 不都合が出ておりますので、英数字は全て半角へ変換したいのですが 文字数が多すぎる為か、ASC関数ではエラーが表示(#VALUE!)される 行がいくつもあり困っております。 何かよい方法はないものでしょうか?
- 締切済み
- オフィス系ソフト
- ACCESS2000で半角→全角に変換したいのですが・・・
よろしくお願いします。 ACCESS2000で、データーベースを作成しているのですが、 テーブルの作成でデーター入力を、英数字・カタカナを半角・全角混在して入力してしまいました。 これらを一括して、全角に直したいのですが、どのようにしたらいいでしょうか? よろしくご指導下さい。お願いします。
- 締切済み
- オフィス系ソフト