VCFをCSVに変換してExcelで開く方法
VCF(vCard)の連絡先をCSVに変換してExcelで開く方法。iPhone・Android・Googleコンタクトの書き出し形式をまねた見本を実際に変換した結果と、文字化け・電話番号の0が消える問題の直し方、CSVからVCFに戻す方法まで。
VCF(vCard)は連絡先を 1 人 1 ブロックのテキストで書いたファイルで、Excel でそのまま開いても表になりません。表で扱うには CSV に変換します。
この記事では、iPhone・Android・Google コンタクトの書き出し方をまねた見本の VCF を、このサイトの VCF → CSV 変換ツールで実際に変換し、出てきた CSV をそのまま載せています。何が入って何が入らないか、Excel で開くときにどこでつまずくかを、その実物で説明します。
変換の手順(3 ステップ)
- ファイルを入れる — VCF → CSV 変換ツールを開き、
.vcfファイルをドラッグ&ドロップするか、クリックして選びます。1 人分のファイルでも、全員分をまとめた 1 つのファイルでもかまいません。一度に読めるのは 1 つのファイルです。 - 中身を確かめる — 読み取った連絡先が一覧で出ます。上に出る「○ 件の連絡先」が、見出しの行を除いた CSV の行数になります。
- CSV をダウンロードする — 「CSVダウンロード」を押すと
contacts.csvが保存されます。
読み取りも CSV の作成も、すべてブラウザの中で行います。連絡先がサーバーに送られることはありません。
実際に変換するとこうなる
書き出し元によって VCF の書き方は少しずつ違います。次の 3 つは、それぞれの書き出し方をまねて作った見本です(人物はすべて架空です)。
iPhone からの書き出し
vCard 3.0 です。メールや住所の行の頭に、item1. のような印が付くことがあります。2 人目は、名前もメールも無く、電話番号だけの連絡先です。
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iPhone OS 18.0//EN
N:山田;太郎;;;
FN:山田 太郎
ORG:サンプル商事;営業部;
TEL;type=CELL;type=VOICE;type=pref:090-1234-5678
TEL;type=WORK;type=VOICE:03-1234-5678
item1.EMAIL;type=INTERNET;type=pref:taro@example.com
item1.X-ABLabel:仕事
item2.ADR;type=HOME;type=pref:;;渋谷1-2-3;渋谷区;東京都;150-0002;日本
item2.X-ABADR:jp
BDAY:1990-04-01
NOTE:メモは CSV に入りません
END:VCARD
BEGIN:VCARD
VERSION:3.0
TEL;type=CELL:080-0000-1111
END:VCARD Android 標準の書き出し
vCard 2.1 です。日本語の名前は =E4=BD=90… のような QUOTED-PRINTABLE という形で書かれ、テキストエディタで開いても読めません。
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E4=BD=90=E8=97=A4;=E8=8A=B1=E5=AD=90;;;
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E4=BD=90=E8=97=A4=20=E8=8A=B1=E5=AD=90
TEL;CELL:08023456789
EMAIL;HOME:hanako@example.jp
END:VCARD Google コンタクトからの書き出し
BEGIN:VCARD
VERSION:3.0
FN:鈴木 一郎
N:鈴木;一郎;;;
EMAIL;TYPE=INTERNET;TYPE=WORK:ichiro@example.com
EMAIL;TYPE=INTERNET;TYPE=HOME:ichiro.suzuki@example.net
TEL;TYPE=CELL:070-3456-7890
ADR;TYPE=WORK:;;梅田1-1-1;大阪市北区;大阪府;530-0001;日本
ORG:サンプル工業
CATEGORIES:myContacts
END:VCARD 出てきた CSV
この 3 つを 1 つのファイルにまとめてツールに入れると、画面には「3 件の連絡先」と出て、次の contacts.csv がダウンロードされました(中身をそのまま載せています)。
名前,メール,電話番号,住所,会社名
山田 太郎,taro@example.com,090-1234-5678; 03-1234-5678,渋谷1-2-3 渋谷区 東京都 150-0002 日本,サンプル商事 営業部
佐藤 花子,hanako@example.jp,08023456789,,
鈴木 一郎,ichiro@example.com; ichiro.suzuki@example.net,070-3456-7890,梅田1-1-1 大阪市北区 大阪府 530-0001 日本,サンプル工業 表にすると、次のようになります。
| 名前 | メール | 電話番号 | 住所 | 会社名 |
|---|---|---|---|---|
| 山田 太郎 | taro@example.com | 090-1234-5678; 03-1234-5678 | 渋谷1-2-3 渋谷区 東京都 150-0002 日本 | サンプル商事 営業部 |
| 佐藤 花子 | hanako@example.jp | 08023456789 | ||
| 鈴木 一郎 | ichiro@example.com; ichiro.suzuki@example.net | 070-3456-7890 | 梅田1-1-1 大阪市北区 大阪府 530-0001 日本 | サンプル工業 |
読み取れることを並べると、次のとおりです。
- VCF には 4 人いますが、CSV は 3 行です。電話番号だけの連絡先は、名前もメールも無いので入りません。
- Android の
=E4=BD=90…は「佐藤 花子」に戻っています。 - 電話番号やメールが 2 つある人は、1 つのセルに「
;」(セミコロンと空白)でつながっています。 - 住所は 1 つのセルに入り、「番地 → 市区町村 → 都道府県 → 郵便番号 → 国」の順に並びます。日本の住所の書き方とは逆向きです。
- 佐藤 花子さんの電話番号は、ハイフンの無い数字だけで書かれています。Excel で開くときに先頭の 0 が消えるのは、この形です(後述)。
- 誕生日・メモ・「仕事」のようなラベル・グループ(
CATEGORIES)は入っていません。
CSV に入るもの・入らないもの
ツールが CSV に書き出す列は 5 つです。vCard のどの項目がどの列になるかは、次のとおりです。
| CSV の列 | 元の vCard の項目 | まとめ方 |
|---|---|---|
| 名前 | FN(無ければ N) | FN が無いときは N の部分を姓・名の順に空白でつなぐ |
| メール | EMAIL | 複数あれば「; 」でつなぐ |
| 電話番号 | TEL | 複数あれば「; 」でつなぐ。「携帯」「勤務先」などの種類は付かない |
| 住所 | ADR | 空でない部分を、私書箱・建物名など・番地・市区町村・都道府県・郵便番号・国の順に空白でつなぐ。複数あれば「; 」 |
| 会社名 | ORG | 会社名・部署名を空白でつなぐ |
これ以外の項目は CSV に入りません。写真・メモ・誕生日・役職・ふりがな(読み)・ウェブサイト・グループなどです。必要なら、VCF のまま連絡先アプリや Google コンタクトに取り込むほうが確実です。
また、名前(FN か N)もメールアドレスも無い連絡先は 1 行にしません。電話番号だけの連絡先が CSV から抜けていたら、これが理由です。
古い携帯電話が書き出す、CHARSET=SHIFT_JIS のように文字コードを書き添えた VCF も、その指定どおりに読みます。ただし、指定が無いまま Shift_JIS で書かれた VCF は UTF-8 として読むので、名前などが文字化けします。書き出す CSV は、元のファイルが何であっても UTF-8 です。
Excel で開くとき(文字化け・電話番号の 0)
文字化けはしにくい
ツールが書き出す CSV は UTF-8 で、先頭に BOM(バイト オーダー マーク)という目印を付けています。Microsoft のサポート記事は「UTF-8 でエンコードされた CSV ファイルは、BOM (バイト オーダー マーク) で保存されている場合、通常どおり開くことができます」としていて、ダブルクリックで開いても日本語のまま表示されるのが普通です。
それでも文字化けしたときは、ダブルクリックせずに読み込みます。Excel の「データ」タブ →「テキストまたは CSV から」で CSV を選び、プレビュー画面の左上の「元のファイル」を「65001: Unicode (UTF-8)」にしてから「読み込み」を押します。Microsoft の記事が、BOM の無い UTF-8 の CSV を開く方法として挙げている、Power Query で読み込むやり方です。くわしくは「CSV を Excel で開くと文字化けする理由と、3つの直し方」で説明しています。
電話番号の先頭の 0 が消える
見本の佐藤 花子さんの「08023456789」のように、数字だけの電話番号が 1 つだけ入ったセルは、Excel が数値として読み、先頭の 0 を落とします。鈴木 一郎さんのようにハイフンの入った番号や、山田 太郎さんのように 2 つの番号が「; 」でつながったセルは数値とはみなされないので、0 は残ります。ハイフンの有無は書き出し元の連絡先の書き方しだいで、ツールは書き換えません。防ぎ方は 2 つあります。
- Microsoft 365・Excel 2024 — 「ファイル」→「オプション」→「データ」の「自動データ変換」で、「数値テキストから先頭のゼロを削除して数値に変換する」のチェックを外してから CSV を開きます(Mac 版は「Excel」→「環境設定」→「編集」)。Microsoft の説明では、この変換は .csv ファイルを開くときにも働き、初期状態ではオンです。
- Excel 2016 以降(Mac 版は Microsoft 365 と 2024) — 上と同じ「テキストまたは CSV から」でファイルを選びます。プレビューの画面で「データ型検出」を「データ型を検出しない」に変えて「読み込み」を押すと、全部の列が文字列として入ります。電話番号の列だけを文字列にしたいなら、同じ画面で「データの変換」を押し、Power Query エディターで列を選んで「データ型」→「テキスト」にします(「列の種類の変更」の確認が出たら「現在を置換」)。最後に「閉じて読み込む」を押します。
設定を変えずにダブルクリックで開いた場合は、開いた時点で 0 が落ちています。あとからセルを文字列の書式にしても戻らないので、上書き保存せずに閉じ、上のどちらかの方法で開き直してください。
Google スプレッドシートで開くとき
- Google スプレッドシートで新しいスプレッドシートを作ります。
- 「ファイル」→「インポート」で
contacts.csvを選びます。 - 「区切り文字」を「カンマ」(または「自動的に検出」)にして、「インポート」を押します。
UTF-8 の日本語はそのまま表示されます。数字だけの電話番号は、読み込んだあとで先頭の 0 が残っているかを確かめてください。
iPhone の連絡先を VCF にする
iPhone の連絡先は、iPhone の連絡先アプリから VCF に書き出せます。Apple の iPhone ユーザガイドに書かれている手順は次のとおりです。
- 連絡先アプリを開き、「リスト」ボタンをタップします。
- 書き出したいリストをタッチして押さえたままにします。
- 「書き出す」をタップし、含めたい項目を選んでから「完了」をタップします。
- 「メッセージ」や「メール」など、書き出した連絡先カードを送信または保存する方法を選びます。
パソコンで作業したいときは、ブラウザで iCloud.com を使う方法もあります。Apple によると、iCloud.com の「連絡先」でアクセスできるのは iCloud に保存した連絡先で、使うにはタブレットかコンピュータが必要です。Apple のサポートページの手順は次のとおりです。
- icloud.com/contacts を開き、Apple Account でサインインします。
- リストの上部にある「操作」ボタンから「すべての連絡先を選択」を選びます(一部だけなら、Windows は Control キー、Mac は Command キーを押しながらクリックします)。
- 右側の「共有」ボタンから「vCard を書き出す」を選びます。
iCloud.com で複数の連絡先を選ぶと、全員分が 1 つの vCard ファイルになります。どちらの方法でも、書き出したファイルを変換ツールに入れれば CSV になります。
CSV を VCF に戻したいとき
このサイトのツールは、VCF から CSV への一方向だけです。CSV を VCF にするには、Google コンタクトを経由する方法があります。
- CSV の 1 行目(見出し)を、Google コンタクトが読む名前にそろえます。Google のヘルプにあるサンプル テンプレートの見出しで、たとえば姓は
Last Name、名はFirst Name、メールはEmail 1 - Value、電話番号はPhone 1 - Value、会社名はOrganization Nameです。名前は姓と名の 2 列に分けます(分けずにFirst Nameに入れると、全体が「名」になります)。2 つ目のメールや電話番号はEmail 2 - Valueのように列を足して分け、住所はAddress 1 - Street・Address 1 - Cityのように部分ごとの列に分けます(このツールの CSV は住所を空白でつないでいるので、手で分けます)。Excel で直すときは、上の「電話番号の先頭の 0 が消える」の方法で 0 を残して開き、「CSV UTF-8 (コンマ区切り)」で保存します。「自動データ変換」の設定を変えずにダブルクリックで開いて保存すると、0 が消えた番号が Google に入ります。 - パソコンで Google コンタクトを開き、左側の「インポート」→「ファイルを選択」で CSV を選んで「インポート」を押します。
- 取り込んだ連絡先のチェックボックスをオンにし、右上の「その他の操作」アイコンから「エクスポート」を選んで、形式に vCard を選びます。
Google のヘルプによると、見出しは連絡先の情報をどの欄に入れるかを決めるのに使われるので、消してはいけません。取り込んだあとで情報が見当たらないときは、その連絡先のメモ欄を見るように、とも書かれています。一度に取り込む件数が 3,000 件を超えるときは、複数のファイルに分けます。
このツールで作った CSV から戻す場合、CSV に入らなかった写真・メモ・誕生日や電話番号の種類は戻りません。元の VCF が手元にあるなら、Google コンタクトは VCF もそのまま取り込めるので、CSV を経由せずに VCF を使ってください。
まとめ
- VCF → CSV 変換ツールにファイルを入れて「CSVダウンロード」を押せば、
contacts.csvができます。処理はブラウザの中だけです。 - CSV の列は名前・メール・電話番号・住所・会社名の 5 つです。複数の値は 1 つのセルに「
;」でつながり、写真やメモなどは入りません。 - BOM 付きの UTF-8 なので、Excel でも文字化けはしにくい形です。気をつけるのは、数字だけの電話番号の先頭の 0 です。
よくある質問
変換したのに連絡先が 1 件も出ません。
BEGIN:VCARD かを見てください。違う場合は、連絡先アプリからの書き出しが途中で失敗しているか、別の形式です。vCard であっても、名前もメールアドレスも無い連絡先しか入っていないと、1 件も出ずに「このファイルには、名前かメールアドレスのある連絡先がありませんでした。」と表示されます。 VCF の件数より CSV の行が少ないのはなぜですか?
この記事を書いた人
Ren
OpenedFile 開発者
OpenedFile を一人で作って運用しています。きっかけは、届いたメールの winmail.dat がどうやっても開けなかったこと。見つかるオンライン変換サービスはどれも「まずファイルをサーバーにアップロードしてください」というものばかりでした。それなら自分で書こうとTNEF パーサをフルスクラッチで実装し、以来このサイトのツールはすべてブラウザ内で完結しています。
OpenedFile について