2012年3月29日木曜日

Automator.appを利用して携帯電話番号に半角スペースを入力する

先の記事でも書いたが、iCloudの連絡先データに記録している電話番号の書式がバラバラになっている。 Bentoでそのデータをみると入力したままの状態で見えるため非常に気になる。 そんなにたくさんのデータがあるわけではないが、1つ1つトラックパッド(マウス)で文字を選択し、クリックしてキーボードで変更を加えるのは非常に面倒くさい。

例えば、090XXXXXXXXというように携帯の番号を半角スペースで区切っておきたいという場合だ。 FileMaker11であればスクリプトで一気に処理してしまうが、FileMakerは連絡先のデータベースにアクセスする機能がない。 かといって、Bentoには自動化処理の機能が無い。 後はAppleScriptを利用することを考えるが、ぱっと調べた限りではできそうにない。

ということで一気に処理することは諦めて、キーボードで半角スペースを入力する手間だけでも楽にできないかと思い、Automator.appとAppleScriptを合わせて使うことにした。

何をするかというと、

Automator.appのサービスを利用して、携帯電話の番号(11文字)の数字を選択している状態でコンテキストメニューを呼び出し、半角スペース2つを含んだ携帯番号(13文字)に変更する。

という処理。

例)090XXXXXXXX → 090 XXXX XXXX

どうやって作るかというと、
Automator.appを起動し新規書類でサービスを選ぶ。
ウインドウの右上にある「選択されたテキストを出力で置き換える」のチェックボックスにチェックを入れ、「AppleScriptを実行」を追加し、以下のスクリプトを入力して保存する。


on run {input, parameters}
(* 携帯電話番号 090XXXXXXXX などの文字列に半角スペースの区切りを入れる *)
set str1 to input as text --テキストとして変数に格納
set str2 to characters of str1 --文字単位に分解
set cnt to count of str2 --文字数を取得
set t to ""
repeat with c from 1 to cnt
if c = 4 or c = 8 then
set t to t & " " & item c of str2 --48番目の数字の前に半角スペースを入れる
else
set t to t & item c of str2
end if
end repeat
return t
end run


これで、できあがり。
テキストエディットなどで試しに090XXXXXXXXと入力してコンテキストメニューを呼び出してさっき作ったメニューを選べば動作するはず。(初回はちょっと時間がかかるかも)

ダウンロード:携帯電話番号に区切りを入れる.workflow.zip (88KB)

解凍すると、「携帯電話番号に区切りを入れる.workflow」ができ、ダブルクリックで~/Library/Servicesにインストールされる。

0 件のコメント:

コメントを投稿