PR

 先日、携帯電話を買い換えました。パソコンに限らず、携帯電話でも、新機種に買い換えて一番困るのが、アドレス帳やデータの移し変えです。前回、携帯電話を変えたときは、携帯電話会社を変更したので、アドレス帳の移し変えがなかなか大変でした。今回は、同じキャリアだったので、アドレス帳の移行は不要だったのですが、バックアップは重要ですので、念には念を入れて、アドレス帳をバックアップしてみました。

 ここ最近の携帯電話には、必ずと言って良いほど、SDカードなどで、携帯電話の中のデータを外部に保存する機能がついています。これを利用すれば、データのバックアップや、携帯電話の中のデータを編集することができます。(また、SDカードがなくても、赤外線でデータを送ったり、メールにデータを添付することができますので、これを使わない手はありません。)

 今回は、このようにして、携帯電話に登録してあるアドレス帳を、Excelなどで閲覧編集できるCSVファイルに変換するプログラムを作ってみようと思います。

アドレス帳データをCSVデータに変換するプログラム

 では、プログラムから紹介します。

 携帯電話から取り出したアドレス帳のデータは、vCard 形式が多いと思います。このプログラムは、vCard 形式のアドレスデータを、Excelなどで編集できるCSVファイルの形式に変換するプログラムです。

 携帯電話から取り出したアドレス帳のファイル(拡張子が「.VCF」のもの)と同じフォルダーに、以下のなでしこのプログラムを保存して、プログラムを実行してみてください。

実行した画面

【プログラムソース1】

#---------------------------
# 携帯アドレス帳変換
# VCARD を CSV に変換する
#---------------------------
# 変数の初期化
CSVは「名前,電話番号,電子メール」&改行
# エクスポートしたファイルを全て調べる
「*.VCF」のファイル列挙。
反復
  結果は空。
  # 読み込んで1行ずつ解析する
  対象を読む。
  それを反復
    # 種類:値 を区切る
    「:」で区切って Fに代入。
    種類は F[0]
    値は F[1]
    # 種類からオプションを削る
    種類を「;」で区切ってFに代入。
    種類はF[0]
    # 値からオプション記号を削る
    値の「;」を空に置換して値に代入。
    # 同じ項目は上書きしないように
    もし(結果@種類=「」)ならば
      結果@種類=値
  # 値を取得
  名前は結果@「N」
  電話は結果@「TEL」
  メールは結果@「EMAIL」
  CSV=CSV&「{名前},{電話},{メール}」&改行。
# 最終結果を表示    
CSVをメモ記入。

※注意

 取り出したデータの形式は、携帯電話の機種によって、若干違いがあると思います。ここでは、一般的なvCardの形式を対象にしていますが、うまくデータが取り出せないことがあるかもしれません。その場合は、今回の解説を参考にして改良してみてください。

 また、もし、vCardが1アドレス1ファイルとして出力されず、全てのアドレスが1ファイルとして出力された場合、以下のようなプログラムで分割することができます。(区切り記号の「END:VCARD」で区切ることで、複数ファイルに分割しています。)1行目に手元のvCardファイル名を入れ、同じフォルダーに下記プログラムを保存して実行してみてください。「分割-通し番号.vcf」というファイルがたくさんできたと思います。

【プログラムソース2】

「vCardファイル名.vcf」を開く。
「END:VCARD」で区切って反復
  対象を空白除去してSに代入。
  もし、Sが空ならば、続ける。
  S=S&「END:VCARD」
  Sを「分割-{回数}.vcf」へ保存
終わり。

 では、次のページでvCard形式の読み取り方などを解説していきます。