プリントダイアログで"プリントボタン"を押すAppleScript
MicrosoftExcelのVBAでプリントダイアログボックスを表示させた後に、AppleScriptのアプリケーションを起動させ、プリントダイアログのプリントボタンを押すAppleScriptを作成しました。
具体的には、以下のAppleScriptです。
tell application "System Events"
tell application "Microsoft Excel" to activate
tell front window of process "Microsoft Excel"
click button "プリント" --プリントボタンを押す
end tell
end tell
※実際はもっと命令文はありますが、わかりやすくするため必要部分だけに絞ってます。
このAppleScriptは以下の環境では問題なく動いてました。
◉macOS 10.6.8
◉MicrosoftExcel 2004
現在もこのシステム構成で動いてますが、流石に古すぎるために、新しい環境に変えようとしましたら、動作しない事がわかりました。
以下のようなメッセージが出ます。
(エラーメッセージ)
error "System Eventsでエラーが起きました: button \"プリント\" of window 1 of process \"Microsoft Excel\"を取り出すことはできません。" number -1728 from button "プリント" of window 1 of process "Microsoft Excel"
現在の環境は以下になります。
◉macOS 13.5.1(最新)
◉MicrosoftExcel 16.76
ChatGPTに聞いたら、以下の返答がありました。
申し訳ありません、そのエラーはAppleScriptがExcelのプロセスを見つけられなかったことを示しています。このエラーは、Excelが正しくアクティブでないか、アクセス権が不足している場合に発生することがあります。
以下の手順を試してみてください:
- Excelを起動し、アクティブなウィンドウにするか、Excelのウィンドウが前面に表示されていることを確認してください。
- システム環境設定の「セキュリティとプライバシー」の「プライバシー」タブに移動し、左側のカテゴリから「アクセシビリティ」を選択します。Excelが「アクセシビリティ」設定で有効になっていることを確認してください。もしそうでない場合は、ロックを解除しExcelを追加します。
- Excelが正しく設定されている場合、AppleScriptを再度実行してみてください。
また、Excelのバージョンによっては、メニューやダイアログボックスのテキストが異なる場合があるため、Excelのバージョンに合わせてスクリプトを調整する必要があります。
セキュリティーの問題かと思い、2番目の項目でロックを解除しましたが、依然として変わりません。
現在の環境でプリントダイアログボックスをAppleScriptで操作する方法をお教えください。
なおメニューボタンも操作したいので、その辺の具体例も教えてもらえると幸いです。
MacBook Pro 14″, macOS 13.5