• 締切済み

ApplescriptでExcelのセルに数式挿入

ApplescriptでExcelのセルに数式を挿入したいのですが、方法がよくわかりません。 スクリプトを自作したのですが、数式が途中で切れてしまいます。よろしくお願いします。 OS X 10.5.8 スクリプトエディタ 2.2.1 Microsoft Excel 2008 for Mac 12.2.0 [[入れたい数式]] =IF(K11>=10,"#225500",IF(K11>=7.5,"#44AA00",IF(K11>=5,"#66FF00",IF(K11>=2.5,"#99FF55",IF(K11>=0,"#CCFFAA",IF(K11>=-2.4999,"#FFAAAA",IF(K11>=-4.9999,"#FF5555",IF(K11>=-7.4999,"#FF0000",IF(K11>=-9.9999,"#AA0000","#550000"))))))))) [[数式を入れたいセル]] N11 [[自作したスクリプト]] tell application "Microsoft Excel" set formula of range "n11" of active sheet to "=IF(K11>=10,"#225500",IF(K11>=7.5,"#44AA00",IF(K11>=5,"#66FF00",IF(K11>=2.5,"#99FF55",IF(K11>=0,"#CCFFAA",IF(K11>=-2.4999,"#FFAAAA",IF(K11>=-4.9999,"#FF5555",IF(K11>=-7.4999,"#FF0000",IF(K11>=-9.9999,"#AA0000","#550000"))))))))) " end tell [[結果]] =IF(K11>=10,)

  • Mac
  • 回答数2
  • ありがとう数0

みんなの回答

noname#250373
noname#250373
回答No.2

すでに解決されてるかも知れませんが、一応。 他の方もおっしゃられている通り、「"」のエスケープ処理が必要です。 エスケープ処理は「この"はAppleScriptのくくりじゃなくて、ただの文字列だよ」と明示してやることを指します。 AppleScriptではエスケープさせたい文字の前にバックスラッシュ(\)をつければOKです。 ちなみにバックスラッシュは英数入力でoption+¥で入力できます。 以下がその例です。 set formula of range "n11" of active sheet to "=IF(K11>=10,\" #225500\",IF(K11>=7.5,\"#44AA00\",IF(K11>=5,\"#66FF00\",IF(K11>=2.5,\"#99FF55\",IF(K11>=0,\"#CCFFAA\",IF(K11>=-2.4999,\"#FFAAAA\",IF(K11>=-4.9999,\"#FF5555\",IF(K11>=-7.4999,\"#FF0000\",IF(K11>=-9.9999,\"#AA0000\",\"#550000\"))))))))) "

  • toast5
  • ベストアンサー率37% (239/638)
回答No.1

僕は Applescript は小学生レベル、 Excel に至ってはここ数年触ったこともないのですが、たぶん、 set ナニナニ to "ホニャララ" の「ホニャララ」がダブルクォーテーションマークを含む場合、 エスケープする必要があるのでは。 Applescript のエスケープ記号は何か知らないのですが、 ググってみてください。

関連するQ&A

  • AppleScriptでデキストデータをExcel

    AppleScriptでテキストファイルをExcelで開きたいのですが、 区切り文字をスペースと|の2つを指定したいのです。 スペースだけなら tell application "Microsoft Excel" open text file filename ¬ "Mac HD:Folder:File.txt" data type delimited with space end tell とできたのですが、|を組み合わせた場合がわかりません。 ご教授ください。

    • ベストアンサー
    • Mac
  • applescript で pdfを扱いたいんです。

    applescriptで、pdfファイルをアクロバットリーダ6で開けるスクリプトを書いたのですがうまくいきません。どなたか教えて頂きませんか? プレビューで開けるならopen一発で簡単なのですが、アクロバットリーダで開けたいのです。 僕は以下のようなのを書いています。 もしや、アクロバットはpdfを開けるイベントハンドラは対応して無いのでしょうか? tell application "finder" open file "01.pdf" of desktop using application "Adobe Reader 6" end tell

    • ベストアンサー
    • Mac
  • indesignでのapplescript

    はじめまして、indesign CS3で使用するapplescriptに関しての質問です。 自動で出力をしてくれるスクリプトを作りたいと思い、やってみたのですがうまくいきません。 色々調べて作ってみたのがこれです。 tell application "Finder" set filesInFolder to files in (choose folder) repeat with theFile in filesInFolder if name extension of theFile is "indd" then -- 拡張子を指定 set priset to "B4" -- プリントプリセットを指定 tell application "Adobe InDesign CS3" activate open theFile tell document 1 print using priset without print dialog close saving no end tell end tell end if end repeat end tell ここまではなんとかできたのですが、現段階では1階層下までのinddドキュメントしか読取ってくれません。 1見開きごとにパッケージしてできた子フォルダを一つの親フォルダにまとめることが多いので、フォルダ▶フォルダ▶.inddになります。 これでは親フォルダを指定したときに2階層下の子フォルダに分かれて入っている複数の.inddを一気に出力することができません。 何か解決策はありませんでしょうか? また、現段階に関してのご指摘もございましたらよろしくお願いします。

  • AppleScriptやXcodeについて質問できるフォーラムやサイトをご存知ありませんか?

    AppleScriptやXcodeについて質問できるフォーラムやサイトをご存知ありませんか? このサイトでも簡単なScript程度なら回答を得られますでしょうか? ちなみに以下の質問をしたいです tell application "System Events" key code {1, 2, 3} end tell の様な記述をAppleScriptでアプリケーション化してDockに登録したのですがスクリプトが上手く起動する時と起動しない時があります AppleScriptが起動するのが遅くスクリプトが実行できないのかな?と思ってみたりもしてます AppleScriptが起動している時や2回目3回目だと上手く起動します PCを再起動した直後や長時間放置した後などは上手く起動しません よろしくお願いします

    • ベストアンサー
    • Mac
  • エクセルのマクロでセルに数式を入れる場合で絶対参照の中に【""】を使いたい。

    エクセルのマクロで、セルに数式を入れようとしてます。 数値を入れる場合はValue、数式を入れる場合はFormulaになると思うのですが、以下のように Range("A1").Formula = "=IF(A2=1,1,0)" とすれば問題ないのですが、 Range("A1").Formula = "=IF(A2=1,"○","×")" とした場合は、○の前のダブルクォーテーションを認識してしまうのか、実行エラーが出てしまいます。 こういう時は、どうすればうまく行きますか?

  • Excel2007 VBAで数式がうまく入力が出来ません。

    Excel2007 VBAで数式がうまく入力が出来ません。 数式を、"=IF(AA7=0,"     ---",Z7/AA7)"     " "内には半角スペース4コ 半角マイナス3コ      と入力したいのですが、以下のように自動的に入力されてしまい、マクロ実行時に、エラーとなってしまい、ストップしてしまいます。 解消方法を教えて下さい。 VBEで入力しても、以下のように自動的に修正されてしまいます。   Range("AB7").Formula = "=IF(AA7=0," - --",Z7/AA7)"

  • AppleScriptがエラーになる

    osx10.8.4  AppleScriptエディタ2.5.1 にて以下の内容でFileMaker11へテキストデータを貼付けようとしましたところ ----------------------- set dbName to "test.fp7" tell application "FileMaker Pro Advanced" activate tell database dbName set contents of field "myText" to "ABC" end tell end tell ----------------------- error "FileMaker Pro Advanced でエラーが起きました:オブジェクトが見つかりません。 ----------------------- とのエラーが出ました。 ちなみにosx10.6.8 AppleScriptエディタ2.3ではテキストは読み込まれます。 osx10.8.4 の仕様が変わったのでしょうか 2・3日前にosのバージョンアップをしましたがそれが関係していたのでしょうか。 どなたかご存知の方がおられましたらご教授下さい。

    • ベストアンサー
    • Mac
  • Excelの数式について教えてください。

    =IF(AND($A7="",$I7="",),"",IF($X7=$AA$13,IF(AND(NOT($A7=""),NOT($I7="")),$H7+$P7,IF($X7=$AA$13,IF(NOT($A7=""),$H7,IF($X7=$AA$13,IF(NOT($I7=""),$P7))))))) 何とか上記の数式を作ったのですが、 (X列、AA列は色々な店名が入力されています。)X列の店名が、AA列の店名に合致すると、正常に計算されますが、合致しないと"FALSE"が表示されます。 合致しない場合は、"FALSE"でなくセルを空白表示にしたいのでが、数式を教えてください。 Excel2003 セルの書式設定:X列、AA列は標準、他の列は数値です。この式はQ列に入力されています。 よろしくお願いいたします。

  • AppleScriptでiCalを動かしてみたが

    以前に下記のようなAppleScriptがネット上に有りましたが(1999年12月28日) ----------------------------------------------実行 set dSta to my date "2013年6月4日火曜日 0:00:00" set dEnd to my date "2013年6月4日火曜日 16:00:00" -- 検索するカレンダー名 set calName to "仕事" -- 結果を格納する変数 set copyText to "" tell application "Calendar" set theList to every event of calendar calName whose (start date ≥ dSta) and (end date ≤ dEnd) repeat with x in theList set aDate to (start date of x) set copyText to copyText & (aDate as text) & tab & summary of x & (ASCII character 10) end repeat end tell -- 結果をクリップボードにコピー set copyText2 to my Sortsc(copyText) set the clipboard to copyText2 on Sortsc(aData) do shell script "echo " & quoted form of aData & " | sort -d" end Sortsc ------------------------------------------------------------- 今回これを利用したい思い osx10.8 applescript エディタ2.5.1にて起動してみようとしましたが下記のような不思議な現象がでました。 set dSta to my date "2013年6月4日火曜日 0:00:00" set dEnd to my date "2013年6月4日火曜日 16:00:00" としていますが date "1999年12月28日火曜日 0:00:00" and end date ≤ date "1999年12月28日火曜日 16:00:00" となってしまった。 なぜそうなったのかが分かりません。 どなたかご存知のお方がおられましたらご教授いただきたいのですが。 -----------------------------------返された値 tell application "Calendar" get every event of calendar "仕事" whose start date ≥ date "1999年12月28日火曜日 0:00:00" and end date ≤ date "1999年12月28日火曜日 16:00:00" --> {} end tell tell current application do shell script "echo '' | sort -d" --> "" end tell tell application "AppleScript Editor" set the clipboard to "" end tell ------------------------------------------------------------- 因にosx10.6 AppleScript2.3にはきちんと返された値は内容が取得されています。

    • ベストアンサー
    • Mac
  • Excelのセルに数式を生かしつつ、データを埋込

    Excel2007を利用しているのですが、 数式を利用しつつ、データを書き込むことってできますでしょうか? 例えば、A1セルに =IF(A1>200,"●",A1) のような数式を予め設定しておき、 他の人が数式が入っていることを意識せずに、データを500と入力したら、 500がそのまま表示され、150とか入力すると、●が表示されるようなことが したいのです。 よろしくお願い致します。