• ベストアンサー
  • 困ってます

EXCEL 「ASC」関数  英数字の全角を半角に変換するよい方法があれば教えてください

EXCELで入力しているデータをフィルターを使用して検索できる データベースにしたいのですが、以前からの入力しているデータの英数字が全角、半角が混在していてます。 フィルター検索の際に全角で入力すると半角入力のものがヒットしないので不便で、英数字の半角統一にしたいと考えています。 ASC関数を使用して英数字の全角→半角を行なうこと考えたのですが ASC関数ですとカタカタも半角カタカナに変換されるので 英数字だけを全角→半角にする関数や方法などあれば教えてください。 入力データは 漢字、ひらがな、カタカナ、英数字が混在しています。 希望 全角→漢字、ひらがな、カタカナ 半角→英数字 宜しくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数2129
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.3
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんばんは。 行きがかりで、以下の質問と同じですが、こちらにも書いておきます。 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 -----------------------------

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • エクセルでひらがな・漢字はそのままでカタカナを全角・英数字を半角にする方法

    エクセル2000を使っています。 会社で住所録作成を引き継ぎましたが、 一つのセルにひらがな、漢字、カタカナ、英数字 が半角・全角ごちゃ混ぜで入っているので 管理がしづらくて困っています。 例えば、 あいうアジアNET株式会社 株式会社ABC123 などなど・・・・ ひらがな・漢字はそのままで、 カタカナを全角、英数字を半角にする方法は ありませんか? 最初にASC関数を使ってみたらカタカナも半角になり、 Phonetic関数を使うと、 カタカナだけ全角になりましたが、 ひらがなまでカタカナになり・・・ JIS関数も試しましたが今度は英数字まで全角になり、 どうしたものかと困っております。 よろしくお願いします。

  • エクセルで英数字のみを半角にしたい。

    エクセル2000を使用しています。 1つのセルにカタカナと英数字が混在しています。 英数字のみを半角にすることはできるでしょうか。 「ASC関数」を使用したら、 カタカナも半角になってしまいました……。

  • Excel カタカナと英数字の混在セルでカタカナのみ全角にする

    同じセルの中に、半角カタカナと英数字が混在しています。 カタカナのみ全角にし、英数字は半角の設定のままにする関数を教えてください。 アイウエABCショウジ(半角カタカナ+半角英数字) ⇒ アイウエABCショウジ(全角カタカナ+半角英数字)

その他の回答 (2)

  • 回答No.2

関数を使っても良いのなら、[ ASC関数]ではなく[ユーザー定義関数]を 使用してはいかが。 http://billyboy.blog81.fc2.com/blog-entry-84.html [ユーザー定義関数]が初めてならこちら↓ http://www.konomiti.com/Ex_kan_05.html

共感・感謝の気持ちを伝えよう!

  • 回答No.1

Excel日本語版は昔からカタカナとASCII文字の区別が出来ないか ら、面倒くさいですね。 私ならテキストファイルに吐き出して、高機能のテキストエディタ で必要な文字だけ一度にまとめて変換し、Excelに戻します。JEdit を愛用していますが、本当に一瞬で終わりますよ。 でなければ、せっかくデータベースとして活用したいのだから表計 算ソフトを卒業して、ファイルメーカーあたりに持ち込みます。検 索で1バイト文字/2バイト文字や大文字/小文字を区別しません。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Excelで、ワークシート内の半角・全角変換

    いつもお世話になっております。 人からもらったファイルをくっつけて、一つの報告書を作っているとします。 すると人によって、半角・全角の基準がバラバラになります。 パソコンに関しては几帳面な私は  ・漢字・ひらがな・カタカナは全角  ・英数字・記号は半角 で統一したいのです。 現在はいちいち直しておりますが、関数などを使用して簡単に変換できる方法は無いでしょうか。 ASC関数だとカタカナまで半角になってしまうので使えないのです。 よろしくご教授願います。

  • Excel。英数字カタカナ混ぜこぜのセルで、カタカナのみ全角にする方法は?

    とっても基本的なことで困ってます。 Excelの1つのセルの中に、英数字カタカナがごちゃ混ぜのデータが入っています。英数字は全角の場合もあれば半角の場合もありです。片仮名もしかり。 そのデータを、英数字のみ半角にし、カタカナは全角に修正したいんです。 間違ってASC関数を使ったら、カタカナまで半角になっちゃった・・・・。 本日午後一のミーティングにそろえなきゃいけない資料なんです! 誰かーーー! 助けてーーーー!!

  • 全角英数字のみ半角英数字にするには。

    VisualC++6.00 を使用しています。 ダイアログのエディットボックスで入力された文字を、 全角英数字のみ半角英数字にしたいのですが、 LCMapString だと、カタカナも半角になってしまいます。 英数字のみ半角にするには、どのようにすればいいでしょうか。 よろしくお願いします。

  • EXCSL ASC関数 数値のみ変換

    WindowsXP EXCEL2007を使っています 住所録の番地が全角・半角が混在しているので半角に統一するため 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”も全角を半角に変換できますが、入力したセルと別のセルに返すので、そうではなく、入力してあるセルに上書きしたいのです。  ご存知の方がいらっしゃいましたら、宜しくお願いします。 お手数ですが初心者の為、具体的に教えて頂けたら幸いです。 ”のものは半角英数字  

  • エクセル 関数で全角カタカナを半角にしたい

    エクセル初心者です。人からもらったデータなのですが、住所の記載でカタカナの部分に半角と全角が混ざってしまっています。漢字・ひらがなはすべて全角、カタカナ・数字は半角に統一したいのですが、関数でできますか? 良い方法を教えてください。

  • ACCESSで全角と半角を変換する

    いつもお世話になっております 早速ですが、 ACCESS2000(OSはWindowsXP)での質問です 住所録を整理しているのですが、 住所欄に全角と半角の入力が混在しています 英数字及びハイフンは半角に カタカナは全角に変換したいのですが、 いい方法はないでしょうか? ちなみにStrconv関数をつかって 何とかしようと思ったのですが、 すべて変換されるので、どうもうまくいきません よろしくお願いします

  • ACCESS2000で半角→全角に変換したいのですが・・・

    よろしくお願いします。 ACCESS2000で、データーベースを作成しているのですが、 テーブルの作成でデーター入力を、英数字・カタカナを半角・全角混在して入力してしまいました。 これらを一括して、全角に直したいのですが、どのようにしたらいいでしょうか? よろしくご指導下さい。お願いします。

  • エクセル 全角英文字のみを半角に!

    全角英カナを半角にする関数「asc」は知っているのですが、 英文字のみを半角にする方法はありますでしょうか? ※英文字とカタカナが同セル内に存在しているのですが、カタカナは全角のままで、英文字のみを半角にする事を希望しています。 よろしくお願い致します。

  • Excelの半角英数字の入力について

    Excelで、あるセル、又は行全体に入力するときに半角、全角の入力にかかわらず、入力したものは必ず半角に変わるようにするにはどうすればいいでしょうか? また、漢字かつ英数字の混合文字列に対して、英数字だけは、全角で入力しても半角に変えてくれるようにするにはどうすればいいでしょうか?