知り合いの本Blog愛読者の方々から「アーカイブ本まだ?」と言っていただいて幾星霜。ちょっと手が空いてしまったので、Blogアーカイブ本に着手しました。ここに、Blogアーカイブ本のVol.4(2011〜2012年)の発売をお知らせいたします。
本Blog「AppleScriptの穴」は、開設10年目を迎える直前の2018年1月末に、格安ホスティングサービス「Xserver」との間の手違いでDBがシャットダウンされ、そのままの形で公開し続けることができなくなってしまいました。
そこで、AppleScriptのプログラムによるFinder上のAppleScriptの自動HTML化、AppleScriptによるXML-RPC経由でのWordPressへの自動記事投入といったさまざまなソリューションを投下して、現在の登録記事数に復旧。自動記事投入による復旧を行なったために、当時の作業環境でオープンできない(OSバージョン依存、アプリケーション依存)Scriptについては掲載を見送っています。
旧AppleScriptの穴:2008〜2018年 Mac OS X 10.4〜10.5の時代に開設
現AppleScriptの穴:2018年〜 Cocoa APIを呼びまくる現在のスタイルが定着
自動投入可能なコンテンツを優先して掲載したため、旧Blogと現Blogでは掲載内容が大幅に変わっています。別物といってよいでしょう。
そのため、Cocoa APIを使用しない「オールドスタイルのAppleScript」については再掲載が難しく、このBlogアーカイブ本シリーズにしか情報をまとめていません。
旧Blogアーカイブ本シリーズも、1年ごとに区切って記事をPDF化して4冊目。この頃の記事投稿数が少なかったので、Vol.4は2011年1〜2012年12月の2年分の内容をまとめています。全450ページ、2,000円。ファイル形式はPDFで、キーワードによる全文検索や印刷が行えます。
また、OS X 10.8のAppleScriptに巨大なバグが存在しているため、巻頭にてその内容や回避策についての解説を行なっています。
もちろん、各プログラムリスト末尾にURLリンクをそなえ、ワンクリックでプログラム内容をスクリプトエディタに転送可能です。
ほとんどの掲載プログラムについてコメントを行い、現時点(2019年時点)で評価してどうか、ということを追記しています。
AppleScriptの穴Blogアーカイブvol.4
リスト同士のdiffをとる
日本の月呼称を返す
指定の月を1月分リスト化
指定日がその月の中で何週目かを求める
指定日がその月の中で何週目かを求めて、週リストを取得する
与えられたリストに、値がヌルの要素が入っているか判定し、フラグ、ブランク開始終了位置を返す v2
iCalで選択中のイベントのカレンダー情報を取得する
画面の解像度を取得するv3
画面の解像度を取得するv4
シェルソートでリストをソート
Numbersでtableの縦サイズをふやす
リストで与えられたデータの変動ベクトル方向を取得する
Photoshopでオープンしている画像から、選択部分のサイズをもとに画像分割を行う
フォルダ内の画像ファイルを順次Numbersのセルに貼り付ける
2行に別れているデータを1行分にまとめる
指定年のすべての日付をdateオブジェクトで取得する
指定のテキストをAppleScriptとしてコンパイルし、実行可能なアプレットとして出力する
サウンド入力元、出力先の名称をリストで取得する
サウンド入力元、出力先を設定する
サウンド入出力の選択中の項目名を取得
InDesign CS3でBookを作成するテスト
Mail.appでメールの送信(プレーンテキストへの変換つき)
分布リスト作成 v1
入れ子のリストをタブ区切りのテキストに
コードのチェック
数値リストを連続部分に分解する(アイテム番号を返す)
数値リストを連続部分に分解する(データを返す)
AppleScriptによる並列処理 v2
AppleScriptによる並列処理 v2〜実際に使ってみての評価
スリープ復帰日時を設定する
ファイルのファイル名を求める
AppleScriptによる並列処理v3a
QuickTimeムービーの縦横ドット数を取得する
iTunes 10.3β AppleScript用語辞書に変更なし
リスト中の値が連続する箇所をアイテム番号のリストで返す
FileMaker Proで書き出したTab区切りテキストファイルをExcelで読み込む
リスト中の値が連続する箇所をアイテム番号のリストで返す v2
Keynoteの各slideのtitleで、同じものが続く箇所に連番を振り直す
指定のデジカメ画像のExif情報から指定のプロパティを取得する
SIGMA Raw画像からメーカーと機種名を取り出す v2
子番号を考慮しつつ、新しいファイル名を返す
文字列末尾からスペースを削る
指定アイテム以降は指定アイテム目に改行で区切って連結する
指定矩形内に含まれるデータをアイテム番号で返す
数字の文字が入っているかどうかをテストする
文字列の先頭と末尾に指定文字が存在した場合にはトリミングして返す
Photoshopで指定座標のカラー値をRGB値で返す
Safari 5.1でWeb検索
OS X 10.7, Lionへの移行について
リスト同士の引き算、足し算
印刷可能なプリンタ一覧から選択してプリント実行 10.4〜10.7
1〜指定数までの乱数を返す、ただし別途指定の数(aException)を除く
指定フォルダ内のPDFの1ページ目のみ取り出して別フォルダに保存 v2
TextWranglerで連続置換を指定フォルダ内のhtmlファイルに対してすべて実行
Mail.appで添付ファイルを指定してメール送信
文字列中に指定文字が何個入っているかカウントする v2
Safari 5.1.1、iPhoto 9.2が登場。AppleScript用語辞書に変更なし
指定アプリの指定タグの文字列をアプリ内のLocalizableStringsから取得する
指定アプリの指定タグの文字列をアプリ内のLocalizableStringsから取得する v3
投稿も受け付けています
Excel 2011で表示中のワークブック内のすべてのシートの表示状態を変更する v2
XcodeのAppleScript用語辞書の変遷
Xcode 4.2.1、iTunes 10.5.1登場。AS用語辞書に変更なし
OmniGraffleで指定書類からURLつきの画像の情報を集める
OmniGraffleで指定文字を名前に含むドキュメントをオープンしているかチェック
指定名称のOmniGraffle書類中に、urlListで示した名称のCanvasが存在するかを取得する
指定名称のOmniGraffle書類中に、urlListで示した名称のCanvasが存在するかを取得する v2
与えられたリスト中のfalseの項目番号をリストで返す
OmniGraffleで指定ドキュメントのWindowを求める v2
OmniGraffleで表示中のCanvasを切り替えてループし、各Canvasの表示倍率を取得する
OmniGraffleで表示中のCanvasを切り替えてループし、各Canvasの表示倍率を設定する
OmniGraffleでcanvas名一覧を取得する
OmniGraffleで画面設計図のCanvas名称をクリーニングする
OmniGraffleで指定名称の書類の現在表示中のCanvas上から、URLつきの画像(Solid)の情報を集める
OmniGraffleで選択中のグラフィックのサイズを50%にする
Safari 5.1.2、AppleScript用語辞書に変更なし
OmniGraffleで各ページに用意したtitleから、目次を作成する
リストから指定のアイテムを削除する(1項目)
Canvasの大きさを取得(Pointで返る)
リンクつき目次を作成する v1
現在表示中のCanvasに存在しているラインのうち青いものに影を付ける
通常版のOmniGraffleでProfessional版でしか作れない「表」を作る
最前面のドキュメントの全Canvas上のグラフィックがそれぞれグループ化されていないかチェック。されていなければグループ化
Numbersで選択中のデータをもとにOmniGraffleの選択中のグラフィックのサイズで表作成
「A x B = C」の数の組み合わせを求める
「YxX」の形式の文字列を、{Y,X}のように数字のリストにして返す
miで選択中の内容をファイルに書き出してperlのプログラムとしてterminalで実行
与えられたテキストをPhotoshopでRGBデータと評価してCMYK値を返す
ファイル選択ダイアログを表示して、パスを取得する(Perl中へのAppleScript埋め込み)
AppleScriptObjCのメモリー浪費現象を解決?!
近似式によるRGB→CMYK/CMYK→RGB変換
PhotoshopでRGB→CMYK、CMYK→RGB変換
Excel 2011で現在オープン中の書類の選択中のシートをCSV書き出し
Mac App Store公開アプリのSandbox対応義務化 期限が6/1に延期
Excel 2011ですべてのタブのデータを取得して1つにまとめる v3
自然言語による相対日付指定v13
AppleScriptで正規表現(regexp)を
tellブロックの書き方いろいろ
Excel 2011で現在表示中のウィンドウのすべてのタブのズーム倍率を変更する
curlでダウンロードv2
100倍速いシェルソートでリストをソート
Excelの表中のデータを拾ってセルに色を付ける
InDesign CS3で指定のオプジェクトを、JPEG書き出ししてiPhoneへ
NSTextViewからのテキストデータ取得、テキスト設定サンプル
インストールされているアプリのAS辞書を書き出すv2
AppleScriptレコードのラベルのリストを作成
iPhoto, iTunes, Safariアップデートについて
QuickTime 7で録画して任意のファイル名で保存
Microsoft Office v2011 14.2.1アップデートで辞書に変更なし
ASObjC Runner〜ASOCの機能にAppleScript的な記法を
指定文字列から、指定ペア文字で囲まれる部分を削除。前方からスキャンして削除実行
offset ofの高速実行
指定ハードウェアポートのデバイス名を取得する v1.1
無線LANの電源のONOFF
無線LANネットワークを指定して接続する
簡易マクロ展開つきのコードチェック v1
日本語数値表現エンコードされた数値のparseテスト v2
EPSファイルの破損チェック(高速版)
インターネットのサービスを利用して日本国内の天気予報を取得する
WWDC2012のビデオが公開に
任意の桁数の2進数文字列を10進数に戻す
16進数文字列を10進数数値に変換する
HTMLコードのRGB 16進数コードを数値リストに変換
Numbersで指定範囲を高速に埋める
TidBitsがMountain Lion上のAppleScriptのルール変更について解説
iPhoneアプリをAppleScriptからコントロール
指定フォルダ内のPDFの空白ページ以外を個別に取り出して別フォルダに保存 v3
通知センター経由でTwitter投稿(10.8用)v2
Mail 4.0->6.0の移行でAppleScript関連機能の変更が発生
Skimでオープン中のPDFの現在のページの内容をOmniGraffleにペースト
OS X v10.8.2 追加アップデート 1.0がMail.appのAppleScript系のバグを修正
FTPソフトウェア「Transmit」の基礎的なスクリプティング(1)
Safari 6で指定のURLをオープンする
Transmitで指定のファイルを指定のお気に入りサーバーにアップロード
PhotoshopでJavaScript経由でEPS/PDFをオープン
指定フォルダが共有されているかチェック