- ベストアンサー
AUTOMATOR の使い方について
AUTOMATOR の使い方について 現在、ヤフーオークションの結果をファイルメーカーにコピペして ファイルメーカーで落札者の管理をしております。 コピー内容は、商品名、終了時刻、落札金額、IDのみですが AUTOMATOR もしくは、その他なにかのソフトを使って 指定した項目のコピーペーストを自動で行うことは可能でしょうか?
- みんなの回答 (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行目)--------------------------- となるようにメールを作成してください。 実際のメールに使うには適宜修正が必要です。行数ではメールによって違う可能性が高いと思いますので、必ず出てくる文をキーワードにするなどの工夫が必要になるでしょう。 あくまで「こんなこともできますよ」という基本を示すためのものですので、これで動いたらあとは自力でどうぞ。
その他の回答 (9)
- capy2009
- ベストアンサー率72% (337/465)
妙ですね。メールの内容に間違いはないですか?メッセージを新規作成して、最初の行が「商品:なんとか」になるようにコピーペーストしてください。空白の行などがあると当然ずれるので結果がおかしくなります。 試しに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)
capy2009さんの書かれたスクリプトは、メール本文の1行目に「商品:」がある場合です。 実際には前文?があるわけで、「商品:」は23行目のようですから 1行目を取り出すには set line1 to item 23 of aList as text --1行目の:以降を取り出す(商品名) とする必要があり、下の行も同じです。 おめでとうメールの「商品:」が必ず23行目にあるのかどうかは、私にはわかりません。
お礼
疑問点に的確にお答えいただきましてどうもありがとうございました。素人の私にわかりやすくご説明いただきまして、感謝いたします。今回は具体的なスクリプトを書いていただいたcapy2009さんにベストアンサーをつけさせていただきましたが、ホントに優劣つけがたい、すばらしいお答えでした。どうもありがとうございました。また疑問が出てきました際にはよろしくお願いいたします。ありがとうございました。
- capy2009
- ベストアンサー率72% (337/465)
メールから読み取るにも 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
補足
詳しくありがとうございました。今スクリプトを書き写して実行してみましたが、 "&1 を取り出すことはできません。" と出てきます。 1行ずつ試しに実行してみますと お書きいただいた9行目の set aName to text item 2 of line1 を入力すると上記のエラーが出るようです。 スクリプトは初めて書くので、書き方に問題があるのでしょうか? 一応行間は空けずに詰めて書きました。 (書くと言うより、コピーペーストで --以降を消去する方法ですが) ホントビギナーで申し訳ありません。 ファイルメーカーはPro8です。 サンプルで書いていただいたようなページを 新規で作って用意しました。 どうぞもう少しだけ御指南お願いできますでしょうか? よろしくお願いいたします。
- chieffish
- ベストアンサー率44% (1149/2554)
そうではないですよ。 テキストフィールドを1個追加しておきます。 オークションIDフィールドにオークションIDを入れたい場合は オークションIDフィールドは先の式の計算フィールドか計算式 自動入力(既存値置き換え)にしておきます。 落札されましたメールの該当部分を最初に作ったテキストフィ ールドにドラッグドロップするだけです。
- chieffish
- ベストアンサー率44% (1149/2554)
商品:なんとか オークション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:" ; "" ) とかになります。
お礼
細かい御指南ありがとうございます。 現在商品名、終了時刻、金額等でフィールド分けしておりますので それぞれのフィールドにドラッグした後、前出の手続きで 抽出すると解釈してよろしいでしょうか? 現在は一項目ごとにコピーペーストしております。 4項目ほどですので、御指南いただいた方法と どちらが手間がないかと考えております。 無論、アップルスクリプトもオートメーターも利用したことがないので 何ともいえませんが、理想は、終了画面をだして、まだファイルメーカーに 入力できてない項目を、実行ボタン一つで入力できたら素敵だな~というニュアンスです。 もちろん、終了の通知メールからの抽出でも良いのですが ワンボタンで、それぞれの項目に転移すると言うことが今までの自分に 無かった知識と技術ですので、憧れもあるのですね。
- chieffish
- ベストアンサー率44% (1149/2554)
Applescriptも分からないですが、SafariよりMailの「落札されました」メールなら 商品:なんとか オークションID:12345678 開始価格:1,500 円 開始日時:4月20日 10時 22分 終了日時:4月21日 23時 20分 --------------------------- 入札件数:100 落札単価:20,000 円 --------------------------- という部分があるので、ここを取り出して(手動ならドラッグドロップ)ファイルメ ーカーのテキストフィールドに入れると、あとは関数でそれぞれ取り出せます。
お礼
早速のご回答ありがとうございます。なるほど~の方法ですね。ですが、自分にはすごい壁があります(涙)計算式に毛の生えた程度の関数は使ってますが、ほかの関数の使い方がわかりません。ファイルメーカーの使い方で色々検索してみます。ありがとうございました。
- capy2009
- ベストアンサー率72% (337/465)
全て AppleScript で書かなくても、Automator に 「Webページを表示」 「Webページからテキストを取得」 「Set Field Values in FileMaker Database」(http://automatoractions.com/files/filemakerautomatoractionpackforleopard3.0.html) といったアクションはあるので、これと 「AppleScriptを実行」 アクションでテキストからデータを取り出す AppleScript と組み合わせれば、スクリプトを書く手間が減るかもしれません。
お礼
回答ありがとうございました。大変参考になりました。とりあえず、簡単なデーターベース入力画面を作って試してみます。かなり勉強が必要になりそうですが、良い機会になりました。ありがとうございました。
- capy2009
- ベストアンサー率72% (337/465)
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/ あたりが参考になります。
お礼
具体的なご指導ありがとうございます。新たに3フィールドほどの簡単なデーターベース画面を作って練習してみます。オートメーション化は魅力ですが、なかなか一筋縄ではいきませんね。
- capy2009
- ベストアンサー率72% (337/465)
AppleScript を使えば可能です。
補足
早速のご回答ありがとうございます。アップルスクリプトの進化版?がAUTOMETORだと思っていました。アップルスクリプトですと、英語で式?を書かないといけないですよね。いくつかサンプルを見ましたが、該当するモノが無く、作り方(書き方)がわかりません。 サファリの何行目のこの項目を、ファイルメーカーの何行目のこの欄へコピーって言う感じなのだと思いますが 手ほどき願えませんでしょうか?よろしくお願いいたします。
お礼
素人の私にも使えるよう、直接スクリプトを作っていただきましてありがとうございました。chieffishのフォローと共に、大変参考になりました。何とか使えるようになりそうです。これを足がかりに、一つ上のパソコン使いになれそうです。どうもありがとうございました。また疑問が出てきました際にはよろしくお願いいたします。ありがとうございました。