Piyomaru Softwareの電子書籍カタログ(2024年冬版)を刊行しました(フリー配布)。PDF 100ページです。
数年前は「AppleScriptの書籍がぜんぜんない」と言われていましたが、いまでは「多すぎて選べない」と言われる状況に。いろいろな角度から、ぴったり合う本が選べることでしょう。
Piyomaru Softwareの電子書籍カタログ(2024年冬版)を刊行しました(フリー配布)。PDF 100ページです。
数年前は「AppleScriptの書籍がぜんぜんない」と言われていましたが、いまでは「多すぎて選べない」と言われる状況に。いろいろな角度から、ぴったり合う本が選べることでしょう。
ようやく完成しました。最初の「AppleScript最新リファレンス macOS 10.11対応」の刊行から7年。完全刷新のアップデート版を刊行しました。PDF 974ページです。
→ 販売ページ
現行のAppleScript v2.8環境に合わせ、macOS 12/13/14を対象としたアップデートを行いました。可能なかぎり、macOS 10.13あたりからの各アプリケーションの用語辞書の変化などを追いかけ、それぞれのAppleScript実行プログラムのセキュリティ上の制約について、ベンチマークScriptを用いて評価も行なっています。
最初の「AppleScript最新リファレンス」(483ページ)から大幅にページを増やして974ページ。その分、解説範囲を広げています。
また、解説内容の難易度や想定ユーザーのレベルに分けた章構成を採用しています。
Script入門者向けに有用な情報(入門編)、Script利用者向けに有用な情報(利用編)、実際にScriptを書くユーザー向けに有用な情報(実践編)、困ったときに調べると便利な情報(資料編)など。
本書の付録は、スクリプトエディタのコンテクストメニューから呼び出すSnipet Scriptの「Piyomaru Context Menu Assistant」最新版、スクリプトエディタのテンプレートとして呼び出せる「Piyomaru Script Templates」、そしてGUI Scriptingの強力な助っ人「Dynamic Menu Clicker」などで構成されます(これからまとめて添付します。ちょっと手直しも必要なので)。
これからScriptに手を出そうかなという人にも、すでに使っているという人にも有用と思われる情報をわかりやすくまとめた1冊です。
■特集
AppleScriptv2.8の全貌
Shortcuts Events
OSAXなき時代のAppleScript命令拡張
各種セキュリティ制限を解除する
各種支援プログラムの現状
macOS標準装備&Apple純正アプリのAppleScript対応度解説
Finder/Automator/カレンダー/連絡先/メール/マップ/メッセージ/ミュージック/メモ/写真/システム設定/プレビュー/QuickTime Player/リマインダー/Safari/スクリプトエディタ/ショートカット/ターミナル/テキストエディット/tv/VoiceOver/画面共有/コンソール/System Information/Keynote/Pages/Numbers/Claris FileMaker Pro/Xcode/Apple Configurator/Garageband/iMovie/Instruments
■入門編
AppleScriptの世界を形作るもの
macOS標準搭載アプリケーションで AppleScript対応機能を持つもの
AppleScriptを実行できる、 さまざまなmacOS標準搭載ツール
AppleScriptを実行できる、 サードパーティのハード&ソフト
AppleScriptってなんだろう?
スクリプトエディタの使い方
「構文確認」時に行われること
Scriptを書く前に準備しておくこと
AppleScript最速マスター
文法編
AppleScript予約語一覧
AppleScript最新リファレンス
tellブロック/アクション/ダイアログ表示/コマンド/他の言語呼び出し/序数/制御構文/文字列操作/システム日付/データ型/定数/変数・プロパティ宣言/関数/演算子/パス関連/ファイル入出力/ローカライズ関連/テキスト要約/Webサービス呼び出し/フィルタ参照/サブルーチン宣言/無意味語/クリップボード制御/音量制御/スクリプトオブジェクト/その他
アプリケーションへの命令パターン
Script Debuggerとは?
Finder用語辞書攻略ガイド
Finderを使った定型処理
コラム GUIアプリの操作に影響を与えるFinder設定項目
■利用編
Script Menuの使い方
FastScripts 3
アプリケーションごとのScript Menu
フォルダアクション解説
Terminalから使うAppleScript
各種プラグインAppleScript
PDF Workflow Script解説
Mail Plugin Script解説
コンテクストメニューから呼び出す
廃止されたプラグインAppleScript
その他のAppleScriptランチャー〜スイッチコントロール/Automator/ショートカット/音声コントロール/Adobe Illustrator 2023/Adobe InDesign 2023/Keyboard Maestro/Hammerspoon/Service Station/Dropzone 4/Visual Studio Code/CotEditor+PowerPack/Xojo 2023/Live Code/Elgato Stream Deck
制限つきユーザーアカウント&制限つきマシン環境下のAppleScript
ペアレンタルコントロールとAppleScript
MDMによる制限環境下のAppleScript
■実践編
OSバージョン番号確認
ランタイム環境を知る
ハードウェア情報
GUI Scriptingの概要
AppleScriptからネット上の機能を手軽に活用
REST API呼び出し
CDN上のJavaScriptライブラリ呼び出し
ドロップレットを作らなくても大丈夫なScript運用術
Cocoa Scripting入門
対応Framework一覧(macOS 13/14)
Mac App StoreでAppleScriptで作ったアプリを販売
Piyomaru コンテクストメニューアシスタント
Piyomaru Script Templates
■資料編
AppleScriptと相性のよくない技術
各アプリケーションにおけるさまざまな座標系
独自マクロ言語内に記述するAppleScript〜Microsoft Office VBA/Claris FileMaker Pro Script Step
iOSデバイスとの連携
下準備
iOSデバイスからAppleScriptを実行する
iOSデバイス上の情報を更新する
AppleScriptで電話をかける
AppleScriptでSMSを送信する
iPhone/iPadとFaceTimeで通話する
リソースリファレンス〜Predicate文/UTI/アイコン/ディスクイメージ
AppleScriptの歴史
macOSとAppleScriptの要素技術史
AppleScriptの歴史 macOS編
AppleScriptの歴史 Classic MacOS編
AppleScript FAQs
エラー番号とエラーメッセージ
AppleScriptのエラー・コード表
キーコード表
キー入力シミュレーション用キーコード
あとがき
目下、電子書籍「AppleScript最新リファレンスv2.8対応」の絶賛仕上げ中です。70%程度の完成度でしょうか。9月中に終わらせたいところですが、まだまだ油断できません。今日、ページを数えてみたら800ページを超えていました。せめて、900ページに達しないようにしたいところです。
この作業が終わるまでは、制作環境を変えるのは危険です。昨今のmacOSのリリース版の出来の悪さを思えば、PDF出力ができなくなったり、日本語入力に問題が生じるぐらいは当然のようにあり得る話でしょう。
そのため、この作業が終わるまではしばらくmacOS 14へのアップデートは見送ります。β版でCocoa Scriptingの機能呼び出しでまばらに機能低下が報告されていますが、1台のマシンで外付けドライブからの切り替え起動が行えない現行環境を考えると、速度差を計測するベンチマークを行うためには、ほぼ同スペックのマシンを複数台用意する必要が生じます。
これは、さすがにコストに見合わないため、できない話です。せめて、こうしたテストに協力してくれるところがあればよいのですが、なかなか価値を共有できるユニットが見当たりません。
「AppleScript最新リファレンスv2.8」の作成で、一番手間がかかったのは、Markdownで書いた原稿をPagesに移し替えることでした。Markdownでは雑なレイアウトを作ることはできても、結局のところ「表」の制御がまったくできないために、Markdownで作り続けることは無理だと判断しました。掲載プログラムリストについても、行折り返しが不自然になる箇所があり、そのために全体の文字サイズが変わってしまうなどの「不可解な挙動」がいくつか見られました。
とっくの昔に結論が出ていたことですが、もう本作りにMarkdownは利用していません。
そして、作り直すさいにさまざまなコンテンツを再チェックすることで、なるべく間違いがなくなるように努めてきました。この表もその1つです。
昔作ってそのまま使い回してきましたが、Digital Hub Scriptingの箇所が不自然です。
Digital Hub ScriptingはmacOS 10.13の時点でSystem Eventsに移行した、と考えていました。でも、今日、ねんのために確認してみたら、
あれっ?(^ー^::
Digital Hub Scriptingについては、個人的な使用頻度がおそろしく低く、あまり使ってきませんでした。System EventsのSuites(命令群)の移り変わりについては割とチェックしてきたのですが、Digital Hub Scriptingについてはちょっと自信がありません。
手元の稼働状態にあるマシンで一番古いのはOS X 10.7.5の環境で、これをチェックしたところ、Digital Hub Scripting.osaxは存在していました。
バージョン1.7です。
macOS 13.6の環境でチェックしてみたところ、
あいかわらずバージョン1.7でした。もはや、初期のMac OS Xの環境については起動可能なものがない(か、確認に時間がかかる)ため、多分このような感じなのでは? というところでしょうか。OS X 10.6.8については未確認ですが、おそらく10.6.8の段階でDigital Hub Scripting.osaxは収録されていたことでしょう。
こんなところではないかと。もはや、考古学の領域ですが、勘違いで間違っていた部分を修正できたことは喜ばしいことです。ただ、この情報はほとんど誰も追いかけていないようなので、間違っていても怒られない気配が濃厚ではあります。
Piymaru Softwareによる電子書籍の84冊目、「ゆっくりAppleScript解説(3)」を発売しました。PDF42ページで構成されています。
第7章:デフォルト色のまま使うのはヤバいんだぜ!
第8章:tellを閉じるのに「end tell」と書くのは無駄無駄無駄無駄無駄ァ! なんだぜ!
第9章:「遅い」という文句は、残念なヤツの自己紹介なんだぜ
Piymaru Softwareによる電子書籍の83冊目、「Cocoa Scripting Course #6, PDFKit」を発売しました。PDF560ページ+サンプルScript Zipアーカイブで構成されています。
PDF処理は、Cocoa Scriptingの1つの価値ある到達点です。この処理が行いたいからCocoaの呼び出しについて苦労を重ねてきたと言えます。機械学習やREST API呼び出し、配列からの高速なデータ抽出など、Cocoa Scriptingの「おいしい用途」は星の数ほどありますが、PDF処理は間違いなくその中でもトップランクの攻略目標のうちの1つです。
日常的にPDFを扱っているScripterなら、Cocoa Scriptingによって得られるメリットが膨大なものであることをもれなく間違いなくいかんなく実感できることでしょう。
1章 入門編
2章 実践編
3章 PDFKit編
PDFKitの位置付けと役割
用途別のフレームワークを知ろう
PDFKit内の主要クラス
PDFKit+AppleScriptのつかいどころ
PDFKit+AppleScriptの注意点
PDFKit.frameworkの利用宣言文
(参考資料)PDFの座標系
PDFDocument Basic Samples
PDFPage Basic Samples
PDFOutline Basic Samples
PDFAnnotation Basic Samples
4章 PDF処理 基礎編
PDFの処理の流れ
AppleScript+PDFKitでよく使う基礎的な処理
AppleScript+PDFKitの基礎的な処理手順
AppleScript+PDFKitでよく使う基礎的な処理の手順
PDFからの情報取得
PDFのサイズをPointで取得
PDFから各種情報をNSDictionaryで取得
PDFから各種情報を文字列で取得
PDFページカウント
PDFのページカウント(PDFDocument)
PDFのページカウント(Metadata Lib経由)
PDF本文テキスト抽出
PDFの全ページのテキストを抽出
PDFのテキストをページ単位で抽出
PDFを回転
PDFを回転させて新規保存
PDFを印刷
PDFを印刷
RTFをPDFに変換
RTFをPDFに変換
PDFからのテキスト検索
PDFテキストからの指定キーワード検索
ページ単位でPDF分割
ページ単位でPDF分割
複数PDF結合
choose fileコマンドで選択した複数のPDFを結合
PDF→他形式画像変換
ページ単位でJPEG画像に変換
画像連結してPDF作成
フォルダ内のJPEG画像を新規PDFに連結
指定フォルダ下のすべての画像を新規PDFに連結
フォルダ内のJPEG画像を既存のPDFに連結
Multi Page TIFFからPDFへの変換
Multi Page TIFFからPDFへの変換
アラートダイアログでPDFを表示
アラートダイアログ+WkWebViewでPDFを表示
アラートダイアログ+PDFViewでPDFを表示
5章 PDF処理 上級編
PDFのパスワード、暗号化設定
PDFのアクセス権とパスワード
パスワード設定をチェック
設定されているパーミッションを取得
PDFにパスワードを設定(1/2)
PDFにパスワードを設定(2/2)
PDFのパスワードを解除
PDFの空白ページ検出
PDFから空白ページを削除(1/3)
PDFから空白ページを削除(2/3)
PDFから空白ページを削除(3/3)
PDFフォーム入力
PDFフォームにテキスト入力して別名保存(1/2)
PDFフォームにテキスト入力して別名保存(2/2)
PDFフォームにチェックボックス入力(1/2)
PDFフォームにチェックボックス入力(2/2)
Quartzフィルタ
Quartzフィルタとは?
QuartzFilter出力例一覧
Quartzフィルタの一覧を出力
白黒のQuartzフィルタをかけて出力
ブルートーンのQuartzフィルタをかけて出力
PDFX-3のQuartzフィルタをかけて出力
グレートーンのQuartzフィルタをかけて出力
明度低下のQuartzフィルタをかけて出力
明度上昇のQuartzフィルタをかけて出力
ファイルサイズ縮小のQuartzフィルタをかけて出力
セピアトーンのQuartzフィルタをかけて出力
PDFアノテーションを取得、追加、書き換え、削除
アノテーションについて
アノテーションを取得
サークル・アノテーションを追加
スクウェア・アノテーションを追加
ライン・アノテーションを追加
テキスト・アノテーションを追加
URLリンク・アノテーションを追加(1/2)
URLリンク・アノテーションを追加(2/2)
指定語群にハイライトを追加(1/2)
指定語群にハイライトを追加(2/2)
指定語群にアンダーラインを追加(1/2)
指定語群にアンダーラインを追加(2/2)
指定語群に打ち消し線を追加(1/2)
指定語群に打ち消し線を追加(2/2)
PDFからすべてのアノテーションを削除
PDFのリンク抽出、リンク置換
PDFのリンク先は?
リンクの各種情報を取得(1/2)
リンクの各種情報を取得(2/2)
リンク・アノテーションからURLを抽出
URLリンク・アノテーションを追加(1/2)
URLリンク・アノテーションを追加(2/2)
書類内リンク・アノテーションを追加(1/2)
書類内リンク・アノテーションを追加(2/2)
リンクアノテーションのURLを置換
PDFのOCR処理(OCRテキスト埋め込み)
PDFのOCR処理(1/3)
PDFのOCR処理(2/3)
PDFのOCR処理(3/3)
PDFのしおり(TOC)を取得、追加、削除
TOCの題名と階層が悩ましい(1/2)
TOCの題名と階層が悩ましい(2/2)
指定PDFのTOCを取得してレコード化(1/2)
指定PDFのTOCを取得してレコード化(2/2)
ノンブルだけのフラットなTOCを付加(1/2)
ノンブルだけのフラットなTOCを付加(2/2)
Recordデータから階層TOCを付加(1/3)
Recordデータから階層TOCを付加(2/3)
Recordデータから階層TOCを付加(3/3)
Numbersの表データから階層TOCを付加(1/4)
Numbersの表データから階層TOCを付加(2/4)
Numbersの表データから階層TOCを付加(3/4)
Numbersの表データから階層TOCを付加(4/4)
指定PDFのTOCを削除
添付サンプルScript紹介
サンプルScript集
資料編
Piymaru Softwareによる電子書籍の82冊目、「Keynote Scripting Book with AppleScript」を発売しました。PDF 434ページ+サンプルScript Zipアーカイブで構成されています。macOS標準装備のScript Menuに入れてKeynoteをコントロールするメニューScript集も添付しています。
→ 販売ページ
初級、中級、上級のScripting解説内容に加え、大量かつ強力なAppleScriptサンプルを掲載しています。これは、実際に筆者が自分のマシンにインストールして使っているものと同じものです。
実用編
付録Script Menuスクリプトのインストール
Script Menuスクリプトのインストール①
Script Menuスクリプトのインストール②
TOCつきでPDF書き出し
最前面の書類をTOCつきPDF出力①
最前面の書類をTOCつきPDF出力②
最前面の書類をTOCつきPDF出力③
すべてデスクトップ上にPDF出力
クリップボードに入れたものを処理
指定色でモノクロ化してクリップボードへ
赤でモノクロ化してクリップボードへ
水色でモノクロ化してクリップボードへ
グリーンでモノクロ化してクリップボードへ
マゼンタでモノクロ化してクリップボードへ
自動スライドめくり
冒頭から末尾まで自動スライドめくり
表を処理
表オブジェクトの重なり合い(2つ以上対応)を検出
AppleScript Recordから表を作成
選択中のセルの文字列長さを一覧表で表示
全スライドの表で行番号入り表の連番修正
現在のスライド上にある選択中の表のカラム幅を自動調整
現在のスライド上にあるすべての表のカラム幅を自動調整
選択中のページのオリジナル表のセル幅に以降の表のセル幅を統一
選択中のページの表1のセル幅に以降の表のセル幅を統一
現在のスライド上にあるすべての表のカラム幅を自動調整
マル付き数字のインクリメント(+1)
マル付き数字のデクリメント(ー1)
マル付き数字のリナンバー
現在のスライドからテキストアイテムを色で選択
x色系のみ選択
選択中の最前面の書類に対する処理
連続する同一タイトルに子番号を振る
スライド末尾にQRコードを追加
選択中の画像へのぼかしフィルタ処理
選択中の画像にぼかし処理
選択中の各種オブジェクトへの処理
オブジェクトの重なり合い(2つペア)を検出してグループ化
テキストを座標値でソートしてまとめてクリップボードへ
横幅を均等に変更
数える
選択中のオブジェクトのうちテキストだけ残す
現在表示中のスライドに対する処理
テキストを上から順に連結してクリップボードに転送
指定した文字で囲まれたキーワードの色を置換する
PDFに書き出してオープン
選択中のテキストアイテムの処理
AppleScriptとみなして、構文確認してスタイル付きテキストとして書き戻す
AppleScriptとみなして、構文確認してスタイル付きテキストとして書き戻す(結果つき)
それぞれ個別のAS書類として保存する
まとめて1つのAS書類として保存する
テキストアイテム中のURLにリンクを張って
HTMLタグを外す
文字の実際の幅でリサイズ
文字の実際の幅と高さでリサイズ
選択中のスライドの処理
すべての表の文字色を黒にする
タイトルをまとめてクリップボードに入れる
現在のスライド以降の同じスライドレイアウト(同階層の)スライドのタイトルを取得してクリップボードへ
現在のスライド以降の同じスライドレイアウト(同階層)のスライドのタイトルを取得して改行でまとめてクリップボードへ(末端レベルではないものが対象)
選択中のスライドのグループアイテムをグループ解除
選択中のスライド中の各テキストアイテムのうち指定フォントサイズのものの色を変更
不透明度が100でないオブジェクトの透明度を解除
選択スライド枚数を数える
選択中のスライドのshapeのうち最も右上にあるものの座標を右上角に変更
目次作成
クリップボードへ転送
Numbersの表を作成
カレンダー作成
指定月の日曜日はじまりカレンダーを表で作成
オブジェクトの詰め込み
指定範囲にスライド上のオブジェクトを詰め込み①
指定範囲にスライド上のオブジェクトを詰め込み②
2ページ間(現在、次)のオブジェクト整頓
オブジェクトの位置をそろえる
没スライドに対する処理
現在の書類と同じ階層に没スライド入れを作成
Piyomaru Softwareの電子書籍も、いまでは80冊ほど出していますが、最初のきっかけは「AppleScript最新リファレンス」という名前の薄い本(500ページぐらい)でした。
▲計画段階の「AppleScript最新リファレンス」。ここから、実際に書けない記事をふるい落とすという「妥協」が…….
その後、何回かアップデート計画が浮上しては、あまりの分量の多さの前に挫折。ゼロから書くよりも、アップデートする作業の方が実は大変です。
「AppleScript最新リファレンス」はいわば何でもありの「大辞典」に相当するものです。「これでは更新し切れないねー」とあきらめて、小さなテーマごとに最新情報を集めて各種電子書籍を書くという「小辞典」「中辞典」方式を展開。
項目数の少ない「小辞典」「中辞典」で情報のリストアップと更新を行い、その結果を「大辞典」に反映させるというやりかたです。
ここに来て、ようやく更新できるんじゃないか?(仮説)という雰囲気になってきたため、更新をすすめています。まえがきとあとがきを書き、その他のコンセプトに関わるページを書いてみて「いけそうかも」という手応えを得ています(挫折する可能性はあるかも)。
「AppleScript最新リファレンス」はMacDownとPages(扉ページや凝ったレイアウトが必要なページだけ)を用いて作成したのですが、記述環境としてのMacDownがあまりにも使えないので、MarkdownのページはPagesで作り直しています。
最新版のmacOSが動くマシンが手元にM1 Mac miniの1台しかないので、これにBeta版のmacOS 14などを入れてしまった日にはスクリーンショットが撮れません。正確に言えば、スクリーンショットを撮っても使えません(禁止事項)。
なので、外付けSSDへのベータ版のmacOSのインストールは必須なのですが、macOS 13の際に「リリース後には、外付けSSDからの複数バージョンのOSのインストールや起動を禁止する」というジャイアン風味たっぷりなAppleの対応。さらに、β版のmacOSよりもRelease版のmacOSの方がバグだらけで(OS X 10.13、10.15にひきつづき3回目)、macOS 14についてもβプログラムの存在意義について疑問視しています。
とにかく、macOS 14についてはβ版をガン無視して「AppleScript最新リファレンス」のアップデートを行うべき、という判断です。
Claris FileMaker Pro 2023と、Microsoft Officeの最新版については、AppleScript記述方法に関する記事は掲載したいところです(Developer Program入ってるし、Office 365の契約しているし)。Adobe Creative Cloudについては契約していないので、このあたりの話は書けません。
AppleScriptコマンドリファレンスについては、各種書籍用にアップデートしながらメンテナンスしているので、これは最新版を掲載できることでしょう。エラーコード表も然りです。
全体的に、Script Sampleを掲載しまくるような本ではなく、それぞれの項目について「最新環境ではどうなっているのか」という情報を提供する書籍になることでしょう。
そして、挫折しなければv2.8対応版を出せることでしょう。
SafariやGoogle Chromeなど7つのmacOS用Webブラウザを操作するAppleScriptの書き方と有用な実例を紹介する電子書籍「AppleScriptによるWebブラウザ自動操縦ガイド」をアップデートしたv1.3を公開しました。ページ数も317から330ページに増加。macOS 12, Monterey & 13 Ventura, Apple Silicon Mac対応です。
→ 販売ページ
1章 めんどうな操作を自動化しよう!
人間の手で操作して情報を集めたり、データ入力するのは非効率。スクリプトから操作して自動操作
2章 スクリプトエディタの使い方
AppleScript専用のスクリプトエディタの使い方など、基礎的な内容をご紹介。
3章 WebブラウザをAppleScriptから動かそう
macOS用Webブラウザの大半はAppleScriptから操作可能。AppleScript対応は必須の機能!
4章 Webブラウザの情報を取り出そう
Webブラウザ自体が大量の情報を管理しています。まずは、ブラウザの情報を調べてみましょう。
5章 指定URLをオープンしよう
誰にでも確実に行える操作です。かならず経験しておきましょう。URLをオープンした後が大事です。
6章 コンテンツをキャプチャして保存しよう
表示内容を変化しないデータや、再利用可能なデータとして残しておくことは、重要な処理です。
7章 Webコンテンツにアクセスしよう
HTML内の操作対象にアクセスするための、さまざまなアプローチをご紹介
8章 Webコンテンツを画面部品として操作しよう
画面上の部品と同様にWebコンテンツにアクセスして強引に操作する「奥の手」GUI Scripting
9章 ログイン、ログアウトしてみよう
ユーザー登録が必要なWebサイトの処理を行うために必須の作業です。意外とクリアしにくい箇所
10章 データをダウンロードして処理しよう
直接ダウンロードできないファイルのダウンロード完了を検出して、ファイル処理しよう! ダウンロード後にファイル整理したりファイル名を変更したり
11章 仮想ディスプレイでユーザーの誤操作を防ごう
ユーザーからの操作をガードするために、仮想ディスプレイを用意してWebブラウザを表示! 画面上から強引にScriptで動かすと、ユーザーの誤操作が一番の大敵
12章 さまざまな実行環境を知ろう
AppleScriptにはいろいろな実行環境があって、環境ごとにできる/できないことがあります。時間と気持ちに余裕のある時にでも読んでおくとよいでしょう。
13章 実例:Quoraの統計データを取得しよう
実際に、Quoraのアクセス情報ページにアクセスし、自分の投稿情報を取得してみよう!
14章 さまざまな技術資料。興味があったら読んでね
アプリケーション・オブジェクトの指定方法/AppleScript用語辞書の確認方法/Webブラウザの基礎的なScripting/Google Chrome系のWebブラウザのsdef/AppleScriptの歴史/AppleScriptのエラーコード表/各Webブラウザの用語辞書の変更履歴/AppleScript予約語一覧
「AppleScriptによるWebブラウザ自動操縦ガイド」をmacOS 13向けに内容更新中です。Ver.1.3になります。
本文の更新はできているので、添付のScriptの動作確認がひととおり終わればリリースします。すでにお買い上げの方は、Ver.1.3のリリースにともない、再ダウンロードすることで最新版をご覧いただけます。
Google Chromiumのみ、普通にインストールしても動かなかったのでv1.2と同様、Intel Binary版での検証となります。
Piymaru Softwareによる電子書籍の72冊目、「AppleScript基礎テクニック(29)セキュリティ機能解除」を発売しました。PDF 36ページ+サンプルScript Zipアーカイブで構成されています。
→ 販売ページ
macOS上の主要アプリケーション、FileMaker Pro、ミュージック.app、Webブラウザ、iWork(Keynote、Pages、Numbers)、CotEditorときて、ご要望の多かった「メール」(Mail.app)についてのScripting本です。macOS 13.1+Mail.app v16対応。PDF 369ページ+サンプルScript Zipアーカイブで構成されています。
macOS 10.7以降、それ自体の機能を制限するための「セキュリティ機能」が強化されるようになりました。つまり、機能を「制限する機能」です。macOS 10.10以降になると、セキュリティ機能の制約はAppleScriptにも及ぶようになり、デフォルトの状態では各種機能を動作できない設定状態でOSがリリースされるようになりました。
AppleScriptからmacOSのフル機能を利用するためには、各種セキュリティ機能の解除を行う必要があるわけです。AppleScriptからアプリケーションを操作しようとすると、「プライバシーとセキュリティ」>「オートメーション」などで実行側のプログラム(AppleScriptアプレットなど)に対して実行許可が必要です。
この解除方法を知らなければ、AppleScriptの制限解除が行えないわけで、「Scriptが動かなくなった!」「Scriptが壊れた!」と騒いでいる人を見かけますが、ほとんどがこれです。そして、Appleがこうした説明をしないため、知識や情報を持たない人はOSの機能を十分に発揮させられません。macOSの足枷を外して、本来のパワーを取り戻すための1冊です。もちろん、危険なことには手を出しません。
初期状態のままだと最新の環境でASが動かない
macOSのバージョンとセキュリティ機能の変化
macOS 12までの「セキュリティとプライバシー」
macOS 13からの「プライバシーとセキュリティ」
①アクセシビリティ
②フルディスクアクセス
③ファイルとフォルダ
④オートメーション
オートメーションの認証状態を取得
アクセシビリティの認証状態をScriptで確認
AppleScriptアプレットを実行する場合には
実行環境1:スクリプトエディタ
実行環境2:スクリプトメニュー
実行環境3:Automator
実行環境4:ショートカット.app
実行環境5:/usr/bin/osascript
AppleScript 各ランタイム環境情報(1/2)
AppleScript 各ランタイム環境情報(2/2)
Image Eventsが使えない!
ドロップレットでファイルを受信できない!
Safari でAppleScriptのコマンドがエラーに!
Safari 10以降のdo JavaScript設定
1987年に結成し、1994年まで会誌を発行し続けていたポケットコンピュータのユーザーズサークル「LL」の会報Vol.19の復刻・電子書籍版を刊行しました。
→ 販売ページ
Piyomaru Softwareによる電子書籍の71冊目です。例によって制作過程では大量のAppleScriptが使用されていますが、AppleScriptに関する本ではありません。
1987年に結成された、ポケコンサークル「LL」の会誌最終号(Vol.19)の復刻版です(当時のLL会員の方には無償配布)。1994年に発行された会誌Vol.19のバックアップCD-Rデータから再作成して蘇った電子書籍版。PDF 282ページ。
・欧州の森に謎のPC-1560を見た!
・幸福の青いPC-1500″D”
・月々240円で昔の彼女に会える
・SC61860をサポートするクロスアセンブラ
・2022年に新発売のMEPに驚愕!
・これがCE-140Fエミュレータだ!
・PC-1600用 大容量RAMモジュール
・露国在住のHWRなあんちくしょう
・多機種対応/合体式Bluetoothモジュール
・CE-126Pエミュレータで感熱紙不要の印刷を
・鉄人・堀川浩司氏のイベント参加魂!
・独仏のWebサイトは一味も二味も違う!
・東京都青梅市に古パソコン動態保存の「夢の図書館」
・ポケコン用のLCDをオリジナルで作成・販売
・ポケコン用周辺機器の製造・販売を行う高松製作所
・ポケコンなどの3Dモデルをフリー公開
・日本国内外のパソコンメーカー栄枯盛衰
Piymaru Softwareによる電子書籍の70冊目は、AppleScript対応アプリケーション徹底解説シリーズの第6弾。
macOS上の主要アプリケーション、FileMaker Pro、ミュージック.app、Webブラウザ、iWork(Keynote、Pages、Numbers)、CotEditorときて、ご要望の多かった「メール」(Mail.app)についてのScripting本です。macOS 13.1+Mail.app v16対応。PDF 369ページ+サンプルScript Zipアーカイブで構成されています。
→ 販売ページ
本書は、Mail.appのAppleScriptによるScriptingについて基礎からハイ・テクニックまで、詳細にまとめた決定版です。
メールの詳細な情報取得や送信、ファイル添付送信、メールのスレッドをマインドマップ風に可視化して表示したり、REST API経由で高速メール配信サービスを用いた送信まで。幅広く実用的なメール関連のAppleScriptのノウハウをご紹介しています。
ずいぶん時間をかけて書いた本で、あとから企画が出た数冊の本が追い抜いていました。CotEditor本も、あとから企画したものの、あちらが先に完成しました。とにかくアプリケーションの規模が大きく、機能が多く、試しておくべき機能が多いので、とにかく時間がかかるんですね。実際、年末年始も書いていました。
以前から(2004年ぐらいから)受信メールのサブフォルダへの再仕分けScriptを運用しており、いまも利用していますが、これを添付しています。
また、選択したメールスレッドのマインドマップ形式の可視化Scriptも、別途アプリケーションをインストールしなくても利用できるものを添付しています。
SendGridのREST APIを呼び出して超高速にメール送信を行うScriptは、あんまり速いので腰が抜けるほどですが、これも一見の価値あるものでしょう。
Numbersの表に入れたデータをもとに、メールの文面にデータを差し込んで送信するScriptも添付しているので、年末年始のごあいさつなどに威力を発揮することでしょう。
スクリプトエディタを起動しよう
スクリプトエディタを起動しよう!
スクリプトエディタのヘルプ
色設定を変えてみよう!
スクリプトを入力してみよう
スクリプトを保存しよう
スクリプトを実行しよう(1/2)
スクリプトを実行しよう(2/2)
セキュリティとプライバシー
プライバシーとセキュリティ(13.x以降)
セキュリティとプライバシー>プライバシー
プライバシーとセキュリティ(macOS 13)
メール.appを起動しよう
メール(Mail.app)を指定
メール.appを起動
メール.appを終了
メール.appのAppleScript用語辞書の調べ方
メニュー項目や画面強制操作の調べ方
メール.appの詳細仕様について
メール.appの情報を取得しよう
メール.appの名前を取得
メール.appのバージョンを取得
メール.appのプロパティ項目と内容(1/2)
メール.appのプロパティ項目と内容(2/2)
選択中のメールボックス、メールを取得
selected mainboxes=選択中のメールボックス
selected messages=選択中のメール
selection=選択中のメッセージを取得
メールボックスのプロパティ項目と内容
メール情報の取得
メッセージ(メール)の内容を取得
メッセージ(メール)のソースを取得
メッセージ(メール)の各種情報を取得
メッセージのプロパティ項目と内容
メッセージのプロパティ項目と内容
メッセージのプロパティ項目と内容
条件に合ったメールの抽出
条件に合うメッセージを取得
メールアカウント情報
メールアカウントは複数存在可能
accountオブジェクトの詳細情報を取得
アカウントのプロパティ項目と内容①
アカウントのプロパティ項目と内容②
メールアドレスを取り出す
文字列からメールアドレスと氏名を抽出
選択中のメッセージからメールアドレスと氏名を抽出
シグネチャ(署名)
設定>署名で「署名」を管理
署名から情報を取得
アプリケーションの選択中署名情報
署名の属性値の書き換え(名称、本文)
スクリプトメニューからの操作
スクリプトメニューからの操作①
スクリプトメニューからの操作②
スクリプトメニューからの操作③
プリントアウト
メール.appから印刷出力(GUI側)
AppleScriptによる印刷
AppleScript(GUI Scripting)による印刷
アカウントを指定しての新着メール確認
メールアカウント種類ごとのメール確認
新着メール確認スケジュールの設定/停止
SMTPサーバー
SMTPサーバー情報の取得
指定アカウントのSMTPサーバー設定を切り替え
SMTPサーバーのプロパティ項目と内容
新規メール作成
メッセージの新規作成
メール送信
メッセージの新規作成+送信
GUI側で作成していたメールの送信①
GUI側で作成していたメールの送信②
添付ファイルつきメール送信
メッセージの新規作成+ファイル添付+送信
メッセージの新規作成+アーカイブファイル添付+送信①
メッセージの新規作成+アーカイブファイル添付+送信②
メールの添付ファイルを処理
選択中のメールの添付ファイルを保存
選択中のメールの添付ファイルの種別を集計①
選択中のメールの添付ファイルの種別を集計②
選択中のメールに添付ファイルがあれば背景色を赤く変更
メール返信
選択中のメールへの返信①
選択中のメールへの返信②
メール転送(Forward)
選択中のメールの転送(forward)①
選択中のメールへの転送②
メールのリダイレクト
選択中のメールの非破壊転送(redirect)①
メールボックスへのアクセス
特別なメールボックスのオブジェクト
特別なメールボックスへのアクセス
アカウント毎の特別なメールボックスへのアクセス
メールフォルダのパス情報
メールボックスのパス表記
選択中のメールボックスのフルパスを取得
フルパス文字列でメールボックスを指定
メールのフォルダ間の移動
メールの指定①
メールの指定②
メールのコピー
メールの移動
ビューアウィンドウの操作
メール.appのウィンドウ種別
ビューアウィンドウ操作
message viewerのプロパティ項目と内容①
message viewerのプロパティ項目と内容②
メールのルールを扱う
受信メールから条件実行するアクション「ルール」
「ルール」の「AppleScriptを実行」環境
テンプレートのメール.app用プラグインScript
ルールにAppleScript側からアクセス
ルールの「条件」にアクセスするrule condition
rule conditionとGUI上の内容との対比
ルールの「操作」の内容にアクセス
ルール「操作」の詳細にアクセス
URL Eventの発生/受信
メール.appが対応しているURLイベント
mailto: URLイベント(概要)
mailto: URLイベントを発生してメール作成
message: ローカルのメールのURLを求めて表示
メールヘッダー情報の取得
メッセージヘッダーの内容を取得
メッセージ(メール)のヘッダーを取得
ヘッダーの構成例
ヘッダーからフィールド名一覧を取得
メーラー名(x-mailer)を集計
メールスレッドの可視化
スレッドの可視化①
スレッドの可視化②選択中のメール情報
スレッドの可視化③各メールヘッダ情報
スレッドの可視化④.dotデータの作成
スレッドの可視化⑤.dotデータを表示
メーリングリストの振り分け先フォルダを抽出する
メーリングリストを処理するルールを抽出
メッセージ移動先がないルールを抽出
メールの再仕分け
「メールの再仕分け」とは?
「メールの再仕分け」Script変更履歴
「メールの再仕分け」Script処理概要
「メールの再仕分け」Script①
「メールの再仕分け」Script②
「メールの再仕分け」Script③
「メールの再仕分け」Script④
「メールの再仕分け」Script⑤
「メールの再仕分け」Script⑥
「メールの再仕分け」Script⑦
「メールの再仕分け」Script⑧
スタイル付きテキストのメール作成+データ差し込み
スタイル付きメールを作成するために
書式スタイル付きメールを作成
HTMLからスタイル付きメールを作成
RTFからスタイル付きメールを作成①
RTFからスタイル付きメールを作成②
Numbers上のデータをもとにさしこみメール作成
データ差し込みメール送信【概要】
データ差し込みメール送信①
データ差し込みメール送信②
データ差し込みメール送信③
データ差し込みメール送信④
高速・大量メール送信
高速メール配信サービスの利用
高速メール配信サービス一覧
SendGridのAPI Key取得までの道①
SendGridのAPI Key取得までの道②
SendGridのAPI Key取得までの道②
SendGridによるメール配信テスト(メール.app)
SendGridによるメール配信テスト(メール.app)
メール.appによるメール配信プログラム(SendGrid使用)
REST APIによるメール高速配信プログラム
SendGridを用いたメール送信所要時間(500通)
メール.appで大量送信後のメモリの状態
ランタイム環境の選択
AppleScriptの実行環境はたくさんある
実行中に止まる、落ちるという場合には
メール.appのAppleScript用語辞書解説
メール.app用語辞書
メール.appのAppleScript用語の変遷
メール.app用語辞書の変遷
メール.app&AppleScript Q&A
AppleScriptに関するQ&A❶
AppleScriptに関するQ&A❷
AppleScript mini Reference
macOS搭載 AppleScript関連ドキュメント
AppleScript関連の情報源
macOSバージョンとAppleScriptの動向
macOSとAppleScriptの要素技術史
各macOSごとのAppleScript解説(2/4)
各macOSごとのAppleScript解説(3/4)
各macOSごとのAppleScript解説(4/4)
macOS内AppleScript補助ツールの歴史
System EventsのAppleScript用語辞書変更点
AppleScript 各ランタイム環境情報
AppleScript 関連ツール
Cocoa Scripting 関連ツール
AppleScript予約語一覧
サードパーティ製FrameworkやAppleScript Librariesを呼ぶ
Script BundleにFramework / AppleScript Librariesを入れる
Shane StanleyのScript Toolの変遷
Shane StanleyのScript Libraries
Piyomaru SoftwareのScript Libraries (1/2)
Piyomaru SoftwareのScript Libraries (2/2)
エラーコード表
AppleScriptのエラーコード
AppleScript Errors
Mac OS Errors
AppleEvent Errors (1/2)
AppleEvent Errors (2/2)
OSA Errors
あとがき
Piyomaru Software Booksの69冊目。「CotEditor Scripting Book with AppleScript」を発売しました。PDF 343ページ+サンプルScriptZipアーカイブ で構成されています。
→ 販売ページ
アプリケーションのすべてのScriptingをわかりやすく詳細にまとめた徹底解説シリーズの第5弾。
CotEditorは(起動、動作が)速い、うまい、フリー、と3拍子そろった、Macユーザー定番のテキストエディタです。
macOS専用に作られているため、その分、macOSならではの機能を活かす方向に全振りした作りになっています。
そんなCotEditorはもちろんAppleScriptに対応しており、さまざまな作業の部品としてCotEditorを利用したり、CotEditor自体の機能をAppleScriptで追加することもできます。macOS 12以降に対応。
・スクリプトエディタを起動しよう
スクリプトエディタを起動しよう!
スクリプトエディタのヘルプ
色設定を変えてみよう!
スクリプトを入力してみよう
スクリプトを保存しよう
スクリプトを実行しよう(1/3)
スクリプトを実行しよう(2/3)
セキュリティとプライバシー
プライバシーとセキュリティ(13.x以降)
セキュリティとプライバシー>プライバシー
プライバシーとセキュリティ(macOS 13)
・CotEditorを起動しよう
CotEditorを指定
CotEditor.appを起動
CotEditor.appを終了
CotEditorのAppleScript用語辞書の調べ方
メニュー項目や画面強制操作の調べ方
CotEditorの詳細仕様について
・CotEditor自体の情報を取得しよう
CotEditorの名前を取得
CotEditorのバージョンを取得
CotEditorのプロパティ項目と内容
・オープン中の書類へのアクセス
CotEditorでオープン中の書類へのアクセス
最前面の書類、ウインドウにアクセス
documentの属性情報にアクセス
windowの属性情報にアクセス
ウインドウ関連の操作で「できない」こと
・書類の選択部分へのアクセス
selection=選択中のテキスト
selection自体のプロパティ
selection内容のテキストの取得
selection内容の書き換え
selectionの作成
・書類のスクロールとジャンプ
書類のスクロール①
書類のスクロール②
書類の指定行にジャンプ
書類の乱数行にジャンプ
・ウインドウの操作
ウインドウの属性値へのアクセス
指定ウインドウを最前面に表示
指定ウインドウの表示状態を変更
指定ウインドウをズーム表示
参考:最前面のウインドウをフルスクリーン表示
指定ウインドウのサイズを変更
・CotEditor内蔵コンソールへの文字列出力
コンソールに文字列を出力
・内蔵/OS搭載スクリプトメニューからの操作
2つのScript Menu環境
CotEditor内蔵スクリプトメニュー
macOS搭載標準スクリプトメニュー
各スクリプトメニューの技術仕様
・AppleScriptからCotEditorを操作するパターン
・ファイルのオープン
ファイルを指定して書類をオープン
複数のファイルを指定して書類をオープン
コラム「CotEditorが使用するパス表現」
・ファイルの保存
書類を指定パスに保存
書類を新規作成して本文を設定して指定パスに保存
保存済み書類に変更が加わっていたら保存
・ファイルのクローズ
書類をクローズ(with saving)
書類をクローズ(without saving)
書類をクローズ(saving ask)
新規書類をクローズ
・各種文字操作(選択範囲の操作)
change case
change kana
change roman width
shift right
shift left
move line up
move line down
sort lines
delete duplicate line
comment out
uncomment
smarten quotes
straighten quotes
smarten dashes
normalize unicode
・各種文字操作(document全体の操作)
find(1/2)
find(2/2)
replace
string
・タブ、改行コードの取り扱い
改行コードの変更タブ幅の変更
文字コードの指定
convert
reinterpret
・書式つきテキスト対応機能
CotEditorの書式つきテキスト対応機能
書式つきテキスト機能にAppleScriptからアクセス
・AppleScript非対応機能を呼び出す
AppleScriptで操作可能な範囲
GUI Scripting:メニューなどを強制操作①
GUI Scripting:メニューなどを強制操作②
GUI Scripting:メニューへのアクセス
指定ウインドウを最前面に移動
・プリントアウト
CotEditorからの印刷出力(macOS 13)
AppleScriptによるプリントアウト
GUI Scriptingによるプリントアウト①
GUI Scriptingによるプリントアウト②
GUI Scriptingによるプリントアウト③
GUI Scriptingによるプリントアウト④
GUI Scriptingによるプリントアウト⑤
正規表現
正規表現が使えるAppleScriptコマンド
findコマンド+正規表現(GUI側との対応)
replaceコマンド+正規表現(GUI側との対応)
replace サンプル①
replace サンプル②
replace サンプル③
replace サンプル④
・オープン時に縦/横書きを強制できる書類仕様
xattrコマンドで強制的に縦書き表示
・文字数のカウント
CotEditorの文字数カウント機能
AppleScriptの文字カウント
・内蔵スクリプトメニューの独自仕様
フォルダ階層構造がそのまま反映される
内蔵スクリプトメニューの独自機能
メニュー上の並び順を指定
メニュー上の区切りセパレータ表示指定
キーボードショートカットの指定
Scriptをメニューに出さない(非表示設定)
・CotEditorのAppleScript関連機能のバグ(v4.4.2)
・高度なサンプル集
AppleScriptで操作可能な範囲
最前面のウィンドウをフルスクリーン表示(1/2)
最前面のウィンドウをフルスクリーン表示(2/2)
選択範囲のテキストをhexdump(1/2)
選択範囲のテキストをhexdump(2/2)
選択範囲のカンマ区切りテキストをNumbersへ(1/2)
選択範囲のカンマ区切りテキストをNumbersへ(2/2)
選択範囲のテキストの文字比率グラフを表示(1/8)
選択範囲のテキストの使用文字比率のグラフ表示(2/8)
選択範囲のテキストの使用文字比率のグラフ表示(3/8)
選択範囲のテキストの使用文字比率のグラフ表示(4/8)
選択範囲のテキストの使用文字比率のグラフ表示(5/8)
選択範囲のテキストの使用文字比率のグラフ表示(6/8)
選択範囲のテキストの使用文字比率のグラフ表示(7/8)
選択範囲のテキストの使用文字比率のグラフ表示(8/8)
・便利な他のプログラムや周辺機器
さまざまなAppleScript呼び出しプログラムから操作①(1/2)
さまざまなAppleScript呼び出しプログラムから操作①(2/2)
さまざまなAppleScript呼び出しプログラムから操作②
さまざまなAppleScript呼び出しプログラムから操作③
さまざまなAppleScript呼び出しプログラムから操作④
・CotEditorのAppleScript用語辞書解説
・CotEditorのAppleScript用語の変遷
・CotEditor&AppleScript Q&A
・AppleScript mini Reference
・macOS搭載 AppleScript関連ドキュメント
・AppleScript関連の情報源
・macOSバージョンとAppleScriptの動向
・AppleScript予約語一覧
・サードパーティ製FrameworkやAppleScript Librariesを呼ぶ
・エラーコード表
Piyomaru Software Booksの66冊目。「AppleScript基礎テクニック集(28)アプリケーションとの対話」を発売しました。PDF 35ページ+サンプルScriptZipアーカイブ で構成されています。
→ 販売ページ
AppleScriptの文法をひととおり知っていて、実際に書くことができたとしても、それだけで何かをできるというものでもありません。各種GUIアプリケーションなりOSの機能を呼び出して、なにがしかの作業を自動化できなければ意味がありません。
ここで、いきなり「いつも行っている仕事をまるごと自動化しよう!」といった壮大な野望を目指しても失敗します。マウスやトラックパッドでGUIアプリケーションを操作するのと、AppleScriptで操作するのとでは「やりかた」や「方法」は若干異なります。そこには明確に「慣れ」が必要です。
その最初の第一歩が、アプリケーションとの間の「対話」です。対話してみて、様子を見て、それでアプリケーション操作の挙動を確認していきます。対話の仕方を知ることは、自動化を行うために必須の第一関門をクリアするためのノウハウなのです。
書く前にアプリケーションとの対話が欠かせない
対話の第一歩は、正確なアプリケーション名の指定から
参考資料:名前がローカライズされているアプリケーション
最初の会話「あなたの名前は?」
最初の会話「あなたの年齢は?」
AppleScript用語辞書で会話できる言葉を調査
選択中のオブジェクトを示すselectionを調査
「selection」の意味を調べる
オブジェクト選択してselectionの動作を調査
「selection range」の意味を調べる
表を選択してselection rangeの動作を調査
選択中のオブジェクトが「何か」を尋ねる
選択中のオブジェクトが「どうか」を尋ねる
書類上のオブジェクトを作成できないか?
audio clipを作成できないか?①
audio clipを作成できないか?②
対象オブジェクトに実行できるコマンドは?①
対象オブジェクトに実行できるコマンドは?②
対象オブジェクトに実行できるコマンドは?③
処理を組み立てるには「対話」が欠かせない
「AppleScript実践的テクニック集(1)GUI Scripting」をmacOS 13環境に合わせた内容にアップデートしました。初版の283ページから315ページに増加。初版をお買い上げの方は、購入ページから再ダウンロードすることでアップデート版を入手していただけます。
→ 販売ページ
Update:macOS 13環境に合わせた記述変更、画面キャプチャ
macOS 13環境に合わせた記述変更(背景を黄色く塗ったページ)や、画面キャプチャを再度行い、macOS 13環境でも迷わないように内容を修正しました。
Update:UI Browserについての使い方を補足
PffiddlesoftからLate Night Software, ltdに移管された、GUI Scripting必携ツール「UI Browser」についての使い方を説明する章を追加しました。
Update:システム設定の各Paneの表示Scriptを掲載
macOS 12→13への変更で各ユーザーに影響の大きい「システム環境設定」から「システム設定」への移行にともない、各設定項目を呼び出す従来のやり方が通じなくなってしまいました。
本アップデートでは、システム設定の各Paneを表示するためのAppleScriptを多数収録。すべてのPaneを表示できるようにしているほか、第2階層のUIについても選択できるようにしています。
Update:macOSとの互換性の低いアプリケーションのGUI Scripting例をご紹介
他のOS上の互換開発環境で作られた、macOSと互換性の低いアプリケーションをGUI Scriptingで操作する実例について、ご紹介しています。
Piyomaru Software Booksの65冊目。「誰でも気軽に開発体験 プログラム・キット①」を発売しました。PDF 90ページとなっています。
→ 販売ページ
プログラム・キットは、プラモデルのように誰もが挫折せずに、部品を組み立てて動かせるという「体験」を提供する本です。
組み上がったプログラムキットは、カスタマイズすることで、より新たな動きをするプログラムに進化させられます。
「プログラム・キット」シリーズの第1巻である本書では、人気のテキストエディタ「CotEditor」のウインドウを画面上でぐるぐる回転させるプログラムを扱っています。macOS 12以降用。
完成したプログラム・キットをいろいろなツールから起動できることをご紹介
完成したプログラム・キットをmacOS上のさまざまなプログラムから実行する方法についてご紹介
Piyomaru Software Booksの64冊目。「AppleScript基礎テクニック集(27)dateオブジェクト」を発売しました。PDF 37ページとなっています。
→ 販売ページ
dateオブジェクトは、数字や文字列ではなく「オブジェクト」であるために、かなり独特な挙動を行います。多くは「仕様」なのですが、これを知らないと怪奇現象のオンパレードという話になってしまいます。
一見すると「ナニコレ?」という挙動のかずかずも、実際にその理由を確認してみると納得できることばかり。dateオブジェクトに関して、知らないと遭遇するトラブルの数々を、華麗にかわしていきましょう。
dateは、日付時刻を保持するオブジェクト
date objectを手軽に取得して属性値を取得
システム環境設定の影響を受けるdateオブジェクト
システム環境設定の影響を受けるdateオブジェクト
スクリプトエディタ上だと自動修正される
日付文字列の記述形式は「優先する言語」で変化
Data Detectorでテキストから日付情報をピックアップ
言語環境を問わずに動くdate object作成処理
dateオブジェクトに対するパラメータ指定
1881年1月1日よりも過去の日付を扱うには注意が必要
dateの相対計算
指定月の日数を求める
指定日付の和暦の元号を求める
グリニッジ標準時(GMT)との時差を求める
秒以下の時間待ち計測
自然言語テキストからdate objectを抽出
dateオブジェクトを指定の日付文字形式で返す
dateオブジェクトをISO8601形式テキストに
ISO8601を考慮した週カウント
dateオブジェクトをRFC822形式文字列に変換
UTC時刻文字列をdateオブジェクトに変換
epoch timeの処理
Piyomaru Software Booksの63冊目。「AppleScript 7つの宝珠 神より授かりしプログラミングの魔法」第2の宝珠 if文〜条件分岐を発売しました。PDF 37ページとなっています。
→ 販売ページ
ものすごい変化球で作ってみた本の続刊で、他に書いていた巨大なテーマの本で挫折して中断したので、その気分転換に書いてみました。魔導書になぞらえたプログラミング入門書です。
入門書とひとことにいってもいろいろあります。決められたカリキュラムを淡々とこなしていくタイプ、根本からテーマを掘り下げるタイプ。そして本書は後者に該当し、「その技術が存在しなかった時代」というものを想像し、その技術を獲得したことにより魔法(プログラミング)はどう進化したのか、どのようなメリットがあったのかという「進化史」をなぞるような構成です。
誰もが、最初はif文の存在なんて知らなかったわけで、それを覚えて徐々に書けるものが進歩していったわけです。人間でいえば、赤ん坊の頃にハイハイして這って歩いていたのが、つかまり立ちするようになり、そして立って歩けるようになった、と。そうした過程をなぞってみたもので、割と真剣に作っているものです。
神(Computer)との対話を行う人の子の書
失われし魔法の7つの宝珠を求めて
変数と代入文という最初の宝珠
if文〜条件分岐という宝珠
繰り返しループ 体力を削らせない宝珠
配列変数 詠唱呪文の機能を高める宝珠
コメント文 失われた知恵の宝珠
ログ表示 簡単に変数の中身を確認する宝珠
終了 そこで呪文実行を止める宝珠
神の言葉から人の子の言葉への移行
例外事項の指定が効率化を生む
牛飼いを羊飼いに変える変数
魔法が自分で判断を行う条件分岐魔法
大きい、小さいといった関係性を表現
「含まれる」ことを調べられる魔法演算
魔法入門〜条件分岐呪文
条件式
条件文
条件文(魔法言語AppleScriptで記述)
文字列の大小判定&並べ替え=ソート①
文字列の大小判定&並べ替え=ソート②
複数の値をまとめて判定
文字をコード(番号)で指定
ゆうしゃ(=あなた)のステータス