Excel2010英数字のみ半角にする方法

このQ&Aのポイント
  • Excel2010で、漢字やひらがなはそのまま表示され、全角カタカナはそのまま、半角カタカナは全角カタカナになり、全角英数字は半角英数字になり、半角英数字はそのまま、全角スペースはそのまま、半角スペースは全角スペースになり、連続するスペースは1つの全角スペースになります。
  • 例えば、既存の入力されている列が「AE列」の場合、関数を入力できるのは「AR列」以降です。
  • Excelで指定の条件に合わせて英数字のみを半角にする方法についてお教えします。条件を設定すれば、漢字やひらがなはそのまま表示され、全角カタカナはそのまま、半角カタカナは全角カタカナに変換されます。全角英数字は半角英数字に変換され、半角英数字はそのまま表示されます。また、全角スペースはそのまま、半角スペースは全角スペースに変換され、連続するスペースは1つの全角スペースに変換されます。
回答を見る
  • ベストアンサー

Excel2010英数字のみ半角にする方法

タイトルのほかにも条件があるのですが、Excel2010で、表示結果に条件があります。 既存に入力されているものなんですが、条件は以下の通りです。 条件1:漢字あるいは、ひらがなはそのまま 条件2:全角カタカナは全角カタカナ 条件3:半角カタカナは全角カタカナ 条件4:全角英数字は半角英数字 条件5:半角英数字は半角英数字 条件6:全角スペースは全角スペース 条件7:半角スペースは全角スペース 条件8:スペースが連続している場合は全角スペース1つのみ 例としては(左側が既存、右側が表示結果)、 全角あいうえお→全角あいうえお 全角アイウエオ→全角アイウエオ 半角アイウエオ→半角アイウエオ 全角110→全角110 半角アイウエオ全角110→半角アイウエオ全角110 半角アイウエオ□全角110→半角アイウエオ□全角110 半角アイウエオ□□全角110→半角アイウエオ□全角110 半角アイウエオ△□全角110→半角アイウエオ□全角110 半角アイウエオ△全角110→半角アイウエオ□全角110 半角アイウエオ△△全角110→半角アイウエオ□全角110 半角アイウエオ△△△全角110→半角アイウエオ□全角110 ※「□」は全角スペース、「△」は半角スペースです。分かりやすいように表記してみました。「□」または「△」が複数ある場合、スペースの個数です。 既存の入力されている列は「AE列」です。関数を入力できるのは「AR列」以降です。 関数について詳しくないため、あまり長いお礼はできませんが、回答よろしくお願いします。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

期待通りに動いてくれると良いのですが、 自前の関数を作成します。 下記の Function myConv(ByVal myArg As String) As String ~中略~ End Function までをコピーします。 Excelに戻って、Alt + F11 を押してVBEの画面にします。 Alt + i を押して、プルダウンから標準モジュールを選択します。 新たなウィンドウが出ますのでそこへ先ほどのコピーをペーストします。 Alt + F11 を押してExcelに戻ります。 AR列で =myconv(AE1) 等とすれば結果が返ります。 条件1~8と例として挙げられているのが矛盾しているようです。 条件の方で作成しています。 Function myConv(ByVal myArg As String) As String Dim myReg As Object, myMC As Object, myM As Object Set myReg = CreateObject("VBScript.RegExp") 'スペースを全角一個だけに myConv = Replace(myArg, " ", " ", compare:=vbTextCompare) With myReg .Pattern = " +" .Global = True End With myConv = myReg.Replace(myConv, " ") '半角カタカナは全角カタカナ With myReg .Pattern = "[\uff66-\uff9f]+" .Global = True Set myMC = .Execute(myConv) End With For Each myM In myMC myConv = Replace(myConv, myM.Value, StrConv(myM.Value, vbWide), compare:=vbTextCompare) Next '全角英数字は半角英数字 With myReg .Pattern = "[0-9A-Za-z]+" .Global = True Set myMC = .Execute(myConv) End With For Each myM In myMC myConv = Replace(myConv, myM.Value, StrConv(myM.Value, vbNarrow), compare:=vbTextCompare) Next Set myMC = Nothing: Set myReg = Nothing End Function

miya_HN
質問者

お礼

回答ありがとうございます。 前者の通りVBAのことはほとんど分かりません。 なので、そのままコピーさせて試してみます。 あと、また関数ではなくVBAで新たに質問するかもしれませんがその時はよろしくお願いします。 ありがとうございました。

その他の回答 (2)

回答No.2

こんばんは。 関数に詳しくないとかなら、Wordで処理する方法もありかとは思います。 Wordの置換のワイルドカードを使います。 それが面倒なら、以下をVBEditor に貼り付けて一発変換という方法もあります。 正規表現を利用していますから、VBAでの処理が嫌なら、テキストエディタでも可能です。 数回の処理にはなるかと思いますが、基本的には、全角数字とスペースの統一です。 '// Sub RegExpExchange()  Dim myRange As Range  Dim objReg As Object  Dim Matches As Object  Dim Match As Variant  Dim c As Range  Dim Dspc As String  Dspc = Chr(&H8140) '一般的な全角スペース  Application.ScreenUpdating = False  With ActiveSheet   'データはA列にあるとする   Set myRange = .Range("A1", .Cells(Rows.Count, 1).End(xlUp))  End With  Set objReg = CreateObject("VBScript.RegExp")  With objReg   For Each c In myRange    buf = c.Value    .Pattern = "[0-9]+"    .Global = True    If .Test(buf) Then     Set Matches = .Execute(buf)     For Each Match In Matches      buf = Replace(buf, Match, StrConv(Match, vbNarrow))     Next Match    End If    .Pattern = "[" & Dspc & Space(1) & "]+" '全角・半角スペース1つずつ入れる    .Global = True    If .Test(buf) Then     Set Matches = .Execute(buf)     For Each Match In Matches      buf = Replace(buf, Match, Dspc)     Next Match    End If    c.Offset(, 1).Value = buf   Next c  End With  Application.ScreenUpdating = True  Set objReg = Nothing End Sub

miya_HN
質問者

お礼

回答ありがとうございます。 VBAですか。 VBAのことはちんぷんかんぷんなので、どのような処理をしているのか分かりません。 なので、どうお礼をしたらいいのか分かりませんがとりあえずありがとうございました。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

簡単にはできませんね。 マクロを使用しないのであれば… 全角の英数字とカタカナを半角文字にする場合はASC関数、その逆はJIS関数を使います。 カタカナは全角という縛りがありますので、とりあえず全角に変換した後 英数字をひとつずつ置換で置き換えるくらいしか思いつきません。

miya_HN
質問者

お礼

回答ありがとうございます。 やはり難しいですか。 自分としましてもASC関数、JIS関数は知っていますが、すべて条件を満たすような条件は厳しいですね。 ありがとうございました。

関連するQ&A

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

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

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

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

  • エクセルで英数字を半角にするマクロ

    すでにデータが入力されたエクセルで、全角の英数字を半角にするマクロを探しています。 条件があり、なかなか合う物がなく、質問させて頂きました。 条件は ・アルファベット→半角 ・数字→半角 ・カタカナ→全角 ・伸ばし棒(例えば「データ」の「ー」)→全角 ・同一セルに上書きで変換 下の2点はできたら半角になると嬉しいです。 ・ナカグロ→半角 ・<>→半角 よろしくお願い致します。

  • 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の半角英数字の入力について

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

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

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

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

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

  • 半角英数字と、日本語入力の切り替えショートカットですが

    私はMac派でしたので、Windowsは素人です。 半角英数字と、日本語入力は、キーボード左上の「半角/全角-漢字」ボタンで切り替わるのですが、「半角/全角-漢字」を押すには、左小指で押さなければならず、いちいち非常に押しにくく、他のボタンで切り替える方法はありませんか?。 半角英数字から、日本語入力は、 下部の「カタカナ、ひらがな-ローマ字」ボタンで、切り替わるのですが、逆の、 日本語入力から、半角英数字へは、 「カタカナ、ひらがな-ローマ字」ボタンで切り替わらず、 「半角/全角-漢字」ボタンでしか切り変わりません。 (Macであれば、コマンド+スペースバーで、両方それぞれ切り替わるのですが) もし、無理な場合、この入力方式の切り替えを ショートカットで自分で設定する方法とか 無いでしょうか?。 よろしくお願い致します。

  • キーボードで半角英数字が打てない

    キーボードのどのキーを押してしまったのか分かりませんが、 半角の英数字が打てなくなってしまいました。 代わりに半角のカタカナ小文字が表示されます。 例えば、「JAPAN」と打つと「マチセチミ」という具合です。 全角モードにすると正常に仮名漢字変換で全角文字が表示されます。 いま、この文章は全角モードで書いています。 FUJITSUのキーボードで種類は良く分かりません。 どうすれば元にもどるでしょうか?

  • 半角英数字がニュウリョクデキマセン

    半角英数字を入力すると半角カタカナが入力されてしまいます。どうしてでしょう?教えてください。

専門家に質問してみよう