2025年に使用していたmacOS:macOS 15+macOS 26
毎年行なっている、Piyomaru Softwareが書いたAppleScriptの1年を振り返る記事の2025年版です。
2008年から10年ほど運営を続けてきた旧「AppleScriptの穴」Blogが2018年の年初にホスティング会社との行き違いでシャットダウンされ、ゼロから再構築したのが現行の「AppleScriptの穴」Blogです。
→ 2018年に書いた価値あるAppleScript
→ 2019年に書いた価値あるAppleScript
→ 2020年に書いた価値あるAppleScript
→ 2021年に書いた価値あるAppleScript
→ 2022年に書いた価値あるAppleScript
→ 2023年に書いた価値あるAppleScript
→ 2024年に書いた価値ある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運営を支えていただけますと幸いです。
電子書籍の2025年末における刊行は、現時点で98冊。年間4冊となっています。
AppleScriptセキュリティ実践ガイド
AppleScript+Xcode GUIアプリソース集
AppleScript最新リファレンス v2.8対応 v2.0
スクリプトエディタScripting Book with AppleScript
目下、既刊本の最新環境へのアップデートを実行中です。
2025年に書いたAppleScriptの中で注目すべきもの
Blogよりも電子書籍用(掲載用、作業用)にかなりまとまったScriptを書いていたため、そちらの充実度が光ります。とはいえ、かなり技術的に重要なScriptをBlogにも多数書いています。ChatGPTを用いてScriptの作成を行なってみたところ、技術的な難易度が高い割につまらないとか、書くのが面倒くさいとか、すでに存在するものを作り直したくないといった「人間が書くのは気が乗らない」ものを中心に、Webブラウザとのやりとりだけで書けているので
2025年1月
NSObjectのクラス名を取得 v2.1
Script Debuggerの開発が終了したことを受けて、Xcode上でAppleScriptObjCによるAppleScript開発環境の構築の可能性や、Xcode Projectの作業性の向上をねらって、とりあえずログに情報を出すためのまともな手段を用意しておこうと考えたものです。
こうした試みの成果により、Xode上でもともとのlogコマンドのように情報の確認が行えるようになってはいるものの、やはりlogコマンドが使えないと取りきれない(特定し切れない)バグなどもあるので、logコマンドの正常化には期待を寄せたいところです。
2025年2月
画像をAppleScriptでアスキーアート化
これは、Script内容自体は割とどうでもいいのですが、ChatGPTで高度なScriptを書かせる実験の一環です。やればできることはわかっていつつも、めんどうくさいので書きたくない種類のScriptをChatGPTに書かせてみました。
かなり使えるという手応えが得られたので、一歩進めてObjective-CのプログラムもChatGPTに書かせ、書籍のオマケ用に利用しています。
2025年3月
NSIndexSetを作成し、各index要素を取り出す
これも、ChatGPTに書かせたものです。必要に迫られて書く必要があったものに対して、ChatGPTを利用。Cocoa Scriptingのプログラムは、割とAPIの仕様を確認して、それに合わせるだけの内容のものが多いため、「プログラミングというよりも作業」だと感じていました。つまり、Cocoa ScriptingはChatGPTなどのLLMとの相性がいいと言えるかもしれません。
2025年4月
macOS 15.5で特定ファイル名パターンのfileをaliasにcastすると100%クラッシュするバグ
自分で書いたScriptという話ではなく、macOSのバグの話です。これをレポートするために、割といろいろ書いて試行錯誤しました。一応、macOS 15.5のRelease版で修正されたしたが、ちゃんと検証してからReleaseしてほしいところです。
Xcode上のAppleScriptObjCのプログラムから、Xcodeのログ欄へのメッセージ出力を実行
Xcodeのログに出力するObjective-Cのプログラムを見つけたので、以前に作ったものと組み合わせてかなり便利に使えるようになりました。
2025年5月
macOS 26, Tahoe
Beta登場時に「Finderにempty trashコマンドを実行するとエラーになる」バグが発見されており、Release版で修正されていなかったことに驚かされました。
2025年6月
macOS 26, 15.5でShortcuts.app「AppleScriptを実行」アクションのバグが修正される
CotEditor用ブロック崩しゲーム
ChatGPTに書かせてみたものですが、CotEditorの最前面の書類ウィンドウの内容をAppleScriptで書き換えてゲームを実現してみました。
2025年7月
ASCII ARTで円を線で描く
ASCII ARTで円を塗る
ASCII ARTで直線を引く v3.1
テキストで作成した仮想画面に対して各種描画を行うものです。ChatGPTに書かせて手動で高速化を行なっています。
2025年8月
開始時刻から終了時刻までhh:mm形式の文字列を15分単位でリスト出力
1か月分の(奥様の職場の)勤務パターンの視覚化、勤務形態を自動で処理できないかと考えて試作したものです。
2025年9月
暗黙のuseコマンド

個人的に忙しかったのですが、海外の掲示板で聞かれた内容についてまとめたものです。この記事を書く義理は400%なかったのですが、まとめておきました。掲示板にリンクURL を置いておき、あとは勝手に質問者が翻訳サービスなどを使って翻訳すればよいのでは? と、考えてそのまま放っておいたら、掲示板のアカウントが「日本語でコメントを書いた」などの理由で停止されていました。まったくおかしな理由でアカウント停止にされたので、その掲示板のことは忘れることにしました。なので、その掲示板にはログインできないし、メッセージを受け取ることもできません(何回書いても理解してもらえないようなので困っております。どうして被害者の自分が何回も無駄な説明をしなくてはならないのでしょう)。
macOS 15.xで自作AppleScriptライブラリの一部がScript Menuから使えなくなったので修正
割と困って、いろいろ書き換えてテストしていたのですが……どうやら、JXAをサポートするためにパラメータ(enum)をas stringでcastしていた部分が、スクリプトメニュー上で動かした場合にエラーになっていました。つまり、「AppleScriptライブラリでJXAをサポートしてはいけない」というのが現状のようです。
JXAはバージョン1.1でアップデートが停止しているため、動いても動かなくても知らないよという存在に見えます。
指定フォルダ内から指定拡張子のファイルを取得し、エイリアスだったらオリジナルのパスをPOSIX pathで取得
フォルダにScriptを入れて動作を行うプログラムにおいて、Scriptのエイリアスを入れておけば処理できるようにしたかったので書いたものです。
各種GUIアプリ書類のオープン速度を向上するためにUIアニメーションの一時停止を
これは、久しぶりに大笑いしました。たったこれだけのささいな処理を追加するだけで、書類のオープン/クローズをともなう処理において、1書類あたり0.2秒、400書類で80秒も処理速度が向上。つまり、M1 MacでM4 Macと同等の速度を叩き出すことが可能になるわけで、実に爽快な話です(M4で実行すればM4なりに速くなります)。
スクリプトメニューでAirDropが使えない?
macOS 15/26上のスクリプトメニューに対してAppleの魔の手が迫ってきました。セキュリティ上の制限がさらに厳しくなり、スクリプトメニュー内でAirDropを呼び出すAppleScriptの実行が妨害されるようになりました。
2025年10月
指定日が所属する週のうち、最終日の日付を求める v2
かなり込み入ったカレンダー計算系Scriptです。ただ、書いた甲斐はあったと思います。
カレンダー計算系のScriptは「Newt On Project」の遺産であり、自然言語とAppleScriptを組み合わせた処理を行ううえで、欠かせないものです。
FaceTimeカメラから取り込み v1
Cocoaの機能を利用して、FaceTime Cameraから静止画を取り込むものです。いま、ちょうどXcode上で同様のテストを行なっているのですが、なかなか取り込めません。
タブでインデントしたテキストをOutLineViewで表示できるデータ形式に変換 v4(3階層対応)
NSOutlineViewをアラートダイアログ上に表示する「箱庭ダイアログ」系のScript Librariesを準備していますが、単にOutlineViewを表示できるだけでなく、タブでインデントしたテキストデータの構造を読み取ってOutlineViewを表示できるようにする必要性を感じて作成したものです。これも、めんどくさかったのでChatGPTに書かせて添削を行ないました。
階層を指定したlistからOutLineViewで表示できるデータ形式に変換 v4(3階層対応)
1つのScriptを書けたからといって、運用上すべてのニーズを満たせるわけでもありません。複数のやりかたが存在するので、複数のデータ型でパラメータを受け取る準備はしておく必要があります。タブでインデントしたテキストが適しているパターンもあれば、リストで指定するのが適していることもあります。
macOS 15.7.2 スクリプトメニューから実行できなくなった地図系ライブラリ?
NSAlertダイアログにさまざまなGUI部品を載せて利用する「箱庭ダイアログ」シリーズにおいて、地図を表示するものは実に使い勝手のよい部品です。ただし、スクリプトメニューから実行したときにMkMapViewを表示するScriptが実行できなくなっていました。とはいうものの、すべてが実行できなくなっているということではなく、一部に表示できるものもあり……まだ問題点の洗い出しが済んでいません。住所ジオコーダーまわりは実行できない環境が多いのですが、より機能が低いライブラリで実行できなかったりと、なかなか理解しにくいものがあります。
2025年11月
YouTubeムービー再生実験 v2c
YouTube側の仕様が変わったことで、「display youtube」ライブラリを書き換える必要が出てきました。こうした箱庭UIライブラリを公開している人は(Shaneのライブラリは方向性が違いすぎるし)ほかにいないので、なかなか苦労させられます。幸いにしてedama2さんの助言を得られて最小限の修正(Local Web Serverを使用しない)で済みました。
Keynote書類上の選択中の2つのテキストアイテムで、左を比較元、右を比較先として行単位の差分を比較先に赤くマーク
diffとほぼ同じ動作をGUIアプリ上のオブジェクト内のテキスト同士に対して実行できています。Keynote版とPages版を用意しました。こういう道具の必要性を感じていたので、たいへん便利です。これまで、個人的に「車輪の再発明」をなるべく避けていましたが、自分で書くのでなければ再発明上等。ChatGPTは、他の処理系や言語で書かれた既存の処理をAppleScriptで再現するのが一番得意に感じます。




