• ベストアンサー

電話番号のハイフンを追加したい

こんにちは。 過去質問を検索してもわからなかったので質問します。 エクセルで既に電話番号として0333333333と入力されています。 このデータを03-3333-3333のハイフンを入れた状態で 表示させたいのですが、どうしたらよいでしょうか? ちなみに電話番号は東京だけでなく日本全国のデータです。 セルの書式設定→郵便番号ではうまくいきませんでした。 関数でも置換えでも構いませんが、プログラミングはできません。 環境はWin2000、Excel2000です。 よろしくお願いします。

  • lehua
  • お礼率90% (118/130)

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

市外局番の桁数には2、3、4桁があり、携帯やフリーダイヤルも対応するのでしょうか。 市外局番、市内局番の長さを指定するユーザー定義関数を書いてみました。 貼り付けるだけなので大丈夫でしょう。 使い方は、=HyojiTEL(セル,市外局番の長さ,市内局番の長さ) とします。例えば、  市外局番2桁、市内局番4桁なら =HyojiTEL(A1,2,4)  市外局番3桁、市内局番3桁なら =HyojiTEL(A1,3,3)  市外局番4桁、市内局番2桁なら =HyojiTEL(A1,4,2) とします。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入し、そこに下記コードを貼り付けます。(当方、Excel97です) ↓ここから Public Function HyojiTEL(TEL As String, Shigai As Integer, Shinai As Integer)   If Len(TEL) - (Shigai + Shinai) <> 4 Then     '指定した市外、市内局番以外が4桁でなければエラー     HyojiTEL = "エラー"   Else     '市外、市内局番を指定した桁で分ける     HyojiTEL = Left(TEL, Shigai) & "-" _           & Mid(TEL, Shigai + 1, Shinai) & "-" _           & Right(TEL, Len(TEL) - (Shigai + Shinai))   End If End Function

lehua
質問者

お礼

ご丁寧にありがとうございます。 関数もユーザー定義できるのですね。 勉強になりました。

その他の回答 (6)

  • a999a999
  • ベストアンサー率68% (11/16)
回答No.7

できると思います。 他の方の紹介されていた 番号一覧表を使ってもよければですが。 http://www.scoutnet.or.jp/~yatsu/tel-02.html 最新かどうかは不明です。 どこかに良い一覧があれば 教えて下さい。 それを基に作ります。 地域はある程度限定できませんか。 関東、関西 なるべく小さい方が良いです。 マクロですが簡単です。 良かったら連絡下さい。 電話番号のある列は、何列ですか。

lehua
質問者

お礼

どうもありがとうございます。 解決のメドがたちました。 また何かありましたらアドバイスお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

結論から言うと、プログラムが組めても、出来ません。ルール(ロジック)を言って(表現)見てください。簡単には言えないはずです。市外局番は2,3,4桁有るのは日本のルールです。しかし左から2-4桁の数字を取り出して考えて、市外局番が2桁で有るか、3,4桁か言葉で表現できません。すなわちプログラムが組めません。ましてエクセルの関数式や表示形式では、解決しません。残るみちは、市外局番の表(テーブル)データを作るか探すかして利用する事です。その表を引くプログラム技量があれば、解決します。 相当膨大な数でしょう。3千600を越える市区町村の数より少ないかも知れません。そして4桁の市外局番から先に見ていくのがポイントです。市外局番+市内局番が一定桁数でないケースが有れば市外局番+市内局番のテーブル(-付き)が必要です。 -を一旦除いて比較し合致すれば、-入りと置きかえる。 ただ貴殿の電話番号データにはそんなに沢山の市外局番の種類がないのなら、売り物のソフトではないのだから、ちょっとしたプログラムで解決するかも。プログラムは(1)ルール・ロジックを探す(2)テーブルで考えるしかないと思います。テーブルルックアップ関数などひょっとして使って実現するかも。      

lehua
質問者

お礼

アドバイスありがとうございます。 プログラミングできる人にも相談してみようと思います。 ちょっと自力では能力不足で無理そうです。

noname#6248
noname#6248
回答No.4

市外局番の桁数がわからないのかもしれないと思い書きます。 電話番号に対してソートをし、それぞれ手入力をするのが早いと思います。 ソートの説明を書いた部分 http://oshiete1.goo.ne.jp/kotaeru.php3?q=242234 市外局番一覧表 http://www.scoutnet.or.jp/~yatsu/tel-index.html ですかね… 電話番号部分をコピーしてテキストエディタへ貼り付けると作業が多少楽にはなります。 ならび順を元に戻したいのであれば列を一列追加して通し番号をつけておけば 同じ理屈でソートできます… 他にもっといい方法があるかもしれませんけどね…

lehua
質問者

お礼

手入力が早いのかも知れないです。 便利なURLも教えて下さってどうもありがとうございます。

回答No.3

ああ、分かりました。 もう既に0333333333と入力されているものを、 一発で03-3333-3333に変換する方法を聞いたんですね。 失礼しました。

lehua
質問者

お礼

いえいえ、とんでもないです。 回答してくださってありがとうございました。

  • taka_pre
  • ベストアンサー率32% (146/451)
回答No.2

セル内に保管している電話番号が数値項目で、 かつ一律同じ形式に変更するのであれば、 セルの書式設定で「ユーザー定義」を設定すればできると思います。 すでに存在している、ユーザー定義(何でもいいです)を選択し、 種類を000-0000-0000(0は数字のゼロです)で作成し、 セルの書式でそれを選択すればいいはずです。 文字列としている場合は、lehuaさんが試されたとおり、 単純な書式設定では変更できないかもしれません。 まあ、詳しく調べたわけではないので、 どなたかのフォローでもあれば幸いですが・・・。

lehua
質問者

補足

taka_preさん、早速の回答ありがとうございます。 >一律同じ形式に変更するのであれば、 まさにひっかかっているのはココなんです。 市外局番が全国一律であればユーザー定義も可能ですが 長い市外局番地域も含まれているので 一律というわけにもいかず、悩んでいます。 いくら賢いエクセルでも同一セル内でどこが市外局番で。。なんてことは 無理なんでしょうか?

回答No.1

「セルの書式設定→表示形式→文字列」としてやれば、 入力したそのものが表示されるようになりますよ。

lehua
質問者

補足

tomikou0000さん、早速の回答ありがとうございます。 説明が解りにくくて申し訳ないです。 入力したそのものが0333333333なので、教えてくださった操作ですと 変化ナシです。 他に方法がありましたらご指導お願いします。

関連するQ&A

  • エクセルで郵便番号の7ケタ数値をハイフン付の書式

    エクセルで郵便番号の7ケタ数値をハイフン付の書式にしたいのですが、 セルの書式設定だけで対応できますか。 入力は数値、表示は郵便番号としたい次第です。 0123456⇒012-3456 2140014⇒214-0014 マクロや関数は、使用せずに、セル書式だけで対応を考えてます。

  • エクセルにて郵便番号のハイフンを追加したい

    エクセル2000にて作業中です。 郵便番号が文字列で「7900007」というように 入力してあります。 これを一括で「790-0007」と ハイフンを追加したいのです。 セルの書式設定のユーザー定義で 「000-0000」としてみたのですが、 ダメでした。 いい方法はありますか。

  • 文字列の状態で電話番号からハイフンを抜きたい

    電話番号データを検索用にハイフンを抜いたデータに置き換えたいのですが、「置換」や「区切り位置」等でハイフンを抜いても、数値に置き換わってしまい、先頭に入っている「0」はカットされてしまいます。 もちろん、セルの書式設定は文字列にしていますが、どうやってもハイフンを抜いた時点で数値に置き換わってしまいます。 先頭の「0」を消さずにハイフン無のデータに置き換える方法を教えてください。 簡単に出来そうな気がするのですが、意外と苦戦しています。

  • エクセル上のハイフンの消去法

    エクセル上のハイフンの消去法 住所録を作成しています。手打ちで郵便番号のハイフンを入力していましたが、その後、セルの書式設定に「郵便番号」という形式を見つけ、ハイフンなしで7ケタ入力できる事が分かりました(⇒入力後、自動的にハイフンをがつくことです)。そこで勉強までにご質問です。手打ちしたハイフンを一括で消去する方法がありましたらお教え下さい。お願い致します。

  • 郵便番号のハイフンを入れたい エクセル2000

    エクセル2000で文字列のセルに 1234567 のように7桁郵便番号が入っています。 これを 123-4567 のように前から4桁めにハイフンを入れる方法を 教えていただけませんでしょうか。 *データ件数が3万件ほどあり、その変換のためです。

  • 差込印刷で郵便番号のハイフンが印刷されない

    XPで、office2003を使っています。 エクセルで、書式→セル→表示形式でその他を選ぶ→郵便番号 として入力し作成した住所リストを差込印刷でラベル作成したところ 郵便番号のハイフンが印刷されずに、7桁くっついた数字で印刷されます。 これは仕様ということでいいのでしょうか。 また、もし印刷をする時にハイフンが印刷されるような技はあったら教えていただきたいと思いまして質問致しました。 よろしくお願い致します。

  • エクセル 電話番号のハイフンを置換後の0表示

    エクセルファイル 電話番号のハイフンを置換後の0表示方法 Excel2007使用 電話番号表示 03-1111-2222 をハイフン無の 0311112222 にしたい。 03-1111-2222 で「-(ハイフン) を 無に置換」 311112222 になってしまう。 オプション「ゼロ値表示」 書式「文字列」 設定済み どうにか 0311112222 に変換したい。 至急教えてください(>_<)

  • エクセルで電話番号を - で分割する方法

    エクセルで電話番号のデータが入っています。ハイフンごとで3つのセルに分けて取り出す関数があれば教えてください。 01-2345-6789 012-345-6789 0123-45-6789 01234-5-6789 050-1234-5678 とハイフンの位置も桁も種類があります。左右の部分はLEFTとRIGHTで取り出せるのですが真ん中がうまく取り出せません。 よろしくお願いします。

  • accessで電話番号にハイフンを追加する

    電話番号を識別してハイフンを追加したいです エクセルではこちらの方法が回答でありますがaccessでも可能でしょうか? http://soudan1.biglobe.ne.jp/qa2888873.html

  • 電話番号をハイフンで3つに分割したい

    当方、Excel2000または2003環境です。 電話番号をハイフンで区切って3分割し、それぞれ別のセルに代入したいと考えています。 A列 電話番号(BB-CCCC-DDDD) B列 市外局番(BB部分) C列 2番目(CCCC部分) D列 3番目(DDDD部分) 固定電話、携帯電話、都道府県も異なることから、桁数がバラバラで困っております。 皆様のお知恵をお貸しください。 なにとぞ、よろしくお願いします。

専門家に質問してみよう