Pagesの最前面の書類で選択中の表オブジェクトの2列目以降を均等に自動調整するAppleScriptです。
1列目の列幅は変更しません。表全体を選択するのではなく、どこかのセルを選択しておく必要があります。
▲処理前 カラム幅が不均一。表の1つあるいは複数のセルを選択して処理対象を指定
AppleScript名:Pagesで選択中の表のカラム幅を自動調整 |
— Created 2021-12-18 by Takaaki Naganoya — 2021 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" –現在選択中の表オブジェクトを取得 set curTable to returnSelectedTableOnCurrentSlide() of me if curTable = false then return –現在選択中の表オブジェクト中の選択範囲中のセルをすべて取得(1D List) using terms from application "Pages" tell curTable set cellList to every cell of selection range end tell end using terms from –2列目から末尾までの列幅を均等に変更する using terms from application "Pages" tell curTable set cCount to count every column set cWidth to width of every column –表の幅を取得したら、0が返ってきたので、各カラム幅を合計した set aWidth to calcSumFrom1DList(cWidth) of me set aveWidth to (aWidth – (first item of cWidth)) / (cCount – 1) –いったん幅を少なくしておく(予備動作) –途中で幅がページ幅をオーバーすると最終的な表の幅がおかしくなるので、この処理がないとおかしくなる repeat with i from 2 to cCount set width of column i to 10 end repeat –カラム幅を変更する repeat with i from 2 to cCount set width of column i to aveWidth end repeat end tell end using terms from –1D List中の数値を合計して返す on calcSumFrom1DList(aList) set anArray to current application’s NSArray’s arrayWithArray:aList return (anArray’s valueForKeyPath:"@sum.self")’s intValue() end calcSumFrom1DList –現在のスライド上で選択中の表オブジェクトへの参照を取得する on returnSelectedTableOnCurrentSlide() tell application "Pages" tell front document try return (first table whose class of selection range is range) on error return false –何も選択されてなかった場合 end try end tell end tell end returnSelectedTableOnCurrentSlide |
More from my site
(Visited 123 times, 1 visits today)