質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

2回答

2641閲覧

Mac VBAのAppleScriptTaskでエラー発生

butayarou1m

総合スコア1

AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2020/11/10 12:19

編集2020/11/11 07:12

前提・実現したいこと

Mac版のExcel VBAでAppleScriptTaskで動かすスクリプトファイルを
マクロ内で自動で作成したいと思っております
スクリプトファイルの作成時のOpen関数でエラーが出ており困っています。
何か情報をお持ちの方がいましたらご教示願います。

発生している問題・エラーメッセージ

実行時エラー75 パス名/ファイル名が無効です。

該当のソースコード

ExcelVBA

1Sub CreateScriptFile() 2 Dim dirPath As String 3 Dim filePath As String 4 Dim sp As String 5 Dim fno As Integer 6 7 sp = Application.PathSeparator 8 dirPath = "/Users/[username]" + sp + "Library" + sp + "Application Scripts" + sp + "com.microsoft.Excel" 9 filePath = dirPath + sp + "MyScript.scpt" 10 11 fno = FreeFile 12 Open filePath For Output As #fno 13 Print #fno, "hoge" 14 Close #fno 15End Sub

試したこと

・ファイルは別のシェルから作成し、シェルのキックのみをShell関数から行ったがシェルが動かなかった。
(シェル自体はターミナルからの起動は確認済み)
・パスが/Users/[username]/Library/MyScript.scptならうまく作成できた。

補足情報(FW/ツールのバージョンなど)

macOS Catalina 10.15.7
Excel For Mac 16.42

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

結局、スクリプトファイルを作るシェルファイルを作り、
シェルファイルをappにして、dmgファイルにしてから
配ることとなりました。

投稿2020/11/18 04:21

butayarou1m

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

指定したフォルダは存在しますか?なければ作成してから再度試してください。

VB を使用して AppleScript を実行する

com.microsoft.Excel などのフォルダーは存在していないことがあります。 その場合は、標準の mk dir を使用して作成してください。


下記ではうまくいくでしょうか。

VBA

1dirPath = sp & "Users" & sp & "[username]" & sp & "Library" & sp & "Application Scripts" & sp & "com.microsoft.Excel"

MacのVBAではApplication.PathSeparatorが「:」の場合があります。
バージョンによるかもしれませんが、確認するにはイミディエイトウィンドウで
?Application.PathSeparator
としてみてください。

投稿2020/11/11 04:48

編集2020/11/11 05:04
radames1000

総合スコア1923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

butayarou1m

2020/11/11 04:54

ご回答ありがとうございいます。 「com.microsoft.Excel」は存在しました。 パスに"."が含まれてるとだめなんでしょうか・・・
butayarou1m

2020/11/11 05:13

再度のご確認ありがとうございます。 Application.PathSeparatorは”/”で、以下に修正してもエラーがでて同じ番号した。 dirPath = sp & "Users" & sp & "[username]" & sp & "Library" & sp & "Application Scripts" & sp & "com.microsoft.Excel"
radames1000

2020/11/11 05:20

>パスが/User/[username]/Library/MyScript.scptならうまく作成できた。 とされてますが、/Users/でなく/User/でうまくいきました?
butayarou1m

2020/11/11 07:09

ごめんなさい。 「User」ではなく「Users」が正しいです。
radames1000

2020/11/13 00:56

大丈夫ですよー 下記のように直接指定ではうまくいきますか? /User/[username]/Library/Application Scripts/com.microsoft.Excel/MyScript.scpt
butayarou1m

2020/11/13 02:02

確認しました! 直接指定してもエラーは変わらすでした・・・ もう諦めてマクロでスクリプト作成はやめて別で行おうかとも思い始めてます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問