OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 困ってます
  • 質問No.242378
  • 閲覧数1054
  • ありがとう数8
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 90% (118/130)

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

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

  • 回答No.5
レベル13

ベストアンサー率 68% (791/1163)

市外局番の桁数には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

お礼率 90% (118/130)

ご丁寧にありがとうございます。
関数もユーザー定義できるのですね。
勉強になりました。
投稿日時 - 2002-03-29 20:22:22
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.2
レベル11

ベストアンサー率 32% (146/451)

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

文字列としている場合は、lehuaさんが試されたとおり、
単純な書式設定では変更できないかもしれません。
まあ、詳しく調べたわけではないので、
どなたかのフォローでもあれば幸いですが・・・。
補足コメント
lehua

お礼率 90% (118/130)

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

  • 回答No.1
レベル13

ベストアンサー率 23% (293/1250)

「セルの書式設定→表示形式→文字列」としてやれば、 入力したそのものが表示されるようになりますよ。 ...続きを読む
「セルの書式設定→表示形式→文字列」としてやれば、
入力したそのものが表示されるようになりますよ。
補足コメント
lehua

お礼率 90% (118/130)

tomikou0000さん、早速の回答ありがとうございます。
説明が解りにくくて申し訳ないです。
入力したそのものが0333333333なので、教えてくださった操作ですと
変化ナシです。
他に方法がありましたらご指導お願いします。
投稿日時 - 2002-03-27 16:28:57
  • 回答No.3
レベル13

ベストアンサー率 23% (293/1250)

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

失礼しました。
お礼コメント
lehua

お礼率 90% (118/130)

いえいえ、とんでもないです。
回答してくださってありがとうございました。
投稿日時 - 2002-03-27 19:55:01
  • 回答No.4

市外局番の桁数がわからないのかもしれないと思い書きます。 電話番号に対してソートをし、それぞれ手入力をするのが早いと思います。 ソートの説明を書いた部分 http://oshiete1.goo.ne.jp/kotaeru.php3?q=242234 市外局番一覧表 http://www.scoutnet.or.jp/~yatsu/tel-index.html ですかね… 電話番号 ...続きを読む
市外局番の桁数がわからないのかもしれないと思い書きます。

電話番号に対してソートをし、それぞれ手入力をするのが早いと思います。
ソートの説明を書いた部分
http://oshiete1.goo.ne.jp/kotaeru.php3?q=242234

市外局番一覧表
http://www.scoutnet.or.jp/~yatsu/tel-index.html

ですかね…
電話番号部分をコピーしてテキストエディタへ貼り付けると作業が多少楽にはなります。
ならび順を元に戻したいのであれば列を一列追加して通し番号をつけておけば
同じ理屈でソートできます…
他にもっといい方法があるかもしれませんけどね…
お礼コメント
lehua

お礼率 90% (118/130)

手入力が早いのかも知れないです。
便利なURLも教えて下さってどうもありがとうございます。
投稿日時 - 2002-03-29 20:20:53
  • 回答No.6
レベル14

ベストアンサー率 28% (4323/15250)

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

お礼率 90% (118/130)

アドバイスありがとうございます。
プログラミングできる人にも相談してみようと思います。
ちょっと自力では能力不足で無理そうです。
投稿日時 - 2002-03-29 20:24:28
  • 回答No.7
レベル7

ベストアンサー率 68% (11/16)

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

最新かどうかは不明です。
どこかに良い一覧があれば
教えて下さい。
それを基に作ります。

地域はある程度限定できませんか。
関東、関西
なるべく小さい方が良いです。

マクロですが簡単です。
良かったら連絡下さい。


電話番号のある列は、何列ですか。
お礼コメント
lehua

お礼率 90% (118/130)

どうもありがとうございます。
解決のメドがたちました。
また何かありましたらアドバイスお願いします。
投稿日時 - 2002-03-29 20:27:07
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ