子子子子子子(ねこのここねこ)はてブロ部

Macネタが主のIT記事と、興味ある展覧会リストや観覧感想などを書いてますよ。自転車ロードレースも好き。

au携帯の電話帳データが元のvcfファイルの半角カナを全角カナにする

これを記事にして他人に役立つことは無いと思うが自分の備忘録として。
iPhone 5にしたのだが、いままで使っていたG'zOne TYPE-Xの電話帳データを携帯シンクで吸い上げてiPhoneへ移行する予定。電話帳の読みデータが半角カナなので多分iPhone(というかMacのアドレス帳)と相性が悪かろうと思い変換方法を探した。多分Webサービスでも存在すると思うのだけど、個人データを扱うのであまりネットに上げたくない。ということですこし力業を。

作業前

用意するもの:LibreOfficeExcel
これらの表計算ソフトには「JIS」という関数があり、半角を全角にする。つまり半角カナを全角カナにしてくれる。でも余計な作用が有り、半角英数字さえも全角英数字にしてしまう。これは鬱陶しいw
vCard形式のファイルは「○○:△△」の形式。読みデータの半角カナさえ対処すればいいということで、どこが読みデータなのか確認したところ、○○が

  • SOUND;X-IRMC-N
  • SORT-STRING
  • X-PHONETIC-LAST-NAME

の部分であることが判明。
ということで、この部分に続く△△を全角カナにしてしまえば良い。

作業開始

まずvCardファイルを読み込むのだが、テキストとしてコピペするのが良いのでは。そのときに取り込みダイヤログが出るのでコロン区切りで読み込み、△△の部分は文字として取り扱う(電話番号は0で始まるので数字と解釈されると冒頭0が欠けてしまう)。
ということでA列が○○、B列が△△になっているとする。C1に

=IF(OR(A1="SOUND;X-IRMC-N",A1="SORT-STRING",A1="X-PHONETIC-LAST-NAME"),JIS(B1),B1)

という関数を入れて、全行に適用させる。これで読みの部分だけ半角カナが全角カナになる。
そして最後に元の「○○:△△」形式に戻すためD1に

=A1&":"&C1

と入れてやはり全行に適用させる。このD列をコピーしてしまえばこれで望みのvCard形式のテキストが完成する。これを.vcfで保存すればOK。