Appleの子会社であるClarisから、Claris FileMaker Pro 2025(v22)がリリースされました。
AppleScript名:Claris FileMaker Pro 2025のバージョン番号取得.scpt |
tell application "FileMaker Pro" version –> "22.0.1" end tell |
AppleScript用語辞書は前バージョンから変更されていません。
Appleの子会社であるClarisから、Claris FileMaker Pro 2025(v22)がリリースされました。
AppleScript名:Claris FileMaker Pro 2025のバージョン番号取得.scpt |
tell application "FileMaker Pro" version –> "22.0.1" end tell |
AppleScript用語辞書は前バージョンから変更されていません。
2025年1月1日に製品開発の終了を宣言した、AppleScriptの統合開発環境「Script Debugger」について、Late Night Software, ltd.のWebサイトからダウンロードできるようになりました。
過去の各バージョンのScript Debugger(v4、v4.5、v5、v6、v7、v8)をダウンロードでき、Registration Numberが記載されています。
ただし、As Isで提供されるものであり、サポートや新たに発見されたバグについては免責とされています。
バージョン番号のリナンバーが行われ、macOS 15の次はmacOS 26ということになりました。AppleScriptで「system info」を実行すると、 system version:”26.0″が返ってきます。
スクリプトエディタのバージョンは上がっていませんが、Dark Modeへの対応が行われており、エディタ背景がDark Modeで暗くなるようです。ウィンドウの角丸の半径が大きくなって、全体的にオモチャみたいな印象を受けます。個人的に嫌いではないですが、画面を広く使えない(余白が多い)ので現場によっては困ることも。
AppleScriptのバージョンは2.8で変更なし。まだそんなに真剣に使っていないので、AppleScriptから見て挙動が変わったかといった点はわかりません。
β版のmacOSでありがちな、バージョン取得機能ミスや、aliasからPOSIX pathへの変換ミスなどは見られませんでした。
ただ、WWDC Keynoteで見られたガラス調のUIの見た目については、現時点では見られず、これがまだ実装が間に合っていないためなのか、M1 Mac miniだと環境的に再現しないのかは不明です。
テキスト読み上げ音声系のVoice Characterが増えたりはしていないのですが、「プレミアム」と「拡張」が同時に存在しているなど、ポリシーにゆらぎが見えます。どちらかにするのではないんですね。
バグ:
スクリプトエディタ内からスクリプトメニューをオンに設定しても、ステータスメニュー上にスクリプトメニューが表示されません。すぐにオフになります。この点はバグでしょう(調査が始まったとの話)。
Xcode 26でAppleScript App templateが認識されませんでした。関係者に報告していますが、回答はもらっていません。一応、既存のXcode ProjectをmacOS 26に持って行って、ビルド+実行できることは確認しています。テンプレートの場所や記法が変わったのかも?
→ Xcodeのテンプレートのフォルダが変更になったようです。従来は、~/Library/Xcode/Templatesでしたが、Xcode 26では~/Library/Developer/Xcode/Templates に変わっていました(ドキュメントとかヘルプに記載なし)。
→ 関係者との協議のすえ、これは自分の勘違いで最初から ~/Library/Developer/Xcode/Templates であったことが判明しました。
AppleがmacOS 16でクリップボードへのアクセスをiOSアプリ同様に制限する(認証を求める?)らしい、という話が出てきました。
Apple、Macアプリによるクリップボードの無断アクセスを制限へ
それだけなら、「なるほど」という話になるのですが、例によって検証をまともに行わないことが予想されるために、アプリ/アプレットのアイコンへのドラッグ&ドロップや、「サービス」を提供するプログラムにGUIがない場合に影響が出てくることでしょう(認証はGUIを持つプログラムに対してのみ行えるため)。
# 「サービス」機能は各アプリでメンテナンスしていないはずなので、対応せずに全滅するかも?
これは、相当に広い範囲にわたって影響が出るはずなので、問題動作がいたるところで発生することが予想されます。
各AppleScript実行プログラムに対してセキュリティ設定を行わないと、ファイルのドラッグ&ドロップやクリップボードの操作コマンドに問題が出るはずです。
macOS 15.5beta5(24F74)が配信されたので、報告済みのバグが修正されているかを確認しました。
日本語環境で特定パターンのファイル名のファイルパスをas aliasでキャストすると処理系まるごとクラッシュするバグ
→ 修正されたように見えます。報告したファイル名パターンで追試したものの、クラッシュは確認されません。
ただ、Appleの傾向として「一度直った箇所が、複数チーム間の連携不足(絶無?)ですぐに再発」するので、経過観察といったところでしょうか。これまでに発生した(つまらない)バグ同様、何回も繰り返して発生することが予想されます。
アクセシビリティ系の音声コマンドの一覧が呼び出せないバグは、本バージョンでは修正されていません。
GoogleのオンラインサービスNotebook LMを用いて、自分の書いた電子書籍を入力して、そのまとめ音声番組を生成させてみました。
すごっ!!(^ーー^;;;;;
Notebook LM自体に「アップロードするファイルは200MBまで」「アップロードできるのは全部で50本まで」という(無料使用時の)制限があるため、その範囲内での試用ということになります。
音声番組を手軽にアウトプットしてくれることに驚かされます。また、細かいところではちょっと間違いがあるものの、テーマを与えるとおおまかに「それっぽく」まとめてくれるのは驚きです。しかも、機械音声読み上げ(Text To Speech)なのにおっそろしくこなれています。
全体の印象としては、NHKの朝のニュースの5分ぐらいのコーナーのイメージでしょうか。
macOS 15.5beta4が配信されましたが、とくに報告ずみのバグは何も直っていません。15.5台では直らないというよりも、バグとして認識していないんじゃないでしょうか?
正式リリースされたようですが、アクセシビリティの音声コマンドが動作していないバグについては、修正されていません。
macOS 15の初期バージョンでは動作することを確認していたのですが、目下macOS 15.5beta3でアクセシビリティ系の音声コマンドの機能が呼び出せないことを確認しています。
同機能は、日本語のファイル名をつけたAppleScriptアプレットを音声で呼び出せるため、音声操作が必要な用途では役立つものとして機能をチェックしてきました。ただ、Appleのワイヤレスヘッドセットのうち、AirPodsは音声認識に使えるもののAirPods Proが音声認識に使えなかったりと、ちょっと微妙な立ち位置になっていました。
AirPods/AirPods Proが使えるSiri系の操作機能と、この音声コマンドの2系統の音声操作機能が存在しており、統合するのかそのままなのか、さっぱり方向性が見えていない中のできごと。
アクセシビリティの機能が「システム設定」に存在しているのですが、画面上から内容を確認しようとするとエラーになります。
この問題は、日本語環境でも英語環境でも発生しています。
▲システム設定の「アクセシビリティ」>「音声コントロール」を選択
▲画面下の方の「Commands…」で音声コマンドの一覧を確認しようとして、クリックすると
▲エラーが出て表示されない
特定のパターンのファイル名のパスをaliasにcastする処理で処理系まるごとクラッシュするというmacOS 15.5β版(15.5 Beta(24F5053f))のバグ。
もっと以前から存在していたのかもしれませんが、特定のファイル名だとクラッシュを引き起こす前代未聞のバグがすごすぎて、いろいろ調べてみました。
文字依存する箇所はごくわずかで、いろいろ規則性があることがわかってきました。
・15.5 Beta(24F5053f)の日本語ユーザー環境(Primary LanguageをJapaneseにした状態)で発生。英語環境に変更すると発生しない
・ファイルパスをaliasにcastすると即・クラッシュ
・アルファベットとひらがな/カタカナが混在している必要がある???
・拡張子の種別は関係なく発生
・一定の文字数以上の長さが必要
・決定的な問題を引き起こすのは、濁点/半濁点つきのひらがな/カタカナが入っていること
・当初、記号文字やスペースが入っていることが条件かと思っていたが、これらを除去しても発生
・濁点/半濁点つき文字はファイル名の特定文字数以降に登場する必要がある。冒頭に移動させてもクラッシュは発生しない
・同じ処理内容のJXAでもクラッシュが発生する
・これらのクラッシュを誘発するファイル名がフォルダ名についていてもクラッシュは発生しない
現時点でクラッシュを発生させる最低限のファイル名は、
AAXAAXXあああああああああパ1.txt
であることを確認しています。
追記:
macOS 15.5β3(24F5053j)でも継続して発生中です。
追記:
macOS 15.5正式リリース時には解消されました。
ファイルのドラッグ&ドロップを受け付ける「ドロップレット」の異常動作がmacOS 10.12からずっと続いてきました。AppleScriptドロップレットに対して(Finderから)ファイルをドラッグ&ドロップすると、欠落するものが出てくるという現象です。
昨年、macOS 15.2betaか15.1あたりでこのバグが解消されたように見えました。
「見えました」というのは、一応現象としては観測できつつも、その動作を意図して実現していないんじゃないか、という懸念があったためです。つまり、Appleの現場なりマネージャー級で意思決定が行われた成果ではなさそうだ、と判定。
この動作がmacOS 15.5βで以前と同様の動作に戻っている(バグ的な動作)ことを観測しています。
on open droppedFiles
set fileCount to count of droppedFiles
display dialog “ドロップされたファイルの数: ” & fileCount buttons {“OK”} default button 1
end open
一応、ドラッグ&ドロップされたファイル/フォルダの受付で取りこぼしが出ないように対策は(Scripter側で工夫して)できているのですが、上記のように一般に知られている単純な受信コードでは対処できません。
ChatGPTをはじめとするLLMでは、上記のような単純なコードを出力することを確認しています。そして、Apple側がOSに不具合を発生させた場合にはLLMが出力するコードでは対処できません。
そして、macOSのヘルプメニューから表示できる「AppleScriptヘルプ」に書かれているドロップレットのコードがまともに動かないというのでは、話になりません。
iWork Apps(Keynote、Pages、Numbers)がバージョン14.4にアップデートしました。各アプリのAppleScript用語辞書に変更はありません。
Pagesで継続して発生している、現在画面上で表示中のページ+2見開きのページ上のオブジェクト情報の取得/操作が行えない現象については、修正されていません。
Apple側はこれをバグとも思っていないようですし、修正するつもりもないのでしょう。この不具合に対処するために、情報取得する対象のページを強制的に表示するよう指示する必要があることでしょう(そんな機能はないので、GUI Scriptingで?)。
個人的な資料として、Shane Stanleyの電子書籍「AppleScript Explored」を日本語訳して使っておりました。部分的にmacOS最新版+Xcode最新版にスクリーンキャプチャを入れ替えて。
最初の版から、購入して読んでいましたが……実にいい本です。「もうちょっと画面キャプチャが多いとわかりやすいのに」とは思っていましたが、自分には書けないタイプの本です。
# そのフィードバックをもとに、画面キャプチャ主体の本「AppleScript+XcodeでつくるMacアプリ Xcode 14対応」を出したわけで
冗談半分でShaneに「日本語訳版を出してもいい?」と聞いてみたところ、快諾。えっ? いいの?!(^ー^;;;
いまXcodeで作っているAppleScriptのプロジェクトがあるのですが、こうした資料が充実していないと本当に辛いので、日本語版を出せることは個人的に素直に嬉しいです。
ただ、本書がOS X 10.8ぐらいの時代に書かれたという時代背景があり、そのあたりの状況認識を大幅に変更する必要はあると思います。当時はShaneがAppleScriptObjC Explorerを作っていたので、そうしたツールの存在を前提として書かれた部分もあるので、macOS 15時代+Xcode 16環境に合わせてアップデートする必要もあることでしょう。
相次いで、AppleScriptに関する電子書籍を2冊刊行しました。
「AppleScript最新リファレンス OS X 10.11対応」から最新環境の情報を反映させ、さらにmacOS 15の情報を反映させた最新アップデート版です。最新のAppleScript v2.8環境を対象としています。
→ 販売ページ
macOS搭載のApple純正GUIアプリケーション操作用スクリプト言語「AppleScript」について、スクリプトの書き方、基本的な文法から高度なノウハウまで紹介する最新のリファレンス! macOS 12/13/14/15対応
90ページの記事を追加しました。すでに購入された方は、再ダウンロードにより無料で最新版を入手できます。
本書および「スクリプトエディタScripting Book with AppleScript」には、お待たせの(?)Piyomaru Script Assistant最新版を添付しています。
PDF 1,098ページ+付録Zipアーカイブ
macOS上のスクリプティング言語「AppleScript」によって、macOS標準装備のAppleScript記述用アプリ「スクリプトエディタ」を操作するノウハウについて基礎から応用までを詳細にまとめた電子書籍です。
→ 販売ページ
AppleScriptの中でも、超高レベルな内容であり、この内容が苦もなく理解できたら達人と言って問題ないでしょう。ただし、基礎から詳細に解説を行なっているため、難しい内容については読み飛ばしていただいてもけっこうです。それでも、日々のMac生活の中で役立つ超絶テクニックを感じることができるでしょう。 PDF 570ページ、Zipアーカイブ添付
これまであまり外部に出してこなかった、AppleScriptでAppleScriptを解析して処理する内容や、AppleScript用語辞書を解析して処理する内容、スクリプトアシスタントの書き方などの「秘伝のタレ」的な内容を多く含んでいます。
とくに、AppleScript構文色分け設定から実際のAppleScriptの各構文要素を特定して処理(変数のみの置換など)する内容は、Mac OS X 10.4の時代から続いてきた手法から最新の手法まで詳細にご紹介しています。
Script Debuggerという強力なプレイヤーがいるために、スクリプト作成のためのツールを企画しても製品を実現するのは大変でした。でも、SDがディスコンになると、従来いろいろ検討してきたアイデアを実現できるかもしれません。
大量にAutomatorのアクションを用意して、つないでプログラムを組む環境を作ることを考えたことがありました。Automatorそのものに突っ込んでよかったのですが、Apple純正のアクションを削除する方法がわからなかったのと、一般ユーザーがAutomatorを2つぐらいのアクションしかつないで使っていないことが分かって、ちょっと難しそうだと判断しました。
コンテクストメニュー経由で大量の補助Scriptを呼び出すエディタタイプを企画していました。ただ、それって普通にスクリプトエディタに組み込めばいいじゃない? ということで、Piyomaruスクリプトアシスタントを充実させました。
ChatGPTみたいに、文章からコードを生成するエディタ。ありもののScriptライブラリを呼び出すタイプ。
LLMに各プログラムをどのように学習させられるかが不明。アイデアだけは検討してきた内容。
正月早々になかなか大きなニュースが入ってきました。AppleScriptの統合開発環境であるScript Debuggerの開発と販売の終了をLate Night Softwareが発表しました。
Script Debuggerはまだ2025年の6月まで購入可能とのことです。Appleが買収するしか継続の目がなさそうなのですが、Appleがそうするかどうかは不明です。
Script DebuggerはAppleScriptの統合開発環境ですが、上級者にはあまり役立たず、むしろ入門者が使うと役立つツールであることが問題だと思っていました。そのあたりの対処として、ライトユーザーへの訴求を行うべく価格の引き下げやLightモード動作(試用版の継続使用が可能に)が導入されたようですが、有効な手段にはなり得なかったようです。
ソフトウェア製品としてのScript Debuggerは、コア部分がC++で書かれているようで(推測)、思い切った構造の変更やインタフェースの改良を行いづらいところです。
実際に、30年続いたプロジェクトでもあり、大幅な書き換えは難しかったところでしょう。
まだ、どのように受け取るべきかが分からないため、速報ということで。
ただ、macOS 10.13あたりまでのスクリプトエディタ(10.15あたりまで?)では、バンドル内にDebugアイコンとか未使用のアイコンがたくさんあって、
「Apple純正のスクリプトエディタでデバッグ機能をつけていないのは、製品版(Script Debugger)に配慮した結果ですよ」
みたいな言い訳の痕跡(こんせき)を垣間見ることができ、それなりに担当者レベルでは敬意を払われてきた製品だと思います。
オープンソースのテキストエディタ「CotEditor」の「write to console」コマンドにオプションが追加されました。
title(実行したAppleScript名の表記)と、timestamp表示の有無を指定できるようになっています。
ただし、これらのオプションが効くには条件があります。CotEditorの外部から、スクリプトエディタやScript Debuggerなどで実行したAppleScript内でCotEditorに対してwrite to consoleコマンドを実行した場合には、これらのオプションを指定していても、とくにtitle(ファイル名)については効きません。
CotEditorの内蔵スクリプトメニュー内で実行したAppleScriptにおいて「write to console」コマンドを実行した場合にはtitle(ファイル名)、timestamp(日時)の指定が有効です。
AppleScript名:コンソールテスト1.scpt |
tell application "CotEditor" write to console "ぴよまるさんだよ" with title without timestamp write to console "ぴよぴよさんだよ" with title and timestamp end tell |
Keynote、Pages、NumbersのiWork appsがバージョン14.3にアップデートしていました(気づかなかった)。
アップデート内容もたいしてありませんし、Apple Inteligenceを利用した機能なので、日本語環境では利用できません。
AppleScript用語辞書についても、とくに前バージョンから変更はありません。
2024年に使用していたmacOS:macOS 13+macOS 15
毎年行なっている、Piyomaru Softwareが書いたAppleScriptの1年を振り返る記事の2024年版です。
2008年から10年ほど運営を続けてきた旧「AppleScriptの穴」Blogが2018年の年初にホスティング会社との行き違いでシャットダウンされ、ゼロから再構築したのがこの現行の「AppleScriptの穴」Blogです。
→ 2018年に書いた価値あるAppleScript
→ 2019年に書いた価値あるAppleScript
→ 2020年に書いた価値あるAppleScript
→ 2021年に書いた価値あるAppleScript
→ 2022年に書いた価値あるAppleScript
→ 2023年に書いた価値あるAppleScript
旧「AppleScriptの穴」Blogの内容については、データベースから抜き出したデータをもとに再構成した「Blogアーカイブ本」にまとめています。
AppleScriptの穴Blogアーカイブvol.1
AppleScriptの穴Blogアーカイブvol.2
AppleScriptの穴Blogアーカイブvol.3
AppleScriptの穴Blogアーカイブvol.4
AppleScriptの穴Blogアーカイブvol.5
AppleScriptの穴Blogアーカイブvol.6
本Blogは、もともとは、2000年代初頭に開発していた「人工知能インタフェース Newt On」のソースコード部品バラバラにして掲載し、用いた部品を個別にメンテナンスすることを「隠れた目的」としていました。また、Scripter間のノウハウの共有を推進することも目的としています。
AppleScript以外の一般的なテーマの記事については、こちらにいろいろ投稿しています。
前述のとおり、2018年1月にいちど本Blogは消えていました。その際に、「本Blogが存在しない場合にはどのような現象が起こるのか」を観察。その結果、AppleScriptについて知識を持たない人たちが好き勝手に「嘘」を流布しはじめる、という現象が観測されました。本Blogはそうした「嘘つき」を封じ込めるためのキーストーンとしての役割を果たしているといえます。
本Blogを公開しているだけでは、ホスティング費用やドメイン費用がかかるだけで、何も収益が生まれません。そこで、本Blog+αの情報を整理してまとめた電子書籍を発行しています。本Blog読者のみなさまにおかれては、電子書籍を購入することで本Blog運営を支えていただけますと幸いです。
電子書籍の2024年における刊行は、現時点で95冊。年間8冊となっています。
Cocoa Scripting Course #7 NSColor
Cocoa Scripting Course #8 File path Processing
Cocoa Scripting Course #9 File Processing
AppleScriptでたのしむ レトロ・グラフィックス プログラム集
Pages+AppleScriptで本をつくろう!
AppleScript基礎テクニック集(32)複数のアプリをコントロール
AppleScript基礎テクニック集(33)選択中のオブジェクト取得
AppleScript 基礎テクニック集(34)電源制御
目下、既刊本の最新環境へのアップデートを実行中です。
余白トリミング実験 v3
2024年に書いたScriptのうちで一番気合いが入っているのが、この画像の余白トリミングです。AppleScriptでそんな画像処理ができるとは思ってもいませんでしたが、実際にやってみたらそれなりに機能して、それなりの速度で動きました。
Outline View Lib
NSOutlineViewを手軽に使えるライブラリです。他のアプリで作った階層データ(Keynoteのマスターページ名など)をプレビューするなどの用途に使えます。
書式つきテキストを組み立てて、画像を追加し、RTFDとして保存 v2
電子書籍用にまとめていたScriptの中のひとつです。RTFDの新規保存については書いたことがなかったので、「書いておいたほうがよいだろう」と。同様にScptd(バンドル形式AppleScript)の作成Scriptも書いておきたいところ&scptdの実行Script(Script Viewを自前で作成して)も書いておきたいところですが、公表されているAPIの範囲では実行できるものが見当たりません。
アラートダイアログ上にWebViewで3Dコンテンツを表示(WebGL+three.js)v4
これも、ずいぶん前に試作品を見ていたのですが、前バージョンが動かなくなって久しかったのでアップデートしておきました。あくまで、デモ用で実用性が皆無ですが、そういうものなんでしょう。
Pagesで、現在表示中のページから離れたページのオブジェクト情報を取得できない
Pagesが怪奇現象を起こすことについては、ずいぶん前から知っていたのですが、その発生条件と範囲を明確にできたことは意義深いことです。
指定のSDEFファイルからコマンドを抽出
SDEF処理系AppleScriptはいろいろ組んでいますが、電子書籍作成時にアプリのアップデート履歴を表で示すためにこうしたScriptが必要です。
Chat GPTに書かせたQuickSort(昇順・降順ソート)2D
ChatGPTに書かせたAppleScriptです。バージョン依存しなかったり、他の言語で書いてあるものを翻訳するようなScriptだと割とまともなAppleScriptを出力してくれます。ただし、高速化の余地があるレベルの(遅い)Scriptだったので、自前で高速化してみました。
Excel__Numbersセルアドレスの相互変換
ChatGPTに書かせたAppleScriptです。こちらも、OSのバージョンに依存せず、他の言語でも書ける内容だったので、問題なく処理できるScriptが出力されました。
新刊電子書籍「AppleScript基礎テクニック(34)電源制御」を刊行しました。全57ページ、サンプルAppleScriptアーカイブつき。Piyomaru Softwareによる電子書籍の95冊目です。
→ 販売ページ
ちょっとAppleScriptを書けるようになった方が、必要に感じてふりかえる「基礎」的な内容をプレゼン資料風に絵でご紹介する「AppleScript基礎テクニック集」の34冊目、Macの電源制御に関する1冊です。 スリープ、シャットダウン、スリープ解除日時指定、バッテリー残量取得、電源種別の判定など、電源制御系の機能は、AppleScriptに添える「気の利いた」スパイス。知っておくと役立つ、実際に動かすと楽しい電源制御機能について、詳細にご紹介します。 いまはMacBook Airで1日中バッテリーで駆動できるのでシビアな計算が必要な場面は減ったように感じますが、それでもバッテリー残量を取得する処理はAppleScriptでも欠かせません。電源制御は使って動かすと面白い処理です。
■最初に:macOS 13以降では最初にステージマネージャを必ずオフにしてください
macOS 13.x
macOS 14.x
macOS 15.x
その他、オフにすることが望ましい機能
■電源制御 関連機能
macOSの各種電源コントロール機能
AppleScriptからスリープ実行
指定日時にスリープ解除
電源種別判定
バッテリー残量データ取得
■スリープ
2つのスリープ処理
スリープ処理
ディスプレイ消灯処理
■スリープ解除
スリープ解除(スケジュール登録)
スリープ解除日時設定のAppleScript①〜③
■スリープ解除検出
スリープ解除検出、2つの方法
一番単純なスリープ解除検出
システム通知を利用したスリープ解除検出①〜③
■電源オフ
電源オフは2コース
■電源種別判定
電源種別判定
■Mac本体のバッテリー残量取得
バッテリー情報を取得する前に
デスクトップ機とノート機の区別①〜③
取得できるMac本体のバッテリー仕様
Mac本体のバッテリー残量を取得
■その他資料
ログアウト処理
再起動
CPU種別判定
CPU動作クロック取得
Apple Siliconの各種温度センサーの値を取得①〜③