フォロワー

2014年12月12日金曜日

AppleScript : tell application "Microsoft Word" したら、あれ!仮想マシンのWordが起動された!!!

tell application "Microsoft Word"

    set newDoc to make new document

end tell

このように新しワード文書を作ろうと思ったら、Parallels Desktop 仮想マシン内の Word が起動しようとします。

恐らく VMware Fusion を入れた場合も同じ現象が発生しますが、

当分の方法として、わざと"Microsoft Word 2011" とかに変更すると、アプリを選択する画面が出てきますので、Word を選択すれば解決できます。


【追記】もっといい方法を見つかりました。

set WordApp to "/Applications/Microsoft Office 2011/Microsoft Word.app"
if not application WordApp is running then
    tell application WordApp
        activate
    end tell
end if
tell application WordApp
    set newDoc to make new document
end tell
しっかりパスまで指定します。

【更に追記】
set ExcelApp to "/Applications/Microsoft Office 2011/Microsoft Excel.app"
tell application ExcelApp
    set wk to open excelFile
    activate object worksheet "sheet1"
end tell

上記の書き方は開くの問題は解決しましたが、構文エラーになってしまいます。


ということは仮想マシンのアプリケーションを削除するしかありません。。。
ユーザの ~/Applications の下にありました。
MyMac:Applications myname$ sudo rm -rf Windows\ 7\ x64\ trad-chinese\ Applications.app/
MyMac:Applications myname$ sudo rm -rf Windows\ XP\ Professional\ template\ Applications.app/

すると構文エラーがなくなりました。

shyunsei.9ten.net

2014年12月3日水曜日

Applescript で XML DOM を挑戦しよう!

以前、仕事の関係で特定健診のXMLファイルからCSVへ変換するC#プログラムを書きました。
直近、研究のため、WHO薬用植物の本から概念を抽出してXMLに書き込んだり、読み取ったりするPHPプログラムも作りました。
最近、AppleScript で 脆弱性検査結果の XML ファイルの処理をしようと考えています。
まずは、情報集めですね。
AppleScript は中級者のものといわれて、あまり本とか情報がないようです。
DOM で XML を取り扱うのは、いくつかのサイトにはありますが、とりあえず フランスのSATIMAGE とういうサイトを中心に参考します。
フランスのサイトですが、幸い英語のページも用意されています。
トップページに、SmileLab と Smile の2つのソフトが紹介されて、データの可視化とワークフローの自動化のツールですが、
Smile のほうが XMLList osax を利用しています。XMLList osax こそ AppleScript での XML DOM の実装であります。
SATIMAGEでは、XMLList の辞書も提供されています。
XMLList のダウンロードは 下記の2つがありますが、なぜか Build 373 のリンクが切れているようです。
余裕があれば、少しずつサンプルなり追加記事をしていきます。