Numbersのワークシート上で選択したセル中の文字に&エンコーディング文字が存在している場合に、その内容をプレーンテキスト化するAppleScriptです。
内容自体はよくあるものなので、説明が必要なものでもありません。Stream DeckにNumbers関連のScriptをいくつか用意して試していますが、なかなか便利です(かといって、Stream Deckの購入を決意するほどではないのですが)。ただ、実際にデータ整理が少ない手間で行えました。
Stream Deck Softwareの「システム」>「開く」のアクションにscpt形式のAppleScript書類を登録しておけば実行してくれるため、そのような利用方法を想定しています。
Numbers関連のさまざまな雑多な作業をAppleScriptで省力化し、それをStream Deckから呼び出すことで作業の負荷を減らせることを実感しています。それでもStream Deckの物理的な厚みがあるので何度もパチパチ叩いていると疲れやすいような気もします。
AppleScript名:選択セルの内容の&エンコーディング文字をプレーン化.scpt |
— – Created by: Takaaki Naganoya – Created on: 2020/12/06 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions decodeSelection() of me –Numbersの選択範囲のデータを2D Listで返す on decodeSelection() tell application "Numbers" tell front document –現在表示中のシートを対象にする tell active sheet –Tableを特定する try set theTable to first table whose class of selection range is range on error display notification "Numbers: There is no selection" return {} end try tell theTable –選択範囲のデータを1D Listで取得する set aRes to value of cells of selection range –選択範囲のセルのアドレスデータを1D Listで取得する set cellList to cell of selection range end tell –Percent Decode set newList to {} repeat with i in aRes set j to contents of i set aRes to decodeCharacterReference(j as string) of me set the end of newList to aRes end repeat –Write Back to Numbers repeat with i from 1 to (length of cellList) tell item i of cellList set value to item i of newList end tell end repeat end tell end tell end tell end decodeSelection on parseByDelim(aData, aDelim) set curDelim to AppleScript’s text item delimiters set AppleScript’s text item delimiters to aDelim set dList to text items of aData set AppleScript’s text item delimiters to curDelim return dList end parseByDelim on decodeCharacterReference(aStr) set anNSString to current application’s NSString’s stringWithString:aStr set theData to anNSString’s dataUsingEncoding:(current application’s NSUTF16StringEncoding) set styledString to current application’s NSAttributedString’s alloc()’s initWithHTML:theData documentAttributes:(missing value) set plainText to (styledString’s |string|()) as string return plainText end decodeCharacterReference |
More from my site
(Visited 104 times, 1 visits today)