執筆:EugeneAmnis
Excel for MacでのUTF-8テキストファイル出力方法(AppleScriptTask)実践3
作業の流れの再確認
念の為に作業の流れは以下の通りです。
- AppleScriptで保存先とテキストを指定し、実行するとUTF-8形式のテキストファイルを保存するスクリプトファイルを作成する。
- 1のスクリプトファイルをExcel VBAのAppleScriptTask仕様に変更し、指定ファルダに保存する。
- 応用編:VBA単一で2を実装する。
- Excel VBA上でOS判定とスクリプトファイルの存在確認をした上で実行する。
今回は3. 応用編:VBA単一で2を実装する。を行います。
A2Vとは
前回の作業2.ではAppleScriptの作成と仕様変更、作成したAppleScriptをスクリプトフォルダへ手動保存と手間と少し複雑な作業を伴っていました。個人で使用する場合はそれでもいいかもしれませんが、配布や他のユーザーにしてもらうにはややハードルが高いと言えます。
FormeStudioではAppleScriptファイルインストーラーをVBAで作成し、それを実行してもらうことで作業2.を半自動化するという方法をとっています。なぜそんな回りくどい方法をとっているかといえば、直接VBAではスクリプトフォルダにアクセスができない。正確には保存ができないためです。
その代わりに代替案として、作成し仕様変更したAppleScriptをインストーラー化するためのAppleScriptをVBAでファイル出力しても問題ないようにインライン化したコードを作成する必要があります。その面倒な作業を行うためのWebツールがA2Vです。
開発者はA2VでコンバートしたコードをOUT文等でファイル出力し、そのファイルをハイパーリンクで開きます。ユーザーは開かれたスクリプトを実行するだけで、スクリプトフォルダへAppleScriptのインストールが完了します。
A2Vの使用方法
A2Vにアクセスし、作成・仕様変更したAppleScriptをアップロード。後はコンバートしたものをコピーまたはダウンロードしてVBAで出力し、手動でスクリプトを実行するだけです。配布する場合にはユーザーにAppleScriptを実行する旨を説明する必要があります。具体的なサンプルコードは以下となります。
sub SaveAppleScript
Dim path1 as String,applescript as String
path1 = "/Users/Shared/test.applescript"
applescript = a2vで出力したコード
Open path1 For Output As #2
Print #2, applescript
Close #2
ActiveWorkbook.FollowHyperlink Address:=path1
'開いたスクリプトを実行するとAppleScriptTaskで利用可能なスクリプトファイルとなる。
End Sub
/Users/Shared/に保存し、開くようにしています。開く際に警告ダイアログが表示されます。また保存する際に初めてアクセスするパスの場合、ファイルアクセスの権限譲渡ダイアログが表示されます。明示的にアクセス権譲渡ダイアログを表示しない場合、1回目はエラーとなる場合があります。
実行結果
再生されない場合は左クリック > 新しいタブで画像を開いて下さい。
2.1のスクリプトファイルをExcel VBAのAppleScriptTask仕様に変更し、指定ファルダに保存する。の作業をVBAのみで半自動化に成功しました。
結構わかりづらいと思いますが、Excel for MacでAppleScriptTaskを利用されているユーザーにはおすすめします。