Skimで現在表示中のPDFの現在のページ番号を、Numbers書類で選択中のセルに入れて、Numbersの選択中のセルを1つ下に移動させるAppleScriptです。
作業をちょっとだけ楽にするために作成したAppleScriptです。本来は、すべてのワークフローを自動化するのが筋ですが、限られた時間で限られた範囲の作業のみを自動化するだけでも十分な効果が得られる場合があります。
複数のアプリケーションをまたいでデータのコピー&ペーストを行うようなケースだと、ちょっとした複合作業を自動化することで作業が圧倒的に楽になります。
PDFビューワー「Skim」上でPDFを表示、Numbers上の表にページ数のデータを入れたい。
本AppleScriptを実行すると、
Numbersの選択セルにデータを突っ込んで、選択セルを1つ下に移動させます。
こうして、PDFにTOCをつけてみました(Blogアーカイブ書籍のマイナーバージョンアップ版のため。再ダウンロードでアップデート可能になります)。元データがあるんだから、TOCごと自動で作ってもいいようなものですが、久しぶりだったので(TOC用データを)手で作ってみました。
ここで、意地でもGUI Scriptingを使わないで処理すると、バックグラウンドでも安全に処理できるので大きなメリットがあります。GUI Scriptingだと最前面(フォアグラウンド)でしか操作が保証されていないので、バックグラウンドで操作できたとしてもそれは「ラッキー」でしかありません。
AppleScript名:Skimで表示中のページ数を現在のNumbersのセルに入れて、選択セルを下にひとつ移動 |
— Created 2018-08-18 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" tell application "Skim" tell front document set curPage to index of current page end tell end tell set curPageStr to curPage as string tell application "Numbers" tell front document tell active sheet tell table 1 set mySelectedRanges to properties of selection range set value of cells of selection range to {curPageStr} set selName to name of selection range –選択範囲のrange情報を取得 set {s1, s2} to parseByDelim(selName, ":") of me set s1Row to (address of row of range s1) as integer set colStr to (name of column of range s1) as string set rowStr to (s1Row + 1) as string set adrStr to colStr & rowStr set rangeStr to adrStr & ":" & adrStr try set selection range to range rangeStr on error –Range Over Error from table 1 display dialog "表の範囲をオーバーします" return end try end tell end tell end tell end tell –テキストを指定デリミタでリスト化 on parseByDelim(aData, aDelim) set aText to current application’s NSString’s stringWithString:aData set aList to aText’s componentsSeparatedByString:aDelim return aList as list end parseByDelim |
More from my site
(Visited 178 times, 2 visits today)