• ベストアンサー

AUTOMATOR の使い方について

AUTOMATOR の使い方について 現在、ヤフーオークションの結果をファイルメーカーにコピペして ファイルメーカーで落札者の管理をしております。 コピー内容は、商品名、終了時刻、落札金額、IDのみですが AUTOMATOR もしくは、その他なにかのソフトを使って 指定した項目のコピーペーストを自動で行うことは可能でしょうか?

  • Mac
  • 回答数10
  • ありがとう数13

質問者が選んだベストアンサー

  • ベストアンサー
  • capy2009
  • ベストアンサー率72% (337/465)
回答No.10

chieffish さん、フォローありがとうございます。 その通りで、本物の落札メール自体の内容は知らないので、例として出ている内容「だけ」を持ったメールを想定しています。念のため繰り返しますが、 (1行目)商品:なんとか (2行目)オークションID:12345678 (3行目)開始価格:1,500 円 (4行目)開始日時:4月20日 10時 22分 (5行目)終了日時:4月21日 23時 20分 (6行目)--------------------------- (7行目)入札件数:100 (8行目)落札単価:20,000 円 (9行目)--------------------------- となるようにメールを作成してください。 実際のメールに使うには適宜修正が必要です。行数ではメールによって違う可能性が高いと思いますので、必ず出てくる文をキーワードにするなどの工夫が必要になるでしょう。 あくまで「こんなこともできますよ」という基本を示すためのものですので、これで動いたらあとは自力でどうぞ。

komadori1920
質問者

お礼

素人の私にも使えるよう、直接スクリプトを作っていただきましてありがとうございました。chieffishのフォローと共に、大変参考になりました。何とか使えるようになりそうです。これを足がかりに、一つ上のパソコン使いになれそうです。どうもありがとうございました。また疑問が出てきました際にはよろしくお願いいたします。ありがとうございました。

その他の回答 (9)

  • capy2009
  • ベストアンサー率72% (337/465)
回答No.9

妙ですね。メールの内容に間違いはないですか?メッセージを新規作成して、最初の行が「商品:なんとか」になるようにコピーペーストしてください。空白の行などがあると当然ずれるので結果がおかしくなります。 試しに6行目までだけ(以下)を実行してみて、下のイベントログの「結果」に何が出るかチェックしてください。正しく動いていれば、図のように "商品:なんとか" となるはずです。 tell application "Mail" set selectedMail to the selection set myText to content of item 1 of selectedMail end tell set aList to paragraphs of myText set line1 to item 1 of aList as text --1行目の:以降を取り出す(商品名)

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.8

capy2009さんの書かれたスクリプトは、メール本文の1行目に「商品:」がある場合です。 実際には前文?があるわけで、「商品:」は23行目のようですから 1行目を取り出すには set line1 to item 23 of aList as text --1行目の:以降を取り出す(商品名) とする必要があり、下の行も同じです。 おめでとうメールの「商品:」が必ず23行目にあるのかどうかは、私にはわかりません。

komadori1920
質問者

お礼

疑問点に的確にお答えいただきましてどうもありがとうございました。素人の私にわかりやすくご説明いただきまして、感謝いたします。今回は具体的なスクリプトを書いていただいたcapy2009さんにベストアンサーをつけさせていただきましたが、ホントに優劣つけがたい、すばらしいお答えでした。どうもありがとうございました。また疑問が出てきました際にはよろしくお願いいたします。ありがとうございました。

  • capy2009
  • ベストアンサー率72% (337/465)
回答No.7

メールから読み取るにも AppleScript が使えます。 一番シンプルな例として、Mail.app で例に挙がっているような内容のメールを選択しておき、FileMaker で「商品」「終了時刻」「落札金額」「ID]の4つのテキストフィールドを持つレコードを開いておきます。 この状態で下記のスクリプトを動かせば、一瞬で値がセットされるはずです。(このスクリプトでは FileMaker Pro Advanced を使ってますが、通常版をお使いの場合は FileMaker Pro に書き換えてください) あとは応用で、メールボックスの中のメッセージ全部に同じ処理をしたり、自動的に新しい FileMaker レコードを作成したり、その他色々な発展が考えられます。 また、FileMaker にボタンを作って AppleScript を割り当ててワンクリックで実行する事もできますし、Mail.app の方でルールを作成すれば、落札メールが届いたら自動的に AppleScript を動かすようにもできるので、指一本触れない全自動も実現可能です。 それでは、あとは自力で頑張ってください。 ---- ここから AppleScript ---- --現在選択しているメールの内容を読み取る tell application "Mail" set selectedMail to the selection set myText to content of item 1 of selectedMail end tell set aList to paragraphs of myText set line1 to item 1 of aList as text --1行目の:以降を取り出す(商品名) set TID to text item delimiters of AppleScript set text item delimiters of AppleScript to ":" set aName to text item 2 of line1 set line1 to item 5 of aList as text --5行目の:以降を取り出す(終了時刻) set TID to text item delimiters of AppleScript set text item delimiters of AppleScript to ":" set aTime to text item 2 of line1 set line1 to item 8 of aList as text --8行目の:以降を取り出す(落札金額) set TID to text item delimiters of AppleScript set text item delimiters of AppleScript to ":" set aPrice to text item 2 of line1 set line1 to item 2 of aList as text --2行目の:以降を取り出す(ID) set TID to text item delimiters of AppleScript set text item delimiters of AppleScript to ":" set anID to text item 2 of line1 set text item delimiters of AppleScript to TID --ファイルメーカーに値をセット tell application "FileMaker Pro Advanced" -- 必要なら FileMaker Pro に書き換える tell current record of window 1 set contents of field "商品名" to aName set contents of field "終了時刻" to aTime set contents of field "落札金額" to aPrice set contents of field "ID" to anID end tell end tell

komadori1920
質問者

補足

詳しくありがとうございました。今スクリプトを書き写して実行してみましたが、 "&1 を取り出すことはできません。" と出てきます。 1行ずつ試しに実行してみますと お書きいただいた9行目の set aName to text item 2 of line1 を入力すると上記のエラーが出るようです。 スクリプトは初めて書くので、書き方に問題があるのでしょうか? 一応行間は空けずに詰めて書きました。 (書くと言うより、コピーペーストで  --以降を消去する方法ですが) ホントビギナーで申し訳ありません。 ファイルメーカーはPro8です。 サンプルで書いていただいたようなページを 新規で作って用意しました。 どうぞもう少しだけ御指南お願いできますでしょうか? よろしくお願いいたします。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.6

そうではないですよ。 テキストフィールドを1個追加しておきます。 オークションIDフィールドにオークションIDを入れたい場合は オークションIDフィールドは先の式の計算フィールドか計算式 自動入力(既存値置き換え)にしておきます。 落札されましたメールの該当部分を最初に作ったテキストフィ ールドにドラッグドロップするだけです。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.5

商品:なんとか オークションID:12345678 開始価格:1,500 円 開始日時:4月20日 10時 22分 終了日時:4月21日 23時 20分 --------------------------- 入札件数:100 落札単価:20,000 円 --------------------------- の部分をテキストフィールドに取り出せたらというのが前提ですが 「オークションID:12345678」は改行テキストの2行目ですから =GetValue ( テキストフィールド ; 2 ) で取り出せます。 それから「オークションID:」の部分を削除すればいいですから =Substitute ( GetValue ( テキストフィールド ; 2 ) ; "オークションID:" ; "" ) とかになります。

komadori1920
質問者

お礼

細かい御指南ありがとうございます。 現在商品名、終了時刻、金額等でフィールド分けしておりますので それぞれのフィールドにドラッグした後、前出の手続きで 抽出すると解釈してよろしいでしょうか? 現在は一項目ごとにコピーペーストしております。 4項目ほどですので、御指南いただいた方法と どちらが手間がないかと考えております。 無論、アップルスクリプトもオートメーターも利用したことがないので 何ともいえませんが、理想は、終了画面をだして、まだファイルメーカーに 入力できてない項目を、実行ボタン一つで入力できたら素敵だな~というニュアンスです。 もちろん、終了の通知メールからの抽出でも良いのですが ワンボタンで、それぞれの項目に転移すると言うことが今までの自分に 無かった知識と技術ですので、憧れもあるのですね。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.4

Applescriptも分からないですが、SafariよりMailの「落札されました」メールなら 商品:なんとか オークションID:12345678 開始価格:1,500 円 開始日時:4月20日 10時 22分 終了日時:4月21日 23時 20分 --------------------------- 入札件数:100 落札単価:20,000 円 --------------------------- という部分があるので、ここを取り出して(手動ならドラッグドロップ)ファイルメ ーカーのテキストフィールドに入れると、あとは関数でそれぞれ取り出せます。

komadori1920
質問者

お礼

早速のご回答ありがとうございます。なるほど~の方法ですね。ですが、自分にはすごい壁があります(涙)計算式に毛の生えた程度の関数は使ってますが、ほかの関数の使い方がわかりません。ファイルメーカーの使い方で色々検索してみます。ありがとうございました。

  • capy2009
  • ベストアンサー率72% (337/465)
回答No.3

全て AppleScript で書かなくても、Automator に 「Webページを表示」 「Webページからテキストを取得」 「Set Field Values in FileMaker Database」(http://automatoractions.com/files/filemakerautomatoractionpackforleopard3.0.html) といったアクションはあるので、これと 「AppleScriptを実行」 アクションでテキストからデータを取り出す AppleScript と組み合わせれば、スクリプトを書く手間が減るかもしれません。

komadori1920
質問者

お礼

回答ありがとうございました。大変参考になりました。とりあえず、簡単なデーターベース入力画面を作って試してみます。かなり勉強が必要になりそうですが、良い機会になりました。ありがとうございました。

  • capy2009
  • ベストアンサー率72% (337/465)
回答No.2

AppleScript をものすごく簡略化したものが Automator だとお考えください。 細かいことをやろうとすれば、結局 AppleScript が必要になります。 > 手ほどき願えませんでしょうか? 具体的なスクリプトは Yahoo! ページの内容と FileMaker Pro データベースの構造に合わせて作る必要があるので、ここでは何とも示しようがありません。 大まかな流れとしては、 Yahoo!オークションのマイ・オークション落札ページの html ソースを取得 目的の情報が記述されている部分を抜き出す データを FileMaker Pro のフィールドにコピー 以上を繰り返す というそれぞれの操作を AppleScript で記述すれば、お望みのことができます。 html ソースを取得するには http://blog.goo.ne.jp/vallie/e/aabfbfca72b0f9c7869def29fcf87563 FileMaker のフィールドに値を入れるには http://piyocast.com/as/archives/category/application_control/filemaker-pro-v9/ あたりが参考になります。

komadori1920
質問者

お礼

具体的なご指導ありがとうございます。新たに3フィールドほどの簡単なデーターベース画面を作って練習してみます。オートメーション化は魅力ですが、なかなか一筋縄ではいきませんね。

  • capy2009
  • ベストアンサー率72% (337/465)
回答No.1

AppleScript を使えば可能です。

komadori1920
質問者

補足

早速のご回答ありがとうございます。アップルスクリプトの進化版?がAUTOMETORだと思っていました。アップルスクリプトですと、英語で式?を書かないといけないですよね。いくつかサンプルを見ましたが、該当するモノが無く、作り方(書き方)がわかりません。 サファリの何行目のこの項目を、ファイルメーカーの何行目のこの欄へコピーって言う感じなのだと思いますが 手ほどき願えませんでしょうか?よろしくお願いいたします。

関連するQ&A

  • Automatorで変数を使ったファイル検索

    Automatorを使って、毎日決まった時間にファイルのコピーをしたいのですが、手順がいまいちわからないので教えて下さい。 ファイル名は「当日の日付+15+文字列」で、日付の部分が変動します。 そこで、Automatorの「日付と時刻」変数から、必要な形式yymmddとなるように変数を作成しました。 変数名は「folderName」としました。 1)この変数はいつでも呼び出せるように保存するにはどうしたらよいですか? Automatorのカレンダーアラームで、以下のようにワークフロー(?)を作りました。 ------------------------- ・変数の値を取得   →上記のyymmddとなる日付 ・Finder項目を検索   →検索条件 「名前」 が 「folderName」 を含む    変数名は手で入力しました ・フォルダの内容を取得 ・Finder項目をコピー ------------------------- 一連の動作を確認すると、以下のようなログが残っていました。 ・変数の値を取得  完了 ・Finder項目を検索  完了 ・フォルダの内容を取得  完了 -1warning  アクション”フォルダの内容を取得”に必要なデータがありません。 ・Finder項目をコピー  完了 -1warning  アクション”Finder項目をコピー”に必要なデータがありません。 2)検索するファイル名のところに、手打ちで変数名を入れたことが間違っているように思うのですが、変数名はどのようにして指定したらよいですか? 初歩的な質問かと思いますが、ご指導宜しくお願いします。

    • ベストアンサー
    • Mac
  • AutomatorのFinder項目のフィルタ適用

    お世話になります。 以前、こちらで「Automatorで変数を使ったファイル検索」というタイトルで相談させていただいて、お陰様で希望通りの結果を得ることができました。 http://okwave.jp/qa/q8563519.html 前回相談させていただいた時は、Automatorを使って特定の時間に、流動的なファイル名のフォルダを別のフォルダにコピーをしたい、という内容が目的でした。 今回はこれまでと状況が変わり、特定の時間では対応できなくなってしまったので、Automatorで特定のフォルダを監視しつつ、特定の条件を満たすファイル(流動的なファル名)が作成された時点でコピーの処理を実行したいのですが、「Finder項目にフィルタを適用」の部分でつまづいています。 検索したいファイル名は、12時台に作成される 「yymmdd12○○○.csv」と、 16時台に作成される「yymmdd16○○○.csv」というファイル名です。 監視するフォルダにはこのcsvファイル以外にも毎日複数のファイルが作成されています。 Automatorでは以下のように試してみました。 1. 指定されたFinder項目を取得 2. フォルダの内容を取得 3. 変数の値を設定     変数名:今日の日付     カスタムフォーマット:yymmdd 4. Finder項目にフィルタを適用 4. のフィルタの部分で、ファイル名に「12時台」を示す文字列を付与した「yymmdd15」というキーワードで検索をしたいのですが、フィルタの設定ではどのようにしたらよいのかわかりません。 そもそもフィルタの適用の設定で、変数を使うことはできないのですか? 12時台と16時台の2つの条件を設定するのは難易度が高そうなので、16時台の方は今までのやり方でAutomatorで指定の時間に処理を実行する方法でも構いません。 Finder項目にフィルタを適用する際に、変数を使用する方法を教えて下さい。 もしそれが不可能でしたら、他にどのような方法がありますか? ご指導よろしくお願いします。

    • ベストアンサー
    • Mac
  • Automatorのシェルスクリプトがエラーの場合

    以前こちらで教えていただいた方法で、Automatorのフォルダアクションのシェルスクリプトによるファイルのコピーを利用しています。 その節はお世話になりましてありがとうございました。 今回相談にのっていただきたいのは、下記のスクリプトでフォルダAにあるファイルをWindows7の中のiCloud Driveにコピーしているのですが、コピーできない時が何度かありました。 原因はWindows7との接続が切れてしまったからなのか、他に原因があるのかわかりませんでした。 そこで、コピーに失敗した場合にその原因をメールで通知することは可能でしょうか? 普段はモニターをつけていないので、メールが届いたらチェックすることができて便利なのですが、ネットで検索してもそのものズバリの解決策は見つけられませんでした。 もしメールでの通知が難しそうであれば、エラーのログを残すなどの方法でも構いませんので、ご指導をよろしくお願いします。 Automatorは下記のような設定です。 1. 指定されたFinder項目を取得(Automatorでのテスト用に設定) 2. フォルダの内容を取得 3.シェルスクリプトを実行 ======================================== #!/bin/bash path=$1 folderC=/Volumes/iCloudDrive cp "${path}" "${folderC}"/ ======================================== Mac OS X 10.8.5 よろしくお願いします。

    • ベストアンサー
    • Mac
  • Automatorで指定時刻にファイルを印刷したい

    Macにデフォルトで付いている「Automator」を使用して 以下のような操作をさせたいのですが、どうすればいいのでしょうか? 1.毎朝9時に、デスクトップ上にあるExcelファイルを開く 2.Excelブックを印刷 3.Excelファイルを閉じる Excelファイルを開く、プリントする、閉じる、という項目は それっぽいものがあったのでわかるのですが、 時間指定の方法と、特定のファイルを開く、という部分がわかりませんでした。 初歩的な質問で申し訳ないのですが、 どなたか教えていただけるとありがたいです。 よろしくお願いします。

    • 締切済み
    • Mac
  • Automatorが失敗する原因

    お世話になります。 Mac購入からまだ日が浅く、Automatorの勉強も始めたばかりですが、下記の処理をAutomatorのカレンダーアラームに登録をして、問題なく処理を完了する場合と、途中で失敗する場合があります。 Macそのものの環境は同じだと思いますので、スクリプトの書き方などに問題があるのではないかと思っています。 処理の順番は、以下の通りです。 1.「シェルスクリプトを実行」 ファイル名が日付で毎日変動するファイルを検索 2.「Finder項目をコピー」 特定のフォルダにコピーをして 3.「変数の値を設定」 ファイルのパスを扱うために設定 4.「AppleScriptを実行」       a. ファイルのパスからファイル名を抽出      b. FileMakerの特定のフィールドにその値をセット      c. ファイルの解凍 今はエラーを再現できないのですが、本日2回ほど失敗した時は1~3までの工程は問題なかったようで、ファイルのコピーまではできていました。 エラーの内容はうろ覚えですが、「スクリプトを確認して下さい」のような文言だったと思います。 4.の「AppleScriptを実行」のa.に関してはダイアログなどを出していないのでできているのか不明ですが、b.の部分はできていなかったので、恐らく、b.のところで止まってしまったように思います。 事前にFileMakerのウインドウが前面に来るようにはしてあるのですが・・・。 漠然とした相談で申し訳ありませんが、何かご存知でしたら教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • Mac
  • ヤフーオークションの自動延長が働かない事ありませんか?

    私はヤフーオークションで出品をしている者ですが、全ての商品に自動延長をつけて出品しております。 たまに自動延長が働かず落札されているものを見かけます。入札時間を見てみると、オークション終了時刻と同時刻や終了1分前の入札です。回線の混雑等で入札出来なくなるのは聞きますが、いかがなものなのでしょうか?私はオークション歴3年なのである程度の知識はあるつもりでしたが、この謎は解けません。お分かりの方いらっしゃいましたら教えてください。宜しくお願い致します。

  • Automatorでファイルの移動とコピー

    Automatorのフォルダアクションを使ってファイルを2ヶ所のフォルダにコピーしたいのですが、うまくいきません。 フォルダAに保存されたPDFをフォルダBの日付フォルダ(フォルダ名:yy-mm-dd)に移動して、次にフォルダCにコピーをすることが目的です。 ネットの情報を参考にしながら下記のようなワークフローを作成しました。 AutomatorのフォルダアクションでフォルダAを指定 1. 指定されたFinder項目を取得(Automatorでのテスト用に設定) 2. フォルダの内容を取得 3. 変数の値を取得   変数名:folderA 4. AppleScriptを実行  on run {input, parameters}   set folderA to item 1 of input    -- POSIX変換   set folderA_POSIX to POSIX path of folderA   -- 移動先   set folderB to "フォルダBのパス"    -- フォルダBの中の日付名のサブフォルダ   set theTime to do shell script "date +'%y-%m-%d'"    -- フォルダB / yymmdd のパス   set yymmdd to do shell script "find " & folderB & " -name " & theTime & "* -print"   set moveCommand to "mv " & quoted form of folderA_POSIX & " " & quoted form of yymmdd   do shell script moveCommand   return input end run Finder項目をコピー      フォルダCを指定 一応、上記の流れで動いているのですが、このワークフローと同じ内容で別のフォルダ用にコピーをしたところ、「AppleScriptを実行」の結果に移動先のフォルダBのyy-mm-ddフォルダに保存されたファイルのパスが表示されず、最初のフォルダAのパスが入っていて、テストの結果のログの部分には、「アクション”Finder項目をコピー”に必要なデータがありません」とありました。 ワークフローをコピーする前のちゃんと結果を得られている方のフォルダでは、移動先のパスが結果に表示されていたので、最後の return input の値が更新されていないのかな?と想像しているのですが、どうしたら良いですか? 「Finder項目をコピー」にデータを引き渡すことができない原因はなんでしょうか? 同じスクリプトで問題なく動いているフォルダもあるのですが、違いは何でしょうか? アクセス権はいずれも同じ設定(読み書きOK)になっています。 そもそも上記のようなスクリプトで問題ないでしょうか? Macもまだ慣れず、AutomatorもAppleScriptも知識がないのでとんちんかんな質問でしたら申し訳ありませんが、ご指導よろしくお願い致します。

    • ベストアンサー
    • Mac
  • ファイルメーカーpro7でURLを開くでうまく開けません

    現在ヤフーオークションをファイルメーカーで管理しようと、 独学で勉強し、作成を始めたのですが、 ボタンで「URLを開く」を設定し、オークションページを開くように作成しているのですが、うまく開けません。 オークション終了後、一覧をエクスプローラーからエクセルにコピペし、 ハイパーリンクよりオークションページのURLを抜き出し、 それをファイルメーカーの「商品URL」フィールドにインポートしています。 ボタンに「URLを開く」で、「商品URL」フィールドを指定していますが、 「指定されたドキュメントは存在しません。」と言われてしまいます。 「商品URL」のアドレスをエクスプローラーに直接コピペすると開けるのですが…なぜなのでしょうか? どなたかお分かりなる方いらっしゃいましたらお願いいたします。 説明不足でしたら、ご指摘ください。よろしくお願いいたします。

  • 詳しい方、こんな入札支援ソフトを探しています。

    お世話になります。 オークションに予定時刻になると自動で入札してくれるソフトは 今は結構増えましたね。 自分も使用しています。 出品と落札でIDを分けています。 落札用の方は自分用と家族用で2つのIDを使い分けています。 自動入札ソフトを起動し、深夜の終了のオークションに入札予約をかけても、家族が別のIDにログインしたりすると失敗するか、 家族のIDで入札されてしまいます。 原因はPC1台だからです。 パソコンが2台あればいいのですが、そうもいきません。 そこで。。。 予定時刻になるとIDを切り替えて、入札してくれるソフトを探しています。 複数オークションに入札できるもの(複数起動でも可)で、 出来ればフリーが希望です。 もしシェアしかない場合はそれでも良いので教えてください。 よろしくお願いします。

  • Automatorのフォルダアクションについて

    お世話になります。 以前、こちらで「AutomatorのFinder項目のフィルタ適用」というタイトルで相談させていただいた者です。 お蔭様で希望通りの結果を得ることができました。 動作の希望は、Automatorを使用して、Mac mini Serverからネットワークフォルダを監視して、条件に合致したファイルが追加されたら自動で処理を実行したい、というものでした。 ご指導いただいたように下記の手順で設定をして、ほぼ問題なく動いているのですが、週に2回ほどファイルが追加されている場合でも処理が始まらず、手動で作業をすることがあります。 問題なく動いている場合と、失敗する場合で、何が異なるのか調べてみてもPCやネットワークなどの環境は同じ条件だったので原因がわからず、今回相談させていただきました。 手順 1.Automatorのフォルダアクションで「シェルスクリプトを実行」 --------------------------------------------------- 対象のフォルダ:ネットワークフォルダ シェル : usr/bin/ruby 入力の引渡し方法 : 引数として # encoding: utf-8 if RUBY_VERSION < %[1.9.0] require %[jcode] $KCODE=%[utf-8] else Encoding.default_external=%[utf-8] end ARGV.each do |f| if File.basename(f)[/^\d{6}(12|16).*lzh$/] abort %[エラーが発生しました] unless system %[open -W -a add_data2.app #{f}] # データ登録作業 end end --------------------------------------------------- ⇒ 追加ファイルの特定条件   yymmddの後ろの時間を示す数字が「12」か「16」のいずれかで、   拡張子が「lzh」のファイル ⇒ add_data2.app でlzhファイルを別フォルダにコピーや   解凍などの処理を実行 2.add_data2.app 実行 以上です。 拾いこぼしが起きる原因と対策を教えて下さい。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Mac