AppleScriptで複数のExcelファイルをNumbersで開く

いくつかのシートの表を、一つに統合して情報をソートして確認・管理したいのですが、手作業でコピー&ペーストするには数がファイル数が多いため、自動化できる方法論をいくつか模索しております。

私のスクリプトの理解度は、エクセルも見積書を作る程度で、これを機にただいま勉強しています。

素人考えで恐れ入りますが、applescriptでは、ソフト自体の動きをコントロールできる可能性を感じたのですが、組み立て方の理解が追いつかず、可否も含めてご意見・アドバイスを伺わせていただけたらと思いまして投稿させていただきました。


理想的な実行例は、下記になります。

作業に使用するナンバーズのファイルです。


・「統合」というファイル

・「素材1」というファイル(中にはシート AとシートBの2枚があります)

・「素材2」というファイル(中にはシート AとシートBの2枚があります)

・「素材3」というファイル(中にはシート AとシートBの2枚があります)

実際には、「素材1」「素材2」「素材3」...と、実作業には10種類くらいの素材ファイルを扱います。

どの表の列数は固定ですが、行数は変動します。


□理想的なフロー

上記のデータを使用して、「統合」ファイルに、それぞれの「素材」ファイルにある「シートB」の表を張り込んで一覧にしたいと思っています。

それぞれの「素材」の表は、それぞれ一日で朝、昼、夕と更新されますので、applescriptを実行して日に3回、統合する作業を行えたらと思っています。

applescriptを使用して、複数のエクセルファイルをナンバーズで開こうと思うのですが、安定した結果が得られず困っておりまして、投稿させていただきました。

ファイルを開くこと自体はできるのですが、きちんと読み込みのタスクバーが出てエクセル同様の表が表示される場合と、

一瞬で開くものの、表もなく白紙の状態で表示されてしまう場合があります。ほとんどの場合、白紙の状態です。

下記の内容で間違っている箇所がありましたら、ご指摘いただけると幸いです。よろしくお願いいたします。

tell application "Numbers"
open "/Users/username/Desktop/サンプル1.xlsx"
open "/Users/username/Desktop/サンプル2.xlsx"
open "/Users/username/Desktop/サンプル3.xlsx"
end tell


まったく的外れなことでしたら、申し訳ありません。可能な範囲で簡略化した運用を目指せたらと考えております。

知見、ご意見、お聞かせいただけると大変助かります。何卒よろしくお願い申し上げます。

* 重複投稿を削除いたしました。 Apple Inc.

投稿日 2021/11/04 04:06

返信
返信: 3

2021/11/04 21:49 muu への返信

コードに誤りはないと思います。多分...。


ご参考

AppleScript and Numbers: Opening Documents

https://iworkautomation.com/numbers/document-open.html


AppleScript でファイルのパスを扱う際は、alias 値の方が間違えが起きにくい印象があります。こんな感じにしてみて、それでもダメな場合は Numbers のバグの可能性も考えられます。


tell application "Numbers"
    open "/Users/username/Desktop/サンプル1.xlsx" as POSIX file as alias
    open "/Users/username/Desktop/サンプル2.xlsx" as POSIX file as alias
    open "/Users/username/Desktop/サンプル3.xlsx" as POSIX file as alias
end tell


あとは、do shell script を使うとか。


on run
    my func("/Users/username/Desktop/サンプル1.xlsx" as POSIX file as alias)
    my func("/Users/username/Desktop/サンプル2.xlsx" as POSIX file as alias)
    my func("/Users/username/Desktop/サンプル3.xlsx" as POSIX file as alias)
end run

on func(fpath)
    do shell script "zsh -s <<'EOF' - " & fpath's POSIX Path's quoted form & "
open -a Numbers \"$1\"
EOF"
end func


# Numbers を使ったことがなく上記は実際に試してないため外してたらごめんなさい。


2021/11/06 19:41 Hiro__S への返信

具体例までお教えいただきまして、ありがとうございます!

Numbersにてしっかりと白紙になることなく、開くことができました。

as POSIX file as alias

をつける事で、ファイルパスをしっかり取得してくれたというイメージでしょうか。

今後もファイルの取得に関わる部分では、こちらの記述を参照させていただきます。

とても勉強になりました。ありがとうございました!

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

AppleScriptで複数のExcelファイルをNumbersで開く

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。