• 締切済み

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,)

みんなの回答

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