Keynote v9.1+macOS 10.14.6上でAppleScriptのプログラムを組んでいたら「行数が正しくない」といったエラーになるので、徹底的に調べてみました。
Keynote v9.2でも修正されていないことを確認しました。
Keynote v9.2.1でも修正されていないことを確認しました。
▲5行の表を作ろうとするとエラー。4行でも6行でも大丈夫なのに5行の表を作るとエラー
tell application "Keynote"
tell front document
tell current slide
set aTable to make new table with properties {header column count:0, header row count:0, row count:5, column count:3}
end tell
end tell
end tell
★Click Here to Open This Script
すると、なんと「特定のセルサイズ(行数、列数)の表を作成させた場合にのみエラーになる」ことが判明。
make new table with propertiesコマンドで行/列を指定して作成するとエラーになる組み合わせは以下のとおり。
{{xNum:2, yNum:5}, {xNum:3, yNum:5}, {xNum:4, yNum:2}, {xNum:4, yNum:3}, {xNum:4, yNum:4}, {xNum:4, yNum:5}, {xNum:4, yNum:6}, {xNum:4, yNum:7}, {xNum:4, yNum:8}, {xNum:4, yNum:9}, {xNum:4, yNum:10}, {xNum:4, yNum:11}, {xNum:4, yNum:12}, {xNum:4, yNum:13}, {xNum:4, yNum:14}, {xNum:4, yNum:15}, {xNum:4, yNum:16}, {xNum:4, yNum:17}, {xNum:4, yNum:18}, {xNum:4, yNum:19}, {xNum:4, yNum:20}, {xNum:4, yNum:21}, {xNum:4, yNum:22}, {xNum:4, yNum:23}, {xNum:4, yNum:24}, {xNum:4, yNum:25}, {xNum:4, yNum:26}, {xNum:4, yNum:27}, {xNum:4, yNum:28}, {xNum:4, yNum:29}, {xNum:4, yNum:30}, {xNum:5, yNum:5}, {xNum:6, yNum:5}, {xNum:7, yNum:5}, {xNum:8, yNum:5}, {xNum:9, yNum:5}, {xNum:10, yNum:5}}
さらに、上記サイズでエラー発生時に追試を行い、安全なサイズの表(3×3)を作成したあとにリサイズを行ってもエラーになるのが、
{xNum:3, yNum:5}, {xNum:4, yNum:3}
の組み合わせであるようです。なんでやねーん、と関西人でもないのにツッコンでしまいました。いやー、作ろうとしないとできないバグなんでは?
特定サイズの表をAppleScript側から作らせないようにしているのでしょうか? とても不思議なパターンのバグです。思わず「わざとなのか?」と思ってしまったほどです。何かのイースターエッグなんでしょうか、とても不愉快なイースターエッグですが。
Core i5のマシンでも追試を行ってみて、同様にエラーが再現することを確認しました。Xeonでのみ発生するエラーということではないようです(それはそれでちょっと見てみたい)。
追試で、Keynote v8.1+macOS 10.12.6上で同じことをやってみたら、とくにエラーにはなりませんでした。
AppleScript名:keynoteTableTest.scptd |
— – Created by: Takaaki Naganoya – Created on: 2019/08/09 — – Copyright © 2019 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later, use framework "Foundation" use scripting additions set erList1 to {} set erList2 to {} tell application "Keynote" make new document end tell repeat with x from 2 to 10 repeat with y from 2 to 30 tell application "Keynote" tell front document tell current slide delete every table set errorF to false –First trial (make new table command) try set aTable to make new table with properties {header column count:0, header row count:0, row count:y, column count:x} on error set errorF to true set the end of erList1 to {xNum:x, yNum:y} end try if errorF = true then –Second trial (Make safe size table and change its size after generation) delete every table set aTable to make new table with properties {header column count:0, header row count:0, row count:3, column count:3} try set column count of aTable to y set row count of aTable to x on error set the end of erList2 to {xNum:x, yNum:y} end try end if end tell end tell end tell end repeat end repeat return {erList1, erList2} |
iWork Appsがアップデート、表の新規作成時バグは未修正 – AppleScriptの穴 says:
[…] KeynoteとNumbersで表の新規作成時に特定のセル数でエラーになる(ほとんどのケースでエラーになる)バグが修正されていないことを確認しました。Pagesは未確認です。 […]
iWork Apps Update v10.0 – AppleScriptの穴 says:
[…] Keynoteバグ1:表(table)作成時に行数によってはエラーになる […]
Pages v12に謎のバグ。書類上に11枚しか画像を配置できない – AppleScriptの穴 says:
[…] 以前にも、Keynoteに「特定サイズ以上の表を作るとエラーになる」とかいったバグが発生していましたが、この12個目を配置するとエラーになるというのも、内部で何か不可思議なリミッ […]