見出し画像

AppleScriptを使ったNumbersのセルの読み取りについて

AppleScriptを使ってNubersの表の値にアクセスする


前提

  • MacBook Air M1

  • Numbers

  • AppleScript

  • Numbersの表を用意してあること

※なお、AppleScriptに関してはまったく理解がないこと、
Numbersを操作する正確なドキュメントを見つけることが出来なかったため
ChatGPT3.5や他のblogを参考に試行錯誤しながら構築した

AppleScriptはスクリプトエディタで記述する

なぜ、AppleScriptを使うのか?

WindowsのExcelとVBAで処理することは出来るかもしれないが、残念ながらOfficeは持っていない。Macは標準でPages,Numbers,KeyNoteと付いてくるので、ExcelみたいなNumbersで処理しようとしたのが始まり
普通にofficeを購入してもWindowsの方が安いという話はあるかもしれないが、あるもので処理を考える

実装

tell application "Numbers"
	tell front document
		tell sheet "シートの名前"
			tell table "表の名前"
				-- 2列目の各行の値を読み取るループ
				repeat with rowNumber from 2 to count of rows
					set cellValue to value of cell rowNumber in column "B"
				end repeat
			end tell
		end tell
	end tell
end tell

コードの感想

NumbersもExcelと似ているのかドキュメント、シート、テーブルで構成されている。従って、Numbersのどのファイル名のシート名のテーブル名を指定することでセルにアクセスできるようだ

このコードを実行すると2列目の各行を読み取る操作となる(B2のセル、B3のセル、B4のセル、・・・)ちなみに、なぜ、2行目からかといえば、1行目はヘッダとして使用しているからだ

また、ChatGPT3.5に質問を繰り返したのだが、情報が古いのか使えないメソッドやプロパティを提示してくるので、ChatGPT3.5の発言と矛盾に苦しんだ戦いだった。正直、Numbersの操作に関するオフィシャルなドキュメントを見つけられていないので、どうして構文がかけるのか不思議でしかないので、情報を知っている方がいたら教えてほしい

site:developer.apple.com numbers apple script

これも昔、教えてもらったのだが、日本語での解説がないときにはオフィシャルなサイトの言語(翻訳前)で調べるとよいとのこと。しかし、自分の検索の仕方が悪いのかdisscussionが出てきている状況である

site:ドメインで、そのドメインだけで検索できるので、積極的に使用する

参考にしたブログ

何行目の何列目のセルを指定する方法を調べるのに使用した

おわり!