FileMakerでスクリプトを使用して特定のフォルダーを自動的に開く

目次

ChatGPTとの会話スタート

FileMakerであるボタンを押すとExcelファイルとPDFファイルができて、C:\■suica-Excel に保存されるようになっています。

ExcelファイルとPDFファイは、自動で開くようになっているのですが、そのファイルを保存しているフォルダーに行くのが毎回面倒です。

そこで,FileMakerのボタンを押したときに同時に保存フォルダーC:\■suica-Excel を開けるか、ChatGPTに聞いてみました。

結論

ChatGPT

はい、FileMakerでスクリプトを使用して特定のフォルダーを自動的に開くことが可能です。ただし、FileMaker自体には直接フォルダーを開く機能はありませんが、OSの機能を利用することで実現できます。

あい

下記の内容のスクリプトでフォルダーを自動的に開けるようになりました!

今回は無料版のChatGPTを使っています。

方法: OSのスクリプトを活用する

FileMakerのスクリプトステップ 「送信先スクリプト」(Send Event) を使用して、OSに対してフォルダーを開くコマンドを送ることで実現します。

Windowsの場合

  1. フォルダーを開くコマンド:
cmd /c start "" "フォルダーのパス"

例:

cmd /c start "" "C:\Users\Username\Documents\TargetFolder"
  1. FileMakerスクリプトの設定:
    • スクリプトステップ「送信先スクリプト」を追加します。
    • オプションの「指定」で以下を設定します:
      • コマンドライン引数: 上記のコマンドを記述
      • アプリケーション: cmd.exe

Macの場合

  1. フォルダーを開くコマンド:
open "フォルダーのパス"

例:

open "/Users/Username/Documents/TargetFolder"
  1. FileMakerスクリプトの設定:
    • スクリプトステップ「送信先スクリプト」を追加します。
    • オプションの「指定」で以下を設定します:
      • コマンドライン引数: 上記のコマンドを記述
      • アプリケーション: /bin/bash または /bin/zsh(MacOSのシェルによる)

注意事項

  • フォルダーのパスは正確に指定する必要があります。スペースを含む場合、パスをダブルクォート (") で囲みます。
  • 実行権限やFileMakerの動作設定によってはコマンドが動作しない場合があります。その際は、FileMakerの設定やOSの権限設定を確認してください。
  • ファイルパスの入力を動的にしたい場合は、FileMakerのフィールドや変数を活用して柔軟に設定できます。
ChatGPT

何か具体的な設定が必要であれば、さらに詳細にサポートしますので教えてください!

あい

あるスクリプトのボタンを押すと、特定のフォルダー内にエクセルファイルとPDFファイルが保存されます。 スクリプト実行のあとに、この特定のフォルダーを開きたいのです。 特定のフォルダーは、c:\■Suica-Excel です。 スクリプトに書く内容を教えてください。コピーして使わせてもらいます。

ChatGPT

以下に、特定のフォルダー C:\■suica-Excel をスクリプトで開く方法を説明します。スクリプトステップとして実行できる内容を記載します。

FileMaker スクリプト内容

送信先スクリプト [ "cmd.exe /c start "" "C:\■suica-Excel"""]

設定手順

  1. スクリプト作成:
    • FileMakerでスクリプトを新規作成します。
    • スクリプトステップ「送信先スクリプト」(Send Event) を追加します。
  2. スクリプトステップの詳細設定:
    • 「指定…」をクリックして以下の内容を設定します。
      • アプリケーション: cmd.exe
      • コマンドライン引数: /c start "" "C:\■suica-Excel"
  3. 保存して実行:
    • スクリプトを保存し、スクリプトにボタンを割り当てます。
    • ボタンを押すと、指定したフォルダーが開きます。

完全なスクリプト例

スクリプト内に保存処理を含める場合、以下のような流れにできます。

# 保存処理のスクリプトを実行
エクスポートレコード [ ダイアログなし ; "C:\■suica-Excel\エクセルファイル.xlsx" ]
PDFを保存 [ ダイアログなし ; "C:\■suica-Excel\ファイル名.pdf" ; レイアウト名 ]

# フォルダーを開く
送信先スクリプト [ "cmd.exe /c start "" "C:\■suica-Excel"""]

注意事項

  1. フォルダーの存在確認:
    • フォルダー C:\■suica-Excel が存在しない場合はエラーになるため、事前に存在を確認しておくか、作成してください。
  2. FileMakerの権限:
    • FileMakerの動作環境やユーザー権限により、コマンド実行が制限される場合があります。その場合は管理者権限でFileMakerを実行してください。
  3. フォルダー名のエンコード:
    • 日本語や特殊文字が含まれるフォルダー名は正しく指定してください。
ChatGPT

設定が完了したら、スクリプトを実行して動作を確認してみてください! 😊

あい

ありがとうございます。早速記述してテストしてみます。

ChatGPT

どういたしまして!ぜひ試してみてください😊
何か問題があったり、さらに調整が必要になった場合は気軽にお知らせくださいね!うまくいくことを祈っています🎉

あい

送信先スクリプト この名前のスクリプトがありません

ChatGPT

失礼しました!FileMakerのスクリプトステップの正しい名前は「Send Event (イベントを送信)」です。日本語環境では「イベントの送信」と表示される場合があります。このステップを使用してフォルダーを開くコマンドを送信できます。
以下に手順を詳しく説明します。

※ChatGPTにFileMakerのスクリプトを書いてもらうと、FileMakerでは日本語なのに英語で書いてあるので自分で翻訳してどれのことか、を探すのが少したいへんです。

修正版スクリプト手順

  1. スクリプト編集画面を開く
    FileMakerのスクリプト編集画面を開き、スクリプトを新規作成します。
  2. スクリプトステップ「イベントの送信」を追加
    • スクリプト編集画面で「イベントの送信」を検索して追加します。
  3. イベントの送信の設定
    「イベントの送信」ステップのオプションで以下を設定します:
    • 指定するアプリケーション: cmd.exe
    • コマンドまたはデータ
/c start "" "C:\■suica-Excel"
  1. 設定画面の例:
    • アプリケーション: cmd.exe
    • コマンドまたはデータ: /c start "" "C:\■suica-Excel"
  2. スクリプトを保存し、ボタンに割り当てる
    スクリプトを保存し、特定のボタンに割り当てて実行します。

完全なスクリプト例

もしファイルの保存処理とフォルダーを開く処理を一連のスクリプトで行う場合は、以下のようにします:

# 1. エクセルファイルの保存処理
エクスポートレコード [ ダイアログなし ; "C:\■suica-Excel\エクセルファイル.xlsx" ]

# 2. PDFの保存処理
PDFを保存 [ ダイアログなし ; "C:\■suica-Excel\ファイル名.pdf" ; レイアウト名 ]

# 3. フォルダーを開く
イベントの送信 [ アプリケーション: cmd.exe ; コマンド: /c start "" "C:\■suica-Excel" ]

注意事項

  • フォルダーが存在しない場合はエラーになるため、事前にフォルダーを作成してください。
  • フォルダー名やパスが正しいか確認してください(例: 日本語フォルダー名「■」)。
ChatGPT

うまく動作することを祈っています!問題があればいつでも聞いてくださいね😊

あい

cmd.exe ; コマンド: /c start “” “C:\■suica-Excel” これを記載してうまいきました。

ChatGPT

おお、うまくいってよかったです!🎉😊
これで作業の効率が上がるといいですね!また何か困ったことがあれば、いつでもお気軽にお声がけください。引き続き頑張ってくださいね!💪✨

あい

cmd.exe ; コマンド: /c start “” “C:\■suica-Excel” このコマンド: を省略してもうまくいきましたが、コメントがなくてもいいのですか

ChatGPT

はい、その通りです!cmd.exe ; コマンド: /c start "" "C:\■suica-Excel" の「コマンド:」部分は、FileMakerのスクリプト編集画面で設定を説明するための表示なので、実際に入力する必要はありません。

解説

FileMakerの「イベントの送信」ステップには、以下のように入力します:

  1. アプリケーション:
    cmd.exe
  2. コマンドまたはデータ:
/c start "" "C:\■suica-Excel"

「コマンド:」という記述はただの説明部分であり、実際に入力する内容には含まれません。つまり、直接上記の内容だけを指定しても正しく動作します。

コメントについて

もしスクリプトの可読性やメンテナンス性を考慮して、他の人が後で見ても分かりやすくしたい場合、FileMakerスクリプトに「コメント」ステップを追加して補足説明を入れるのは良い習慣です。

例:

# 特定のフォルダーを開く
イベントの送信 [ アプリケーション: cmd.exe ; コマンド: /c start "" "C:\■suica-Excel" ]
ChatGPT

コメントはスクリプトに影響を与えず、メモとして使えるのでお勧めです😊
コメントなしでも問題ありませんが、後からスクリプトを見たときに「なぜこう書いたのか」を思い出せるようにするなら、コメントを加えるのは便利です!

あい

最初の アプリケーション: これが入っていたらエラーがでて、とったらうまくいったのでなぜなのかな、と思いました。

ChatGPT

それは興味深い現象ですね!考えられる理由を以下にまとめます。

FileMakerの「イベントの送信」の挙動

「イベントの送信」ステップでは、「アプリケーション」と「コマンドまたはデータ」を設定できます。ただし、環境やバージョンによって「アプリケーション」欄の仕様が異なる場合があります。

  1. 「アプリケーション」欄にcmd.exeを入力した場合の挙動:
    • FileMakerが「cmd.exe」をOSの実行可能ファイルとして扱おうとします。
    • このとき、指定の形式に合わない内容やFileMakerが認識できない文字列が入るとエラーが発生します。
  2. 「アプリケーション」欄を空白にした場合の挙動:
    • FileMakerは「デフォルトのアプリケーション(通常はOSのコマンドプロンプト)」を使用します。
    • この場合、コマンド部分 /c start "" "C:\■suica-Excel" がそのままコマンドプロンプトに渡され、正しく実行されます。

なぜ「アプリケーション」に値を入れるとうまくいかないのか

理由 1: 実行環境のパス設定の影響

FileMakerは「アプリケーション」欄に入力された内容をそのまま実行しようとします。この際、OSの環境変数(特に PATH)が正しく設定されていない場合、cmd.exeの場所を見つけられずエラーになる可能性があります。

理由 2: コマンド形式の期待値の違い

FileMakerが「アプリケーション」欄の内容を「直接実行可能なプログラム」として認識する仕様になっており、cmd.exeの引数指定が適切でないとエラーになる場合があります。

解決策と推奨事項

  • 「アプリケーション」欄を空白にする: 今回のように「アプリケーション」欄を空白にして「コマンドまたはデータ」欄にコマンドを記載する方法が、最もシンプルで互換性が高いです。
  • コメントで明記: なぜ「アプリケーション」欄を空白にしているのか、将来のメンテナンスを見越してコメントを加えると良いでしょう。
# 特定のフォルダーを開く
# アプリケーション欄は空白で動作する環境に依存します
イベントの送信 [ /c start "" "C:\■suica-Excel" ]
ChatGPT

もしまだ疑問が残る場合や詳細な環境(使用しているFileMakerのバージョンやOS)があればお知らせください。それを基にさらに深掘りした説明をお伝えできます!😊

あい

cmd.exe ; /c start “” “C:\■suica-Excel” これがすっきりしているのて、これでいきたいと思います。ありがとうございました。

ChatGPT

それが一番シンプルでわかりやすいですね!😊 うまく動作しているようで安心しました。引き続き、FileMakerの活用を楽しんでください。また何かありましたら、いつでもお声がけくださいね。応援しています!✨

最後の一言

今回はChatGPTの無料版を使ってみましたが、有料版と遜色なく使えます。

ただし、やりとりが長くなると途中でちょっとお休みタイムのような表示が出てしまいます。

FileMakerでExcelやPDFのエクスポートと表示までは自動化を簡単にできていましたが、保存フォルダーを開く方法は、以前試みましたができませんでした。

今回試しにChatGPTに聞いたらうまくいきましたので同じ悩みを持つ人の参考になれば幸いです。

目次