Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

プリントダイアログで"プリントボタン"を押す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が正しくアクティブでないか、アクセス権が不足している場合に発生することがあります。

以下の手順を試してみてください:

  1. Excelを起動し、アクティブなウィンドウにするか、Excelのウィンドウが前面に表示されていることを確認してください。
  2. システム環境設定の「セキュリティとプライバシー」の「プライバシー」タブに移動し、左側のカテゴリから「アクセシビリティ」を選択します。Excelが「アクセシビリティ」設定で有効になっていることを確認してください。もしそうでない場合は、ロックを解除しExcelを追加します。
  3. Excelが正しく設定されている場合、AppleScriptを再度実行してみてください。

また、Excelのバージョンによっては、メニューやダイアログボックスのテキストが異なる場合があるため、Excelのバージョンに合わせてスクリプトを調整する必要があります。


セキュリティーの問題かと思い、2番目の項目でロックを解除しましたが、依然として変わりません。


現在の環境でプリントダイアログボックスをAppleScriptで操作する方法をお教えください。

なおメニューボタンも操作したいので、その辺の具体例も教えてもらえると幸いです。

MacBook Pro 14″, macOS 13.5

投稿日 2023/09/05 17:02

返信
返信: 1

2023/09/08 16:31 へなちょこ への返信

ちょっとズレた方法かもしれませんが、プリントを押すのはなかなか難しかったので、

リターンキーを押すことでプリントを実行することなら下の内容で可能でした。

もしかしたら環境によっては動作の間にDelay 0.5とかを入れた方が確実に動作

するかもれません。


tell application "Microsoft Excel"
	open (choose file)
end tell

tell application "System Events"
	tell process "Microsoft Excel"
		keystroke "p" using command down
		key code 36
	end tell
end tell

プリントダイアログで"プリントボタン"を押すAppleScript

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。