連絡先appから書き出した.vcfカードを同じ連絡先appに読み込んだ時、カード内容が反映せず”名前なし”となる

macOS 26.4 Tahoeの連絡先appバージョン14.0 (2732.500.131.1.1)における事象です。


手順)

1.連絡先appで特定の連絡先を選択し「ファイル>書き出す>vCardを書き出す...」で.vcfカードに出力する。

出力したデータ(個人情報はマスクしてありますが正しい内容が書き出されている

  

2.当該.vcfファイルをQuickLookで表示した場合も内容は表示されない。

 (住所の先頭になる郵便番号だけが表示される)

  

3.該当連絡先を削除したのち、書き出した.vcfファイルを連絡先appに読み込ませたところ

 郵便番号以外のデータが全く読み込まれず”名前なし”となってしまう。


この事象について、何かご存知の方はお知らせください。



※ 今まで連絡先のバックアップとしてvCardへの書き出し保存で対応していましたが、そのデータから復元できないのでは話になりません。



MacBook Air 13″, macOS 26.4

投稿日 2026/04/04 22:56

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2026/04/05 02:02

うまく動作するロジックを見つけました。

How Do I Export vCards from Apple Contacts using AppleScript? - Questions & Suggestions - Keyboard Maestro Discourse

これです。

	set HomePath to (path to home folder) as text
	set FolderPath to "temp:"
	set FolderPath1 to HomePath & FolderPath as text
	do shell script "mkdir -p " & POSIX path of FolderPath1
	
	alias FolderPath1
	tell application "Contacts"
		set {contactNames, vCards} to {name, vcard} of people
		quit
	end tell
	set treatedNames to {}
	repeat with i from 1 to (count contactNames)
		set bareName to (item i of contactNames)
		if bareName is in treatedNames then
			set nameOfvCard to bareName & "_" & i & ".vcf"
		else
			set end of treatedNames to bareName
			set nameOfvCard to bareName & ".vcf"
		end if
		set outFile to (open for access file (FolderPath1 & nameOfvCard) with write permission)
		try
			set eof outFile to 0
			write (item i of vCards) to outFile as «class utf8»
		end try
		close access outFile
	end repeat
	


ポイントは、

  1. vCardを配列として連絡先appから取り出す。
  2. tell application "Contacts"の外でその配列をファイルに書き出す。

これでうまくutf8で書き出してくれるようになりました。


もっといい方法があればお教えください。

よろしくお願いします。

返信: 20

連絡先appから書き出した.vcfカードを同じ連絡先appに読み込んだ時、カード内容が反映せず”名前なし”となる

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。