• ベストアンサー

全角文字をまとめて半角に変換する方法を教えてください!

業務上の処理で困っていることがあります。お知恵をお貸し下さい 「メーカーからCVSファイルでデータが届く→それを読み込んで伝票発行」という作業を行っているのですが 住所等の番地やマンション名等(カナ)が全て全角で入力されている状態なのです。(同じ文字列に漢字や平仮名も混じっています) 伝票発行するソフトは規定文字数が少なめなのでこれをいちいち半角に直してから 読み込まないといけません。手作業になりますし、件数も多いので困っています 「選択した行(シート全体でも構いません)の文字列で半角に直せるものは半角に変換」というマクロを組むことは可能でしょうか? 初心者レベルですが何度かVBAを使ったことはあります 何卒よろしくお願い致します。

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

  • ベストアンサー
  • wein1982
  • ベストアンサー率25% (1/4)
回答No.5

列全体でやる場合は 変換した列を選択して(このマクロだと一つのセルを選択しても列全体が変換されてしまうので注意してください)↓を実行してください。なお連続した列は複数列選択でできますが(例:A,B,C,D列)A列,C列といった列を選択して実行というのは私の技術ではできませんでした。。 Sub test1() Dim myRange As Range, myColumn As Integer, endRow As Integer Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set myRange = Selection myColumn = Selection.Columns.Count For i = 1 To myColumn endRow = Cells(65536, Selection.Column).End(xlUp).Row Cells(1, Selection.Column).Select Do Until Selection.Row = endRow If Selection = "" Then GoTo S1 Selection = StrConv(Selection.Value, vbNarrow) S1: ActiveCell.Offset(1, 0).Select Loop ActiveCell.Offset(0, 1).Select Next i myRange.Select Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub とりあえず列全体でしたら↑を 選択セルのみでしたら↓をお使いください。 Sub test01() Selection = StrConv(Selection.Value, vbNarrow) End Sub

erekimikan
質問者

お礼

わがままを聞いてくださりありがとうございました! シート全体の文字列を半角にしても構わない。ということだったので このマクロを少し改造して業務を行いたいと思います。 本当にありがとうございます♪m(_ _;)m

その他の回答 (4)

  • wein1982
  • ベストアンサー率25% (1/4)
回答No.4

すみません、No3ですが、説明不足です。 先程の回答だと『全ての文字列』を選択し、半角にする。という処理です。 数値も選択して半角にしたい場合は下記でお願いします(2→3になっただけですが…) Sub test02() Selection.SpecialCells(xlCellTypeConstants, 3).Select Selection = StrConv(Selection.Value, vbNarrow) End Sub またご自身で選択したセルだけについて実行するのでしたら Sub test03() Selection = StrConv(Selection.Value, vbNarrow) End Sub です。

  • wein1982
  • ベストアンサー率25% (1/4)
回答No.3

こんな感じでいかがでしょうか? Sub test01() Selection.SpecialCells(xlCellTypeConstants, 2).Select Selection = StrConv(Selection.Value, vbNarrow) End Sub

erekimikan
質問者

お礼

回答ありがとうございます! 頂いたコードを実行したら希望通りに半角になりました♪ ちなみにこれを行ではなくて列単位(複数選択できればうれしいです)で 処理を行うにはどのようなコードに変更したらよいでしょうか? 重ね重ねすみませんがよろしくお願い致します。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  Word2003ですが、選択して、[書式]→[文字種の変換]で混在していても変換可能な文字だけ半角にできました。  csvはテキストファイルなので、ワードでも編集可能です。開くときにファイルの種類を「全てのファイル(*.*)」にしてください。  お試し下さい。 では。

erekimikan
質問者

お礼

すみません 使用ソフトを書き忘れていました(恥 エクセル2003です しかしワードも使うので参考になりました ありがとうございます!

  • whrabit
  • ベストアンサー率44% (21/47)
回答No.1

OSと使用ソフトがわかりませんが、エクセルならこんなのがありました。

参考URL:
http://oshiete1.goo.ne.jp/qa2999823.html
erekimikan
質問者

お礼

ありがとうございます! 希望していたものでした こんな関数があるのですね。。。 とても助かりました♪

関連するQ&A

  • 全角から半角に変換する

    Javaで、文字列の中に全角があれば単純に半角に変換するような処理をしたいです。具体的には、次のような文字列があった場合、以下のように変換したいです。 <変更前> あ亜アアaaAA11%% <変更後> ア亜アアaaAA11%% つまり、以下のようにしたいです ・全角ひらがな→半角カタカナ ・漢字:何もしない ・全角カタカナ→半角カタカナ ・半角カタカナ:何もしない ・半角アルファベット→何もしない ・全角アルファベット→半角アルファベット ・半角数字→何もしない ・全角数字→半角数字 ・半角記号→何もしない ・全角記号→半角記号 上記のように書くと複雑に見えますが、要は基本的に半角に相当する文字がある場合には半角にしたいだけです。Googleで探してみましたが、Javaで標準で上記のような処理を出来るようなメソッドを見つけることができませんでした。このようなメソッドは標準で存在しますでしょうか? 自作する場合、いくつかアプローチがあると考えられますが、最もパフォーマンスを速くしたい場合にはどのような作り方にした方がよいでしょうか。お手数ですが、宜しくお願いします。 <追伸> プレビューで見たら、半角の文字が全角に自動的に変換されてしまいました。。 例文からはわかりにくいかも知れませんが、宜しくお願いします。。

    • ベストアンサー
    • Java
  • カタカナのみを半角から全角に変換したいのですが

    VBAについて教えてください。 文字をHPにアップできるように、カタカナのみを半角から全角に変換したいのですが 何か良い方法はありますか? 文字は英字・ひらがな・カタカナ・漢字がランダムに入っています。 例えば Sub test() Dim a As String a = "aaaアアア<>BBB" End Sub の状態で。「アアア」のみを全角にするにはどうすればいいでしょうか? アルファベットは半角のままにしたいです。

  • Excel VBAで、特定半角文字のみ全角文字に変換したい。

    Excel VBA で、 A列に半角、全角が混在した文字列及び数字が入っています。 ファイル名に出来ない半角文字 \ / : * ? " < > | だけを全角文字にするには、 どのようなコードを書けば良いのか、宜しくお願いします。

  • 全角 → 半角 への変換

    いつもお世話になります。 さて標記の件、データの変換で悩んでいます。 ACCESSのデータ(これも外部から取り込みます)中に全角文字が混じっていればその部分を半角に変えたいと思います。 全角文字が数字、ひらがな、カタカナのときは半角カナに出来ましたが、漢字の時に変換できません。 可能であれば間違えていても良いのでヨミガナに、不可なら半角スペース、これも不可なら削除したいです。 WinXP Office2000PROを使用しています。 以上、宜しくお願いいたします。

  • 全角文字を半角に変換する

    全角文字を半角へ、またはその半角文字を全角にする 関数もしくは処理がありましたら教えていただきたいの ですが、宜しくお願い致します。 また変換する文字はアルファベットと数字で、漢字とかが 入力されたらエラー表示させる例を提示していただけると たいへんありがたいです。

  • エクセル 全角から半角に変換 マクロ

    エクセルでシートの上すべてのカタカナ、ひらがな、漢字、スペースを全角から半角に変換するマクロを教えてください。 アルファベットは残したいです。

  • 全角→半角に変換

    EXCELで 数字を全て全角で入力しているファイルがあります  勿論、数字だけではなく漢字、ひらがな、英語も  このファイル内に存在します ある(指定した)行、ある(指定した)列のみの "数字","英語","-","*" を半角(直接入力)に変換する方法を教えて下さい 宜しくお願い申し上げます

  • 【VBA】全角半角入り交じった住所を分割

    Book1のA列に記載されている市区町村番地を、別のファイルであるBook2のA列とB列に、それぞれ市区町村と番地に分けて転記するVBAを教えていただけますでしょうか。 住所は半角全角が入り交じっていますが、どちらかに統一するのではなく、記載されているとおりに転記したいです。 全角だけ、もしくは半角だけを抜き出すマクロは見つけたのですが、どちらであっても分割できるマクロがわかりません。 下記の住所を、、、 Book1 A列 港区赤坂1-2-3 港区赤坂1-2-3 港区赤坂1-2-3 下記のように分割して別ファイルに転記 Book2 A列    B列 港区赤坂  1-2-3 港区赤坂  1-2-3 港区赤坂  1-2-3 お知恵をお貸し下さい。 よろしくお願いいたします。

  • 全角から半角文字へ一括変換。

    ☆はじめまして☆ ご存知であれば教えていただきたいのですが、エクセルで全角入力された数字を一括で半角変換したいのです。 また全角ひらがなで入力された文字をまずカナになおし、こちらも同様に半角文字に変換したいです。 またかな文字の”シャ”などを小文字使わずに”シヤ”と変換する方法はありますか? イメージは下記のとおりです。 <例> 123かいしゃ  とうきょうししゃ 0123456 <変換後> 123カイシャ トウキヨウシシヤ 0123456 (GOOで半角文字が掲載できない為表示が全角になってますが、上記全半角大文字ととらえてください。

  • 文字列変換

    他人が作ったExcelデータを修正しなければいけなくなったのですが時間がかかって手間取っています。 する作業は、選択した文字列を ・カタカナは全角 ・ローマ字は半角 ・数字は半角 とすることです。 手作業ですると時間がかかるので、 マクロとかVBAで作業に無駄をなくせればと思いました。 それで調べてみたのですがStrConv関数というのが出てきましたが、 文字種ではしてくれなさそうなのです。 参考になりそうなものはないでしょうか?

専門家に質問してみよう