• ベストアンサー

Excelで、数字・英数字・-のみを全角→半角にする & 3000番地2を3000-2表示にしたい

マクロ初心者です。 どなたか教えてください。 宜しくお願い致します。 Excelで入力されている住所を整理したいと思いましたが、書いた人によって全角でかいてあったり、~番地2などと書いてあったりとまちまちだったため、マクロを使って整えようと思いました。 http://okwave.jp/qa355804.html を参考に、数字・英数字を半角にするマクロを作りました。 ですが、「-」を半角にするマクロをどう組み込めばいいのかわかりません。 また、~番地を「-」に変換するには、Excelのアドイン機能を使ってできるようなリンク(http://sml.jp/html/program01.html)があったので、ダウンロードして使っていたのですが、上記マクロに一緒に組み込めればと思っています。 どなたか教えてください。 宜しくお願い致します。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

ANo.1です。 >カタカナは全角のままで、数字とーだけ小文字にしたいんです…。 Function newname(c As String) As String  Dim st As String  Dim Match As Variant  Dim Matches As Variant  With CreateObject("VBScript.Regexp")     .Pattern = "[0-9a-zA-Z-]*"     .Global = True     If .Test(c) Then       Set Matches = .Execute(c)       For Each Match In Matches         st = StrConv(Match.Value, vbNarrow)         c = Replace(c, Match.Value, st)       Next     End If  End With  If InStr(c, "番地") Then    c = Replace(c, "番地", "-")    If Right(c, 1) = "-" Then c = Left(c, Len(c) - 1)  End If  newname = c End Function こちらではどうでしょうか? :"[0-9a-zA-Z-]*"、この中の英数字が半角文字であれば 全角文字に直して下さい。

poyo17
質問者

お礼

ありがとうございます! カンペキです!! 番地もーも半角 - になりました。 ただ、語尾が番地の時も番地が - になってしまいます…。 重ね重ね申し訳ないのですが、これもなんとかできませんか?? 上の方の助言に従い、やってみたのですが、うまくいかずエラーが出てしまいました…。 宜しくお願い致します。

その他の回答 (4)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.5

ANo.4です。 >ただ、語尾が番地の時も番地が - になってしまいます…。 たぶん"番地"の後ろにスペースを打ち込んでいるのでしょう。 >c = Replace(c, "番地", "-") を c = Replace(Trim(c), "番地", "-") として下さい。

poyo17
質問者

お礼

そうです、番地の後ろに 「~番地 アイウエオハイツ」となってました! そこは個別対応するとして、これで語尾に番地がきても大丈夫そうです! 本当にありがとうございました!!

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

失礼します。 >番地が語尾にある時(4000番地)は「-」が表示されないようにしたいのですが、 >どうしたらいいでしょうか? Len関数とInStr関数を使えばどうでしょうか。 Len(c) で、文字数を取得する InStr(c, "番地") で、”番地”の文字列内の位置を調べる 得られた値を比較すれば、文字列の最後にあるかどうか判定できます。 判定結果をIf文で分岐処理すれば良いと思います。

poyo17
質問者

お礼

ありがとうございます!! 番地が語尾の場合はこれで解決できそうです! でも考えたんですが… 400番地 アイウエオハイツ102 という場合はどうすればいいんでしょうか? 空白("")って検索できますか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

ユーザー定義関数なら Function newname(c As String) As String newname = StrConv(Replace(c, "番地", "-"), vbNarrow) End Function  = newname(セル番地) こうゆう事?

poyo17
質問者

お礼

ありがとうございます!! これすごいですね!! 試してみたら番地→ーになりました。 番地が語尾にある時(4000番地)は「-」が表示されないようにしたいのですが、どうしたらいいでしょうか?

poyo17
質問者

補足

上記試してみました。 英数字の大文字が小文字になるのはいいんですが、カタカナは全角のままで、数字とーだけ小文字にしたいんです…。 どう調整すればいいでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>ダウンロードして使っていたのですが、上記マクロに一緒に組み込めればと思っています。 この場合は作成された方に聞いた方が早いというか、正しいように 思いますが。

poyo17
質問者

補足

ご回答ありがとうございます。 >この場合は作成された方に聞いた方が早いというか、正しいように 思いますが。 これを変更するんではなくて、こういう感じでやるにはどうしたらいいのかなぁと思ったので質問してみました。

関連するQ&A

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

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

  • 【エクセル】半角数字→全角数字

    エクセルですでに半角で入力されている数字を全角数字に一括変換する方法はありますか? (1)住所録で半角入力されている番地等の数字のみをを全角に変換する方法 (2)電話番号など、全て数字で入力しているセルを一括で全角に変換する方法

  • 全角英数字を半角にしたいんです。

    たとえばメールなどで送られてきた全角の数字をメモ帳上などで半角に直す方法ありますか? また全角英数字を半角に直すソフトなど知ってましたら教えてください。

  • 半角カナは全角カナに、全角英数字は半角英数字に、一気に置換したい

    「半角カナは全角カナに、全角英数字は半角英数字に、一気に置換したい」と考えた時、同じ様な質問とそれに対する回答は沢山有るのですが、意外に満足出来るやり方が見つからず、大変困っています。 大きな制約条件(これが難題...)として、会社が管理するWindows機なので、使って良いのはWordとExcelだけだという問題が有ります(便利なユーティリティーソフトを見つけても、インストール出来ない)。WordとExcelのマクロは、辛うじて、使用可です。 WWWでWordでのマクロの作例を探し当て、これは良いかなと思ったら、小文字の全角英数字が全部大文字の半角英数字になってしまい、これは駄目でした。 また、Wordの「文字種の変換」を試用してみると、「半角」を指定してテキスト全体を選択して変換した場合、全角英数字が半角英数字になるのは良いのですが、全角カナが半角カナになってしまい、これも非常に不都合でした。 尚、主なターゲットは、ワークシートとかではなくて長文のテキストなので、色々な回答例で「Excelの関数を使えば良い」と書かれている説明を読むと、ちょっと不便だなと感じました。 Wordでのマクロで、完璧なものが有れば、OKなのだと思うのですが、自分には未だそれを作る能力が有りません(これを機に、勉強したいと思っています)。良い解決策や、マクロが有れば、是非お教え下さい。

  • 全角の数字を半角にする方法を教えてください

    ワードに書いた5万字ほどの文章があります。 英数字を全角で書いたのですが、半角にする必要が出てきました。 けっこう沢山数字を使っているので、1つ1つ手作業で半角に直すのはとても大変で、ミス出る可能性があります。 そこで、全角の英数字を半角に一発で変換するような技をご存知でしたら教えて頂けませんでしょうか? 宜しくお願い致します。 まい

  • 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で住所録をつくっているのですが、住所2の項目に番地を全角の数字で入れたいのですが、全角で入れても、半角になって、右揃えになってしまったり、2003/1/5のような表記や、Jan-15のような表記になってしまったりします。全部がそうなるわけではないのですが、ところどころそのようになってしまいます。どうしてなのでしょうか?また、どのようにしたら、ちゃんと入力できるのでしょうか?教えてください。住所録はOSがWindows MeのパソコンでExcel2000で作ったものを、XPのパソコンでExcel2003で読み込んで編集しようとしてるのですが、それが原因でしょうか?

  • 入力された全角英数字だけを見つけて半角に

    掲示板の本文に打ち込まれた【全角】ローマ字&数字を 自動で【半角】化してくれるようなスクリプトを探しています。 本文テキストフィールドのonBlur時に使えたらと思っています。 本文なので、英数字だけでなく日本語(全角)も入ります。 ただ、英単語もしばしば使われるので、過去ログの検索効率のため、 英数字は全てを半角で統一できたらと思いまして...。 テキストフィールドに入力された本文から 全角のローマ字&数字だけを見つけ出し、それだけ半角化する、 こんなワガママを可能にしてくれるスクリプトや参考になる サイトさんがどこかにありませんでしょうか?

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

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

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

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

専門家に質問してみよう