質問: "=if(sheet2!a1= 0,"",sheet2!a1)" end sub と打つと動作しませんでした アプリケーションの定義またはオブジェクトの定義のエラーです と返ってきます。 いろいろやってみたのですが、なにせ勉強し始めで よくわかりませんでした。 教えてください よろしくお願いします
回答: 空白を意味しているダブルクォート "" の前置された一方が数式の終了と解釈されているからです。 ダブルクォートの入った文字列は、4つ並べることでダブルクォート自身が文字列の一部にあると認識されるので、 range("a1") = "=if(sheet2!a1= 0,""""""""",sheet2!a1)" ならうまく行くはずです。自宅pcの excel 2003 はこれで動作しました。 あと意識して数式扱いで入力したい場合は、 range("a1") = ... でなく range("a1").formula = ... を用いた方がいいでしょう。