Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

カテゴリー: Books

新発売:Cocoa Scripting Course #6, PDFKit

Posted on 8月 22, 2023 by Takaaki Naganoya

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集

資料編

Posted in Books news PRODUCTS | Tagged 12.0savvy 13.0savvy PDFAnnotation PDFDocument PDFOutline PDFPage | Leave a comment

新発売:Keynote Scripting Book with AppleScript

Posted on 7月 29, 2023 by Takaaki Naganoya

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ページ間(現在、次)のオブジェクト整頓
オブジェクトの位置をそろえる

没スライドに対する処理
 現在の書類と同じ階層に没スライド入れを作成

Posted in Books news | Leave a comment

出るか?「AppleScript最新リファレンス」のバージョン2.8対応版

Posted on 6月 15, 2023 by Takaaki Naganoya

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対応版を出せることでしょう。

→ AppleScript最新リファレンス v2.8対応(日本語版)
→ AppleScript The Latest Reference for v2.8 (1) (English Version)

Posted in Books news | Tagged 13.0savvy | 1 Comment

AppleScriptによるWebブラウザ自動操縦ガイドをmacOS 13対応アップデート

Posted on 2月 22, 2023 by Takaaki Naganoya

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予約語一覧

Posted in Books news | Tagged 12.0savvy 13.0savvy Brave Browser Google Chrome Google Chromium Microsoft Edge Opera Safari Vivaldi | Leave a comment

「AppleScriptによるWebブラウザ自動操縦ガイド」更新作業中!

Posted on 2月 16, 2023 by Takaaki Naganoya

「AppleScriptによるWebブラウザ自動操縦ガイド」をmacOS 13向けに内容更新中です。Ver.1.3になります。

本文の更新はできているので、添付のScriptの動作確認がひととおり終わればリリースします。すでにお買い上げの方は、Ver.1.3のリリースにともない、再ダウンロードすることで最新版をご覧いただけます。

Google Chromiumのみ、普通にインストールしても動かなかったのでv1.2と同様、Intel Binary版での検証となります。

Posted in Books news | Tagged 13.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(29)セキュリティ機能解除

Posted on 2月 15, 2023 by Takaaki Naganoya

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冊です。もちろん、危険なことには手を出しません。

目次

macOSのセキュリテイ機能とAppleScriptの制限解除

初期状態のままだと最新の環境でASが動かない
macOSのバージョンとセキュリティ機能の変化
macOS 12までの「セキュリティとプライバシー」
macOS 13からの「プライバシーとセキュリティ」
①アクセシビリティ
②フルディスクアクセス
③ファイルとフォルダ
④オートメーション
オートメーションの認証状態を取得
アクセシビリティの認証状態をScriptで確認

AppleScriptの実行プログラム=ランタイム環境を確認

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設定

Posted in Books Security | Tagged 12.0savvy 13.0savvy | Leave a comment

新発売:ポケコンサークル「LL」会誌Vol.19復刻版

Posted on 1月 30, 2023 by Takaaki Naganoya

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モデルをフリー公開
・日本国内外のパソコンメーカー栄枯盛衰

まえがき

ポケコンを当時何に使っていたの?~当時のポケコンユーザーの活動内容を振り返る

会誌作成テクノロジーの進歩~LL会誌を作る道具がどのように進化していったか

できるかな? Vol.2 ポケコン用PC-9801マウスインタフェース「鼠小僧キューハチ」完成!

CE-140F徹底解析

X680x0によるポケコンのクロス開発 

酸化ナトリウムくらぶ Vol.16  Pocket Movie Project第2回 「コントロール・コード」

常駐型 多重再生PCM&サウンドドライバーSound TSR 16K

CHENGER mkII For PC-1600K, PC-1605K, PC-1600

常駐型割り込みハードコピープログラムFor PC-1600K, PC-1605K, PC-1600 Post It! ver1.2

白黒二値画面情報圧縮用副プログラム集 LIPS For PC-1600K, PC-1605K, PC-1600

 

割り込みリアルタイムクロック For PC-1600K, PC-1605K, PC-1600

 

カルチャーショック野球拳 For PC-1600K, PC-1605K

でぃじたる和時計 For PC-1600K, PC-1605K

■エッセイ

■ふりーとーく

■かつて運営していたパソコン通信ホスト「LLine」をふりかえる

■The LL Times

■TV LL

■編集後記2023

Posted in Books news | Leave a comment

新発売:Mail.app Scripting Book with AppleScript

Posted on 1月 6, 2023 by Takaaki Naganoya

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
あとがき

Posted in Books news | Tagged Mail | Leave a comment

新発売:CotEditor Scripting Book with AppleScript

Posted on 12月 11, 2022 by Takaaki Naganoya

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を呼ぶ
・エラーコード表

Posted in Books news | Tagged 12.0savvy 13.0savvy CotEditor | Leave a comment

新発売:AppleScript基礎テクニック集(28)アプリケーションとの対話

Posted on 11月 23, 2022 by Takaaki Naganoya

Piyomaru Software Booksの66冊目。「AppleScript基礎テクニック集(28)アプリケーションとの対話」を発売しました。PDF 35ページ+サンプルScriptZipアーカイブ で構成されています。

→ 販売ページ

AppleScriptの文法をひととおり知っていて、実際に書くことができたとしても、それだけで何かをできるというものでもありません。各種GUIアプリケーションなりOSの機能を呼び出して、なにがしかの作業を自動化できなければ意味がありません。

ここで、いきなり「いつも行っている仕事をまるごと自動化しよう!」といった壮大な野望を目指しても失敗します。マウスやトラックパッドでGUIアプリケーションを操作するのと、AppleScriptで操作するのとでは「やりかた」や「方法」は若干異なります。そこには明確に「慣れ」が必要です。

その最初の第一歩が、アプリケーションとの間の「対話」です。対話してみて、様子を見て、それでアプリケーション操作の挙動を確認していきます。対話の仕方を知ることは、自動化を行うために必須の第一関門をクリアするためのノウハウなのです。

目次

■アプリケーションとの対話で書くAppleScript【初級編】

書く前にアプリケーションとの対話が欠かせない
対話の第一歩は、正確なアプリケーション名の指定から
参考資料:名前がローカライズされているアプリケーション
最初の会話「あなたの名前は?」
最初の会話「あなたの年齢は?」

■アプリケーションとの対話で書くAppleScript【日常会話編】

AppleScript用語辞書で会話できる言葉を調査
選択中のオブジェクトを示すselectionを調査
「selection」の意味を調べる
オブジェクト選択してselectionの動作を調査
「selection range」の意味を調べる
表を選択してselection rangeの動作を調査
選択中のオブジェクトが「何か」を尋ねる
選択中のオブジェクトが「どうか」を尋ねる

■アプリケーションとの対話で書くAppleScript【上級会話編】

書類上のオブジェクトを作成できないか?
audio clipを作成できないか?①
audio clipを作成できないか?②

■アプリケーションとの対話で書くAppleScript【未知との遭遇編】

対象オブジェクトに実行できるコマンドは?①
対象オブジェクトに実行できるコマンドは?②
対象オブジェクトに実行できるコマンドは?③
処理を組み立てるには「対話」が欠かせない

Posted in Books news | Tagged 13.0savvy Keynote | Leave a comment

macOS 13対応アップデート:AppleScript実践的テクニック集(1)GUI Scripting

Posted on 11月 16, 2022 by Takaaki Naganoya

「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で操作する実例について、ご紹介しています。

Posted in Books news | Tagged 13.0savvy | Leave a comment

新発売:誰でも気軽に開発体験 プログラム・キット

Posted on 11月 12, 2022 by Takaaki Naganoya

Piyomaru Software Booksの65冊目。「誰でも気軽に開発体験 プログラム・キット①」を発売しました。PDF 90ページとなっています。

→ 販売ページ

プログラム・キットは、プラモデルのように誰もが挫折せずに、部品を組み立てて動かせるという「体験」を提供する本です。

組み上がったプログラムキットは、カスタマイズすることで、より新たな動きをするプログラムに進化させられます。

「プログラム・キット」シリーズの第1巻である本書では、人気のテキストエディタ「CotEditor」のウインドウを画面上でぐるぐる回転させるプログラムを扱っています。macOS 12以降用。

■目次

1章 プログラム・キットとは?

プラモデルのようにプログラム開発体験

2章 環境をととのえよう!

プログラム・キット作成のために環境設定

3章 部品を確認しよう!

プログラム・キット同梱の部品を確認

4章 作業上の注意点

プログラム・キット組み立て作業における注意点

5章 部品を組み立てよう

プログラム・キットの組み立て説明

6章 プログラムの構成要素

中身がわかると、カスタマイズしやすい

7章 カスタマイズしよう

完成したプログラム・キットをいろいろなツールから起動できることをご紹介

8章 さまざまなプログラムから実行しよう

完成したプログラム・キットをmacOS上のさまざまなプログラムから実行する方法についてご紹介

Posted in Books news PRODUCTS | Leave a comment

新発売:AppleScript基礎テクニック集(27)dateオブジェクト

Posted on 10月 21, 2022 by Takaaki Naganoya

Piyomaru Software Booksの64冊目。「AppleScript基礎テクニック集(27)dateオブジェクト」を発売しました。PDF 37ページとなっています。

→ 販売ページ

dateオブジェクトは、数字や文字列ではなく「オブジェクト」であるために、かなり独特な挙動を行います。多くは「仕様」なのですが、これを知らないと怪奇現象のオンパレードという話になってしまいます。

一見すると「ナニコレ?」という挙動のかずかずも、実際にその理由を確認してみると納得できることばかり。dateオブジェクトに関して、知らないと遭遇するトラブルの数々を、華麗にかわしていきましょう。

目次

■date objectとは?

dateは、日付時刻を保持するオブジェクト
date objectを手軽に取得して属性値を取得
システム環境設定の影響を受けるdateオブジェクト
システム環境設定の影響を受けるdateオブジェクト

■テキストからdateオブジェクトを作る

スクリプトエディタ上だと自動修正される
日付文字列の記述形式は「優先する言語」で変化
Data Detectorでテキストから日付情報をピックアップ
言語環境を問わずに動くdate object作成処理

■dateオブジェクトでハマるポイント

dateオブジェクトに対するパラメータ指定
1881年1月1日よりも過去の日付を扱うには注意が必要

■date objectの各種計算

dateの相対計算
指定月の日数を求める
指定日付の和暦の元号を求める
グリニッジ標準時(GMT)との時差を求める
秒以下の時間待ち計測
自然言語テキストからdate objectを抽出
dateオブジェクトを指定の日付文字形式で返す
dateオブジェクトをISO8601形式テキストに
ISO8601を考慮した週カウント
dateオブジェクトをRFC822形式文字列に変換
UTC時刻文字列をdateオブジェクトに変換
epoch timeの処理

Posted in Books news PRODUCTS | Leave a comment

新発売:AppleScript 7つの宝珠(2)〜第2の宝珠 if文〜条件分岐

Posted on 10月 19, 2022 by Takaaki Naganoya

Piyomaru Software Booksの63冊目。「AppleScript 7つの宝珠 神より授かりしプログラミングの魔法」第2の宝珠 if文〜条件分岐を発売しました。PDF 37ページとなっています。

→ 販売ページ

ものすごい変化球で作ってみた本の続刊で、他に書いていた巨大なテーマの本で挫折して中断したので、その気分転換に書いてみました。魔導書になぞらえたプログラミング入門書です。

入門書とひとことにいってもいろいろあります。決められたカリキュラムを淡々とこなしていくタイプ、根本からテーマを掘り下げるタイプ。そして本書は後者に該当し、「その技術が存在しなかった時代」というものを想像し、その技術を獲得したことにより魔法(プログラミング)はどう進化したのか、どのようなメリットがあったのかという「進化史」をなぞるような構成です。

誰もが、最初はif文の存在なんて知らなかったわけで、それを覚えて徐々に書けるものが進歩していったわけです。人間でいえば、赤ん坊の頃にハイハイして這って歩いていたのが、つかまり立ちするようになり、そして立って歩けるようになった、と。そうした過程をなぞってみたもので、割と真剣に作っているものです。

目次

■魔導書「7つの宝珠」

神(Computer)との対話を行う人の子の書
失われし魔法の7つの宝珠を求めて
変数と代入文という最初の宝珠
if文〜条件分岐という宝珠
繰り返しループ 体力を削らせない宝珠
配列変数 詠唱呪文の機能を高める宝珠
コメント文 失われた知恵の宝珠
ログ表示 簡単に変数の中身を確認する宝珠
終了 そこで呪文実行を止める宝珠

■第2の宝珠if文〜条件分岐

神の言葉から人の子の言葉への移行
例外事項の指定が効率化を生む
牛飼いを羊飼いに変える変数
魔法が自分で判断を行う条件分岐魔法
大きい、小さいといった関係性を表現
「含まれる」ことを調べられる魔法演算

■条件分岐魔法呪文入門

魔法入門〜条件分岐呪文
条件式
条件文
条件文(魔法言語AppleScriptで記述)
文字列の大小判定&並べ替え=ソート①
文字列の大小判定&並べ替え=ソート②
複数の値をまとめて判定
文字をコード(番号)で指定
ゆうしゃ(=あなた)のステータス

Posted in Books news PRODUCTS | Leave a comment

新発売:AppleScript基礎テクニック集(26)処理停止

Posted on 10月 12, 2022 by Takaaki Naganoya

Piyomaru Software Booksの62冊目。基礎テクニック集26巻目の「処理停止」を発売しました。本文32ページとなっています。

→ 販売ページ

AppleScriptによる自動処理中に、途中で止めたいという状況は生まれることでしょう。

そのときになって、はじめて人は気付くのです。「どうやって止めたらいいんだろう?」と。

AppleScriptの処理を止める、途中で中断する……という一見シンプルな要望は、そのScriptがどの実行環境によって実行されているのか? という話がわかっていないと叶えられません。

AppleScriptが実行中に、止めるための操作方法、確実に止めるための仕組みづくりなどを解説します。

■AppleScript処理系ごとの標準的な停止方法

AppleScriptを途中で止めるために
AppleScriptの主要実行環境
スクリプトエディタの実行停止操作
Script Debuggerの実行停止
Automatorの実行停止
Shortcutsの実行停止
Visual Studio Codeの実行停止
スクリプトメニューの実行停止
CotEditorのスクリプトメニュー実行停止
TerminalのAppleScript実行停止
アクティビティモニタ上で実行プロセスを強制停止
Command-Option-Escで強制停止

■積極的に止めるためにループ中で停止チェック

標準的な方法では、停止できることの方が珍しい
対処方法:メインループ中に「何か」を監視して停止

■いつでも確実に停止できるようAppleScript実行環境ごと終了

いつでもすぐに確実に停める!
サンプルScript
サンプルスクリプトの書き出し方
サンプルスクリプトの実行画面

Posted in Books news PRODUCTS | Leave a comment

新発売:AppleScript基礎テクニック集(25)Script分割と統合

Posted on 10月 12, 2022 by Takaaki Naganoya

Piyomaru Software Booksの61冊目。基礎テクニック集25巻目の「Script分割と統合」を発売しました。本文32ページとなっています。7月ぐらいから書いていたので、割とこのシリーズの電子書籍では試行錯誤の期間が必要だったものです。ほぼ同時に3冊出ていますが、長期間書いて、途中で行き詰まって放り投げて、後から着手したら割とすぐに仕上がった….という感じでしょうか。

→ 販売ページ

何気ないAppleScriptを書いているだけでは直面しない問題なのですが、書いているスクリプトが「巨大」になると、いろいろ問題が出てきます。

それを避けるためには、Scriptを小分けにすること=分割することが必要です。さらによいことに、小分けにしたScriptは再利用が簡単になります。

そうして、さまざまな大きさのScriptを書いていると、途中である程度の機能の塊を取り出して動作検証する必要が出てきます。いわゆる「分解修理」(オーバーホール)という作業です。

部品単体で動作検証するのではなく、ハンドルとかエンジンとかトランスミッションといった、ある程度の機能の塊になっているものを、塊のまま取り出して、単独で動作確認できるようにしておく必要があります。

かように、Scriptの分割や結合は、割とAppleScriptの開発に欠かせない作業ノウハウなのです。

目次

■AppleScriptの分割単位と分割方法

AppleScriptの分割
AppleScriptの分割手段
Ⓐハンドラ、サブルーチン
ⒷScript Object❶
ⒷScript Object❷
ⒸAppleScriptライブラリ(物理分割)
ⒹScriptファイル分割(物理分割)

■AppleScriptの論理/物理分割の目的

AppleScriptは分割しないとリスクが高まる
目的①生産効率の向上
目的②記述/動作時の安定性の向上
目的③問題発生時に分解して動作検証しやすく
目的④異なるバージョンのアプリをサポート
分割したスクリプトは再利用性が高まる

■オーバーホール(分解修理)を前提とした、単体検証可能なAppleScriptのモジュール構成例

分解修理はよく発生します
ファイルを取り出して単独チェック
実戦レベルのScriptを例に、分解修理への備えを紹介
参考資料:書籍のデータ構造
1つの書類を処理(PDF出力→連結)するライブラリ

Posted in Books news PRODUCTS | Leave a comment

新発売:AppleScript実践的テクニック集(1)GUI Scripting

Posted on 10月 10, 2022 by Takaaki Naganoya

Piyomaru Software Booksの60冊目。GUIアプリケーションを強引に動かす「GUI Scripting」について動作原理から気をつけるべき点、実戦レベルのScriptで注意している点やサンプルなどをまとめた「AppleScript実践的テクニック集(1)GUI Scripting」を発売しました。本文283ページとなっています。

→ 販売ページ

「AppleScript実践的テクニック集」とは、従来の「基礎テクニック集」の枠組みでは収まりきらないテーマを扱う新シリーズです。基礎テクニック集は32ページ前後のコンパクトな構成にするために、いろいろ省略した部分もありましたが、この枠組みに入り切らないテーマを別枠でご紹介することにしたものです。

ページ数の上限をとくに設けず、徹底的に情報を入れる設計です。それでいて、「基礎テクニック集」ゆずりの図や表を多用した構成はそのままです。

使い所さえ間違えなければ強力な武器になるGUI Scriptingについて、動作原理からノウハウ、注意すべきポイントや実戦レベルのScriptで気をつけていること、さまざまな「ありがちな処理」のサンプルなどを紹介する1冊です。

■GUI Scripting (UI Element Scripting)とは?

AS用語辞書にすべての機能は掲載されていません①
AS用語辞書にすべての機能は掲載されていません②
AppleScript非対応機能を呼ぶGUI Scripting
GUI Scriptingとは?
GUI ScriptingはSystem Eventsごしに操作
操作対象のアプリケーション①
操作対象のアプリケーション②

■AppleScript非対応機能を操作する

KeynoteでASから利用できない機能を呼ぶ
GUIアプリケーションの挙動確認が欠かせません
メニュー項目操作の実例
実行結果のリストアップ①
実行結果のリストアップ②

■GUI Scriptingの実行を許可する

デフォルト状態だとGUI Scriptingは無効
AppleScript実行アプリケーションを登録
設定するとGUI Scriptingが有効に
スクリプトメニューも登録必須
資料:macOS上のAppleScript実行環境①
資料:macOS上のAppleScript実行環境②

■GUI部品への参照を求める方法

メニュー項目:メニューを頂点としたツリー
ウィンドウ上のオブジェクト:ウィンドウが基準
簡単なGUI部品の求め方

■GUI Scriptingでやりたい特徴的な操作

GUI Scriptingの有効チェック
属性値の取得(properties)
属性値の取得(AX-attributes)
GUI部品のクリック
指定座標のクリック
参考資料:GUI Scriptingの座標系
ポップアップメニューの項目選択
キー入力操作
項目選択
コンテクストメニューの表示
スクロール操作
ファイル保存/書き出し
自分で発生させたモーダルなダイアログのクリック
ドラッグ&ドロップ操作
日本語IMの文字入力モード取得/設定

■マウスカーソルの強制移動&強制クリック

マウスカーソルを移動させる必要性
マウスカーソルの強制移動とクリック

■実戦レベルのAppleScriptにおけるGUI Scripting解説

指定フォルダ以下のPagesなどをPDF出力して連結
実際のメインScript部分
generatePDFLibの当該箇所
本プログラムが環境の影響を受けた点
参考資料:デスクトップの表示/非表示切り替え

■Accessibility Inspectorの使い方

Xcodeに入っているGUI部品探索ツール
Accessibility Inspectorの画面構成①
Accessibility Inspectorの画面構成②
プロセス一覧から対象を選択してInspection
指定プロセスのGUI部品の追跡中の画面表示
GUI部品の追跡ポーズ中の画面表示

■OSやアプリケーションのアップデートに備える

OSアップデートごとにGUI構成は変わる
GUI Scripting処理部分だけをサブルーチンに分離
GUI Scripting処理部分をライブラリに分離
OSアップデートの影響を受けにくい構造に

■GUI Scriptingの信頼性は?

GUI Scriptingの信頼性は?
一般的な信頼性の計測方法
経験に基づく傾向と対策
GUI Scriptingで直面した問題とその解決策
指定した処理の終了前に次の処理が行われる
同じ名前のプロセスが存在していると名称衝突①
同じ名前のプロセスが存在していると名称衝突②

■GUI Scriptingサンプル集

指定のアプリケーションの全メニュータイトルを取得
選択中のテキストを取得
選択中のテキストを書き換え
Safariの最前面のウィンドウへの参照を得る
GUI部品への参照から所属するアプリケーション名を取得
Dockに登録されているアイコンの情報を取得
Keynoteで選択中のテキストを縦書きに
CotEditorで最前面のウィンドウを縦書きに

■GUI Scripting資料集

click【クリック】コマンド
key code【キーコード】コマンド
keystroke【キーストローク】コマンド
perform【パフォーム】コマンド
select【セレクト】コマンド
application【アプリケーション】クラス
action【アクション】クラス
application process【アプリケーションプロセス】クラス
attribute【アトリビュート】クラス
browser【ブラウザ】クラス
busy indicator【ビジーインディケータ】クラス
button【ボタン】クラス
checkbox【チェックボックス】クラス
color well【カラーウェル】クラス
column【カラム】クラス
combo box【コンボボックス】クラス
desk accessory process【デスクアクセサリプロセス】クラス
drawer【ドロワー】クラス
group【グループ】クラス
grow area【グローエリア】クラス
image【イメージ】クラス
incrementor【インクリメンタ】クラス
list【リスト】クラス
menu【メニュー】クラス
menu bar【メニューバー】クラス
menu bar item【メニューバーアイテム】クラス
menu button 【メニューボタン】クラス
menu item 【メニューアイテム】クラス
outline 【アウトライン】クラス
pop over 【ポップオーバー】クラス
pop up button 【ポップアップボタン】クラス
process 【プロセス】クラス
progress indicator 【プログレスインジケータ】クラス
radio button 【ラジオボタン】クラス
radio group【ラジオグループ】クラス
relevance indicator【レレベンスインジケータ】クラス
row【ロー】クラス
scroll area【スクロールエリア】クラス
scroll bar 【スクロールバー】クラス
sheet 【シート】クラス
slider【スライダ】クラス
splitter【スプリッタ】クラス
splitter group【スプリッタグループ】クラス
static text【スタティックテキスト】クラス
tab group【タブグループ】クラス
table【テーブル】クラス
text area【テキストエリア】クラス
text field【テキストフィールド】クラス
toolbar【ツールバー】クラス
UI element【ユーアイエレメント】クラス
value indicator【バリューインディケータ】クラス
window【ウインドウ】クラス

■AppleScript資料集

macOSバージョンとAppleScriptの動向
macOSとAppleScriptの要素技術史
各macOSごとのAppleScript解説
macOS内AppleScript補助ツールの歴史
System EventsのAppleScript用語辞書変更点
AppleScript 各ランタイム環境情報
AppleScript予約語一覧
AppleScriptのエラーコード
あとがき
奥付

Posted in Books GUI Scripting news PRODUCTS | Tagged 12.0savvy CotEditor Keynote System Events TextEdit | Leave a comment

新発売:iWork Scripting Book with AppleScript

Posted on 9月 30, 2022 by Takaaki Naganoya

Piyomaru Software Booksの59冊目。Keynote、Pages、Numbersの3つのアプリケーションのScriptingについて、共通する部分に着目して3つとも解説するScripting本、「iWork Scripting Book with AppleScript」を発売しました。本文239ページ、資料編198ページの合計437ページの大ボリウムです。

→ 販売ページ

目次

スクリプトエディタを起動しよう
スクリプトエディタを起動しよう!
スクリプトエディタのヘルプ
色設定を変えてみよう!
スクリプトを入力してみよう
スクリプトを保存しよう
スクリプトを実行しよう(1/3)
スクリプトを実行しよう(2/3)
スクリプトを実行しよう(3/3)
セキュリティとプライバシー
セキュリティとプライバシー>プライバシー
iWork appsを起動しよう
Keynote/Pages/Numbersを指定
Keynote/Pages/Numbersを起動
Keynote/Pages/Numbersを終了
Mail.appのAppleScript用語辞書の調べ方
メニュー項目や画面強制操作の調べ方
各iWork appsの詳細仕様について
iWork appsの情報を取得しよう
アプリケーションの名前を取得
アプリケーションの情報を一括取得
アプリケーションのプロパティ項目と内容
新規書類の作成
新規書類の作成
テーマ/テンプレート名の取得
テーマ/テンプレートを指定しつつ新規書類作成①
テーマ/テンプレートを指定しつつ新規書類作成②
参考資料:テーマ/テンプレート名
Keynote:SD/HD、他のサイズの書類の指定
新規スライド/ページ/シートの作成
各iWork appsにおける新規ページの作成
Keynote:レイアウト名の取得とスライド追加
Pages:ページ追加
Numbers:シート追加
書類情報の取得
書類からの各種情報取得
書類名(name)はFinder設定と連動
書類のパスワード保護状態を取得
書類保存
書類を保存(保存ずみ書類に上書き保存)
書類を新規保存①
書類を新規保存(A.)
書類を新規保存(B.)
書類を新規保存(C.)
コラム「iWork appsが使用するパス表現」
書類へのパスワード
設定と解除
iWork書類へのパスワード設定
パスワード設定されたiWork書類のオープン
書類へのパスワード設定と解除
通常書類とパスワード保護された書類の比較

■中級

書類上の座標系
書類上の座標系
Pages書類の座標系
現在表示中のページ
書類上の現在表示中のページ番号を取得
選択中のアイテムの取得
selectionで取得できる選択中のオブジェクト
Numbersで取得できる表オブジェクト情報
デフォルトタイトル
アイテムへの文字設定(Keynote)
デフォルトタイトルアイテムのオブジェクト
デフォルトタイトルアイテムのテキストを取得
デフォルトタイトルアイテムにテキストを設定
Pagesの本文作成
書類タイプ別のPages本文の作り方
Pagesの文章の本文(body text)の操作
Pagesの文章の本文(body text)の色指定
Pagesの文章の本文(body text)のフォント指定
Pagesの文章の本文(body text)の単語にアクセス
Pagesの文章のページにアクセス(追加)
Pagesの文章のページにアクセス(削除①)
Pagesの文章のページにアクセス(削除②)
Pagesの文章のセクションにアクセス
Pagesの文章のセクションにアクセス
選択中の表からのデータ取得/設定
選択範囲(selection range)へのアクセス
選択範囲のセルの取得
選択範囲のセルのデータの取得
指定セルのデータの取得①
指定セルのデータの取得②
指定範囲のセルのデータの取得
カラム名の数値からの変換
指定範囲のセルのデータを2次元配列で取得①
指定範囲のセルのデータを2次元配列で取得②
指定範囲のセルのデータを2次元配列で取得③
指定セルにデータを設定①
指定セルにデータを設定②
指定範囲のセルへの配列データの設定
表にクリップボード経由で大量の2次元配列データを設定
テキストボックスの作成
テキストボックスのオブジェクト
テキストボックスの作成
表の作成
表の作成
表の作成+データ設定
表のソート、
セルの結合と分離
表の昇順(A→Z)ソート
表の降順(Z→A)ソート
表セルの結合
結合セルの解除
画像(image)の挿入
指定画像の挿入
Keynote:イメージスライドの作成
shape, lineの作成
shape/lineの分類
shapeの識別
shapeの作成
放射状にラインを引く(Keynote)
放射状にラインを引く(Pages)
放射状にラインを引く(Numbers)
audio clip, movieの作成
音声トラックのaudio clipの作成
ムービー(movie)の作成
プレースホルダへのデータさしこみ(Pages)
プレースホルダとは?
Pagesのテキストプレースホルダの作成①
Pagesのテキストプレースホルダの作成②
Pagesのテキストプレースホルダを利用
Pagesのメディアプレースホルダの作成
Keynoteのテキストプレースホルダ
グループへのアクセス
Keynote:グループ内のオブジェクトにアクセス
Pages:グループ内のオブジェクトにアクセス
Numbers:グループ内のオブジェクトにアクセス
Keynote:グループ内のオブジェクトの親にアクセス
シート処理(Numbers)
Numbers:シートの新規追加
Numbers:シートの削除、表示切り替え
Numbers:シートの名称変更
Numbers:現在表示中のシートのIDを返す
Numbers:シートの名称による検索
スライドの追加と順次ループ(Keynote)
Keynote:スライドの追加
Keynote:スライドの順次ループアクセス
Keynote:スライドの順次追加
スライド間の表示切り替えエフェクト指定(Keynote)
Keynote:スライド切り替え効果一覧
Keynote:スライド切り替えを設定
発表者ノート(Keynote)を記入
Keynote:発表者ノートとは?
Keynote:発表者ノートの操作
表への計算式の代入
iWork appsで共通して利用できる関数
表のセルに計算式を代入
表のセルの計算結果(値)を取得
表のセルの計算式を取得
グラフ作成(Keynote)
Keynoteで扱えるグラフの一覧
Keynote:2D横/縦棒グラフ
Keynote:3D横/縦棒グラフ
Keynote:2D/3D面グラフ
Keynote:2D/3D円グラフ
Keynote:2D散布図グラフ
Keynote:2D積み重ね縦/横棒グラフ
Keynote:3D積み重ね縦/横棒グラフ
Keynote:2D/3D階層グラフ
Keynote:2D/3D折れ線グラフ
データの書き出し(エクスポート)
各iWork appsが書き出し可能なフォーマット
書き出し用ファイルパスの組み立て
PDF書き出し
Microsoft Office書類として書き出し
Keynote:HTML書き出し
Keynote:QuickTimeムービー書き出し
Keynote:イメージ書き出し
Keynote:Keynote 09形式書き出し
Pages:EPUB形式書き出し
Pages:テキスト書き出し
Pages:Pages 09形式書き出し
Pages:リッチテキストフォーマットで書き出し
Numbers:Numbers 09形式で書き出し
Numbers:CSV形式で書き出し
印刷
iWork appsから印刷出力
AppleScriptによるプリントアウト
Keynote:印刷オプションの指定
Pages:印刷オプションの指定
Numbers:印刷オプションの指定

■上級

書式付きテキストへのアクセス
Keynoteでobject textの書式属性設定
Pagesでobject textの書式属性設定
Numbersでobject textの書式属性設定
Keynoteでobject textの文字色、フォント置換
Pagesでobject textの文字色、フォント置換
Numbersでobject textの文字色、フォント置換
書式付きテキストの幅に応じたtext item自体のリサイズ
Text itemの枠の幅を文字内容でリサイズ①
Text itemの枠の幅を文字内容でリサイズ②
Text itemの枠の幅を文字内容でリサイズ①
Text itemの枠の幅を文字内容でリサイズ②
Text itemの枠の幅を文字内容でリサイズ①
Text itemの枠の幅を文字内容でリサイズ②
text item内のテキストの使用言語の自動推定
Keynote:書類中のtext itemの使用言語を推定①
Keynote:書類中のtext itemの使用言語を推定②
Pages:書類中のtext itemの使用言語を推定①
Pages:書類中のtext itemの使用言語を推定②
Numbers:書類中のtext itemの使用言語を推定①
Numbers:書類中のtext itemの使用言語を推定②
指定行列ヘッダによる表セルへのアクセス
Keynote:指定行列ヘッダによる表セルへのアクセス
Keynote:指定行列ヘッダによる表セルへのアクセス
Pages:指定行列ヘッダによる表セルへのアクセス
Pages:指定行列ヘッダによる表セルへのアクセス
Numbers:指定行列ヘッダによる表セルへのアクセス
Numbers:指定行列ヘッダによる表セルへのアクセス
汎用オブジェクト(iWork item)によるアクセス
汎用クラスiWork itemで取得できるオブジェクト
Keynote:iWork itemでアクセス
Pages:iWork itemでアクセス
Numbers:iWork itemでアクセス
オブジェクトの重なり検出(Keynote)
Keynote:テキストとshapeの重なり検出①
Keynote:テキストとshapeの重なり検出②
書類内部データへのアクセス
iWork app書類の構造
通常書類とパスワード保護された書類の比較
Keynote固有のプレゼン系操作について
Keynote:プレゼン再生コントロール
Keynote書類のプレゼン関連情報
Keynote:プレゼン再生関連の属性値
Keynote:transitionサンプル書類作成&再生

Posted in Books news | Tagged 12.0savvy Keynote Numbers Pages | Leave a comment

新発売:AppleScriptからSiriを呼び出そう!

Posted on 8月 31, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScriptからSiriを呼び出そう!」です。PDF 42ページ。サンプルScriptおよびSiriを呼び出すAppleScriptライブラリ「AgentCallerLib」を添付。

# 内容および添付の「AgentCallerLib」をv1.1にアップデートしました。
# 「AgentCallerLib」をmacOS 13対応のv1.2にアップデートしました
# macOS 14, 15での「AgentCallerLib」v1.2の動作を確認しました。
# macOS 15.4betaでは、Siri=Apple Inteligenceを呼び出せています

→ 販売ページ

本書は、iOS生まれの音声エージェント「Siri」をAppleScriptから呼び出すために必要な情報をまとめたものです。

SiriはiOSからmacOSに移植され、MacBookやiMac、Mac miniやMac Proなどでも利用できるようになりました。

職場や学校などで音声で呼び出すことははばかられますが、キーボードから呼び出す分には、周りに人がいても利用しやすくなりました。

今回、本書をまとめるにあたってAppleScriptからSiriを呼び出すためのライブラリ「AgentCallLib」を整備し、めんどうな設定についても画面キャプチャをまじえて、わかりやすくまとめてみました。

本書では、AppleScriptにくわしくない人でも最低限の操作ができるように、AppleScript書類の保存や実行について、基礎的な情報を重点的におさえています。

AppleScriptはApple Silicon Macでも、Intel Macでも動きますので、どちらの環境でも本書の内容はご利用いただけます。「AppleScriptにとりあえずさわってみる」テーマとしても、Siriのコントロールはわかりやすくてよいものでしょう。

目次

■Siriを呼び出すAgentCallLibのインストール

AppleScriptからSiriを呼び出す意義
最初に、システム環境設定の2つの設定を
AppleScriptからSiriを呼び出すための部品
AgentCallLibインストール先フォルダ
どのプログラムからSiriを呼び出すか?
資料:利用可能なAppleScript実行環境
資料:利用できないAppleScript実行環境
利用可能な開発環境
利用可能なアプレット,ドロップレット
利用可能なメニュー形式Scriptランチャー
その他の利用可能なScriptランチャー
利用可能なアプリケーション内蔵Scriptメニュー

■Siriを呼び出すAppleScriptの書き方

セキュリティ&プライバシー設定
Siriを呼び出すAppleScriptの書き方①
Siriを呼び出すAppleScriptの書き方②
Siriを呼び出すAppleScriptの構文確認
Siriを呼び出すAppleScriptの実行
Siriを呼び出すAppleScriptの保存
AppleScriptに指定するSiriコマンドのサンプル

■他の言語のSiriをAppleScriptから呼び出そう

他の言語のSiriも呼び出せます
Siriの対応言語一覧
英語(English)のSiriを呼び出す
フランス語(French)のSiriを呼び出す
ドイツ語(Germany)のSiriを呼び出す
スペイン語(Spanish)のSiriを呼び出す
中国語(北京語)のSiriを呼び出す

■Siriで呼び出せるコマンドや機能について

Siriが受け付けるコマンドの方向性
HomeKit対応デバイスを操作

Posted in Books news PRODUCTS | Tagged 12.0savvy | 3 Comments

新発売:AppleScript基礎テクニック集(24)フォント指定

Posted on 8月 7, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScript基礎テクニック集」の第24巻、「フォント指定」です。PDF 34ページ。サンプルScriptのZipアーカイブを添付。

→ 販売ページ

macOS上でフォントは「PostScript Name」、「正式名称(Display Name)」で管理されており、どちらの指定も受け付けるアプリケーションもあれば、PostScript Nameだけを要求するアプリケーションもあるなどさまざまです。CocoaのAPIではPostScript Nameが利用されています。

また、フォント名を「ファミリー」と「スタイル」に分けて指定できるようにもなっており、個別に指定できるアプリケーションもありますが(Adobe InDesignなど)、これはごく一部です。

結局、アプリケーションごとに対応はまちまちですが、指定できることにはかわりありません。こうしたフォント指定について、フォント管理アプリケーションFont Bookを通じてさまざまなフォントの属性情報を取得する方法についてご紹介します。

目次

■AppleScriptにおけるフォント情報管理

フォント情報は「Font Book.app」で調べる
フォントを階層構造とコレクションで管理
これが、フォントの識別情報
AppleScriptに対応しているFont Book.app
Font Book上の選択中のフォントを取得
標準搭載、メニューからScriptを実行する機能

■Keynote/Pages/Numbersでフォント情報を指定

Keynote書類上のテキストアイテムのフォント指定
iWork apps全般では正式名称でもPS名でも可
Pagesでも正式名称/PostScript名でOK
Numbersでも正式名称/PostScript名でOK

■書式付きテキストをAppleScriptから生成

TextEditには特殊なオブジェクトで書式アクセス

■Font Book.app関連AppleScriptサンプル

FontBook.app自体のプロパティを取得
フォントライブラリ情報を取得
フォントコレクション情報を取得
フォントコンテナ情報を取得
選択中のアイテムを取得
フォントにアクセス①
フォントにアクセス②
フォントを削除

Posted in Books Font news PRODUCTS | Tagged 10.15savvy 11.0savvy 12.0savvy | Leave a comment

Post navigation

  • Older posts
  • Newer posts

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • CotEditorで2つの書類の行単位での差分検出
  • macOS 13.6.5 AS系のバグ、一切直らず
  • macOS 15, Sequoia
  • 初心者がつまづきやすい「log」コマンド
  • 指定のWordファイルをPDFに書き出す
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • Adobe AcrobatをAppleScriptから操作してPDF圧縮
  • メキシカンハットの描画
  • 与えられた文字列の1D Listのすべての順列組み合わせパターン文字列を返す v3(ベンチマーク用)
  • 2023年に書いた価値あるAppleScript
  • Numbersで選択範囲のセルの前後の空白を削除
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • Cocoa Scripting Course 続刊計画
  • AppleScriptによる並列処理
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • NaturalLanguage.frameworkでNLEmbeddingの処理が可能な言語をチェック
  • Keynote/Pagesで選択中の表カラムの幅を均等割

Tags

10.11savvy (1102) 10.12savvy (1243) 10.13savvy (1392) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (188) 14.0savvy (139) 15.0savvy (117) CotEditor (65) Finder (51) iTunes (19) Keynote (115) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (75) Pages (54) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC