連絡帳データのCSV書き出しで、姓名の順を変えない方法

連絡帳データをvCARD形式で書き出し、フリーソフトを使ってCSVに変換し、同じくフリーの住所管理ソフトで取り込もうとした時、姓と名が入れ替わってしまいます

アップル連絡帳のオプションで姓名の表示順を変更したりしましたが、反映されませんでした

連絡帳をiクラウド経由でiphoneと同期させ、有料のAnyTransを使ってPCに取り込みましたが、やはりAnyTrans上では

姓名が入れ替わっています


どうすればよろしいのでしょうか?

iMac (21.5-inch, Late 2012), iOS 9.3.2

投稿日 2016/07/26 00:29

返信
返信: 21

2016/07/29 05:47 アイリッシュ への返信

度々、失礼致します。

アイリッシュ による書き込み:


first nameで返ってくるのは「名」です

Last nameは「姓」が返っていますので、問題ないのかもしれません

ただ、結果表示が(名、姓)となっていました

その場合、Macの連絡先アプリには、姓名の情報が正しく入力されていることになります。 なので、CSVファイルに変換する過程に姓名が入れ替わる原因がありそうです。 xyさんが、最初に提案されているように、姓名の順序を指定してCSVファイルを作成できるようなソフトウェアに変更しても良さそうです。


また、上に引用した3つのスレッドのうち、最後のスレッドでは、Winodws PC用のアプリケーション(Outlook)と連絡先情報を同期する場合にも姓名の入れ替わってしまうみたいなので、OSの違いも関係しているのかもしれません。

2016/07/29 05:48 T22T への返信

T22T様

返信に失敗したようですので、ダブルかもしれませんが再度書き込みます


熱心な回答ありがとうございます

スクリプトを実行した結果、first nameには正しく名が返っています

last nameも姓が返っていますので、問題ないと思います

ただ結果を返すところのかっこの中が、名姓の順になっていますが、

スクリプトの構文からするとそれで良いのでしょうね

ただ、前後に*記号が加わっていました


「OSのアップグレードの過程で発生した不具合」とのアドバイスで思い出したのですが、

ずいぶん前にマックを初めて手にした時にWINからのデータ移行で姓名の順についてずいぶん

試行錯誤したことを思い出しました

その時に何か不適切なことをやってしまっていたのかもしれないと思い出したのですが、

スノーレパードから始まって現在まで何度もOSのクリーンインスツールをやっていますので

関係ないと思いますが?


何れにしても、連絡帳データの移行について私のように苦労しているのはレアなケースなのでしょうか

2016/07/29 06:10 アイリッシュ への返信

追記: AppleScriptから直接CSVファイルを作ることも可能です。 しかしながら、ユーザーの必要に合わせる形で細かい調整の繰り返しが必要になってしまいます。 


例えば、以下のAppleScriptでは、選択した連絡先のカードの名前、住所、電話番号、メールアドレスの順でCSVファイルを作成します。 ファイルはデスクトップに”Untitled.csv”の名前で保存されます。 もともと同じ名前のファイルがデスクトップある場合は、そのファイルの最後に追加する形で書き込みます。


tell application "Contacts"

set personList to selection# 選択したカードのリストを作成

set str to ""

repeat with thePerson in personList# リストの項目毎に繰り返し

tell thePerson

set str to str & name & "," # 名前

try

set str to str & (formatted address of address 1) & "," # 住所(一つ目)

on error

set str to str & ","

end try


try

set str to str & value of phone 1 & "," # 電話番号(一つ目)

on error

set str to str & ","

end try


try

set str to str & value of email 1 # メールアドレス(一つ目)

on error

set str to str & ","

end try


end tell

set str to str & return # 改行

end repeat

my writeTextFile(str) # ハンドラーへ

end tell


-- csvファイルの書き出し

on writeTextFile(aString)

set thePath to (path to desktop folder) as text

set theName to "Untitled.csv"

set theFS to open for accessfile (thePath & theName) with write permission


writeaStringtotheFSstarting ateof


close accesstheFS

end writeTextFile


(住所のテキスト情報に改行が入っている場合は、取り除く処理を加える必要があるかもしれないです)


書き出すことができる項目は、スクリプトエディタ.appで表示できる連絡先アプリの辞書にある、Personのクラスのエレメントやプロパディの情報になります。 

ユーザがアップロードしたファイル

2016/07/29 06:14 アイリッシュ への返信

度々、失礼致します。

アイリッシュ による書き込み:


ただ結果を返すところのかっこの中が、名姓の順になっていますが、

スクリプトの構文からするとそれで良いのでしょうね

その通りです。

ただ、前後に*記号が加わっていました

これは正常です。ログを示す記号になります。

何れにしても、連絡帳データの移行について私のように苦労しているのはレアなケースなのでしょうか

上に引用した3つのスレッドの実例がありますので、レアではなく、よくありそうなことのようです。

2016/07/29 06:49 T22T への返信

T22T様

スクリプトの構文でlog以下の名と姓を入れ替えて実行したところ、思ったように

(*姓:◯◯ 名:◯◯*)と結果表示されています

以上のことから、連絡帳データには異常は無いことが確認できたようですので、

ご指摘のようにCSV形式への変換の過程で思わぬことが起こっているようです


これ以上は私の力では解決できそうにありませんので、実用上は手作業で修正するなどして

乗り切ることにします


長い間ありがとうございました

教えていただいたCSVファイル作成のスクリプトを試したりしながら

私なりに何か便利な方法が見つかれば、おしらせします

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

連絡帳データのCSV書き出しで、姓名の順を変えない方法

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