• 締切済み

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

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

みんなの回答

回答No.2

Accessで考えてみました。 市外局番のデータを質問文中のリンクを参考にAccessのテーブルに取り込みます。 これを『局番』テーブル コード  テキスト型 番号区画 メモ型 市外局番 テキスト型 コード|  番号区画                |市外局番 1  |北海道江別市、札幌市、北広島市、空知郡南幌町|11 1000 |    携帯                |090 ・・・にします。 今回使用するフィールドは市外局番だけなので他のは削っても構いません。 『電話番号』テーブル 番号 テキスト型 氏名 ・・・ 番号   |氏名 |・・・| 030000xxxx|佐々木|・・・ ・・・ の様だとしたら、新たに2フィールドを追加します。 番号|氏名|・・・|番号改|確定 確定フィールドはYes/No型にしてください。 以下を標準モジュールにコピペし、chgPhoneを実行します。 Sub chgPhone() '電話番号をハイフン付きにします   Dim DB As Database   Dim RS As DAO.Recordset, rsFrom As DAO.Recordset   Dim TelNo() As Variant, TelTemp As String, i As Long   Dim t As Single      t = Timer   Set DB = CurrentDb   Set rsFrom = DB.OpenRecordset("SELECT * FROM 電話番号", dbOpenDynaset)   Set RS = DB.OpenRecordset("SELECT 市外局番 FROM 局番 ", dbOpenSnapshot)      Do Until rsFrom.EOF     RS.MoveFirst     i = 0     ReDim TelNo(i)     Do Until RS.EOF       If RS!市外局番 = Mid(rsFrom!番号, 2, Len(RS!市外局番)) Then         '市外局番の候補を配列に         ReDim Preserve TelNo(i)         TelNo(i) = "0" & RS!市外局番         i = i + 1       End If       RS.MoveNext     Loop          Select Case i       Case 0         '       Case 1       rsFrom.Edit       rsFrom!番号改 = TelNo(0) & "-" _               & Mid(rsFrom!番号, Len(TelNo(0)) + 1, Len(rsFrom!番号) - Len(TelNo(0)) - 4) & "-" _               & Right(rsFrom!番号, 4)       rsFrom!確定 = True       rsFrom.Update       Case Else       TelTemp = myMax(TelNo())       rsFrom.Edit       rsFrom!番号改 = TelTemp & "-" _               & Mid(rsFrom!番号, Len(TelTemp) + 1, Len(rsFrom!番号) - Len(TelTemp) - 4) & "-" _               & Right(rsFrom!番号, 4)       rsFrom!確定 = False       rsFrom.Update     End Select     rsFrom.MoveNext   Loop   RS.Close: Set RS = Nothing   rsFrom.Close: Set rsFrom = Nothing   Debug.Print (Timer - t) * 1000 End Sub Private Function myMax(aryX() As Variant) As Variant   '市外局番が途中まで同じ場合は最長のものを採用   Dim v As Variant, i As Long   For Each v In aryX     If IsEmpty(myMax) Or IsNull(myMax) Or v > myMax Then       myMax = v     End If     i = i + 1   Next End Function 確定フィールドについて。 総務省の一覧を見ると コード  番号区画       市外局番 20   北海道茅部郡鹿部町   1372 21   北海道茅部郡森町    1374 22   北海道二海郡八雲町() 137 23   北海道山越郡      1377 などのような市外局番の番号の振り方があります。 電話番号が、013723xxxx だとして 市外局番が0137-23-xxxx なのか あるいは、01372-3-xxxx にすべきなのか判断できないため付け足しました。 当方、市外局番/市内局番の番号の振り方の規則は不明です。

  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.1

一番簡単なのは「Excelのブックを、Accessのデータベースとリンクして、変換(ハイフン追加)はExcelで行なう」です。 質問文にある、Excelでの方法をそのまま使って、作業用のExcelブックに「Sheet1のデータにハイフン追加する」と言うマクロを書いて、Sheet1をAccessのデータベースにリンクします。 Accessのマクロで「SQL文などでSheet1とリンクしたテーブルに変換前のデータを書き込む」→「Excelのマクロを呼び出す」→「SQL文などでSheet1とリンクしたテーブルのデータを、元データと置き換える」とすれば、目的が達成できます。

関連するQ&A

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

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

  • エクセルで電話番号にハイフンを入れるには?

    教えて下さい。 エクセルで電話番号にハイフンを入れたいと思ってます。 市外局番や間の桁数が違うのですが、いい方法を教えて下さい。 例) 092***1111 → 092-***-1111 03****3222 → 03-****-3222 0999**0000 → 0999-**-0000 01234*2222 → 01234-*-2222 という感じです。 いい方法があれば教えて下さい。

  • 電話番号にハイフンを入れることはできますか?

    ある個人情報データベースの中の電話番号はハイフンなしで存在しています。 このデータベースを複製して、複製するときにはハイフン有りの状態にするのですが、毎回市外局番を調べて手入力で作業を行っています。これがとても面倒なので作業を簡易化できないかと考えていますが、どうすればいいものやら…。 ちなみにデータベースはCSVでダウンロードしてエクセルで編集しています。 なにかいい方法はありませんでしょうか。

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

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

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

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

  • Accessの電話番号フィールド

    Access2000以降について質問です。 顧客記録の電話番号フィールドについてお尋ねします。 異なるデータソース(テキスト形式)から各々に電話番号フィールドを含む2つのテーブルを作成したのですが、電話番号のフィールドがテーブル1では「ハイフンつき」の電話番号、テーブル2のほうでは「ハイフンなし」の電話番号になっています。また、いずれのフィールドもデータ型は「テキスト型」になっています。 やりたいことはテーブル1の電話番号にはないテーブル2の電話番号を含むレコードを不一致クエリを用いて抽出したいのですが、ハイフンがあるために全て不一致になってしまいます。 ハイフンを入れるのは地方の電話番号が多いため市外局番が3桁や4桁などで不揃いのためLEFT、RIGHT関数を用いて入れるのは不可能です。 そこでテーブル1のハイフンつき電話番号フィールドからハイフンを取り除きたいのですが、なにか方法はありませんか?VBAは分からないのでそれ以外でやる方法があれば教えて下さい。お願いします。

  • エクセルで電話番号にハイフンを入れるには?

    はじめまして、表題の通りですが、なかなか難しくてうまく解決できませんので、ここで質問させていただきます。 電話番号に半角のハイフン(-)を入れて見やすくしたいと考えています。 電話番号には090などで始まる携帯の番号、大阪のように06で始まる番号、京都のように075で始まる番号、西宮市のように0798で始まる番号といろいろ入力されています。それぞれの市外局番の後にハイフンを入れて、残りの番号が8桁なら4桁+ハイフン+4桁、7桁なら3桁+4桁、6桁なら2桁+ハイフン+4桁のようにハイフンを入れていくにはどうしたらよいでしょうか? (例) 09012345678→090-1234-5678 0612345678→06-1234-5678 0751234567→075-123-4567 0798123456→0798-12-3456

  • 電話番号のハイフンをとる

    電話番号のハイフンをとるた検索、置換をかけた後、頭の0が消えてしまうのですが 0を残すためにはどうすればよいでしょうか?

  • Excelで電話番号などの-(ハイフン)を一括で消す方法

    Excelで顧客名簿などを作成しております。 その際、電話番号などを例えば012-456-7890 と入力してるのですが、それを01234567890とハイフンを消して 入力したいのですが、ハイフンを一括で消す方法どなたかご存じ無いでしょうか? かなり困っております。 よろしくお願いします。

  • 携帯電話のハイフン付き番号表示

    携帯電話のアドレス帳を検索すると登録した電話番号がハイフン無しで表示されますが、ハイフンをつけて登録・表示する方法はあるのでしょうか?