« Excel用Automatorアクションを作る(1) | トップページ | 梅の花が咲き始めました »

2008年2月21日 (木)

Excel用Automatorアクションを作る(2)

前回 で、Excelのセルをリストの形で読み書きする事に成功しましたが、TSV(タブ区切り)形式で読み書きをしたいので、リストとTSV形式を変換するためのスクリプトを作成します。

色々とネットで調べてみると「set AppleScript's text item delimiters」を使うと、テキストを自由に区切ることができることが解りました。しかし、AppleScriptの文法が良く解っていないため、色々と試行錯誤を行なわなければなりませんでしたが、ようやく動作するコードができました。

リストをTSV形式の文字列に変換するには、下記のスクリプトでいけるようです。動作の内容は注釈を参考にしてください。

----
-- テキストの区切りをタブに設定。
set savedDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to tab

-- 改行コード(LF)を準備。
set lineFeed to ASCII character (10)

-- リストtheListから1つづつリストを取り出し、
-- タブ区切り文字に変換して、tsvStringに追加していく。
set tsvString to ""
repeat with theRow in theList
    set tsvString to (tsvString & theRow as string) & lineFeed
end repeat

-- テキスト区切りを元に戻す。
set AppleScript's text item delimiters to savedDelimiters
----

逆にTSV形式をリストに変換するスクリプトは下記のようになります。こちらの方は少し複雑になりました。文字列を改行コードで区切ってリストに取り出し、次にリストに登録された行をタブコードで区切ってリストに登録しています。

----
-- テキストの区切りを改行に設定。
set savedDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to return

-- 1行づつ切り出し、リストlineListに追加していく。
set lineList to {}
repeat with index from 1 to count text items in tsvString
    set oneLine to text item index of tsvString
    if oneLine is not equal to "" then
        set the end of lineList to oneLine
    end if
end repeat

-- テキストの区切りをタブに設定。
set AppleScript's text item delimiters to tab

-- 1行をリストに変換し、リストtheListに追加していく。
set theList to {}
repeat with column in lineList
    set the end of theList to (every text item of column)
end repeat

-- テキスト区切りを元に戻す。
set AppleScript's text item delimiters to savedDelimiters
----

これらのスクリプトを前回のスクリプトと合わせると、Excelのセルの内容をTSV形式の文字列で読み書きすることができます。

しかし、今のままではセルの範囲は固定ですし、セルに書き込むデータ、セルから読み出したデータの受け渡しを行う必要があります。次回、実際にAutomatorアクションの制作に入ります。

« Excel用Automatorアクションを作る(1) | トップページ | 梅の花が咲き始めました »

Mac」カテゴリの記事

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/212936/40212330

この記事へのトラックバック一覧です: Excel用Automatorアクションを作る(2):

« Excel用Automatorアクションを作る(1) | トップページ | 梅の花が咲き始めました »

フォト

最近のトラックバック

無料ブログはココログ