Excel 2003のVBAコードで、単に使用するのではなく、セルに数式を書き込むRange.Formula
ために使用する必要があるのはなぜでしょうか。どちらもフォーラムラになるセルに文字列を書き込み、数式は機能します(私がテストしたものから)。Range.Cell
ActiveCell.Value="=If(True,""yes"",""no"")"
と
ActiveCell.Formula="=If(True,""yes"",""no"")"
私のために同じことをします(セルを選択し、上記の各コードセグメントを別々のセルで別々に実行する場合)。どちらもセルに「yes」の値が表示され、クリックして各セルを表示すると数式が保存されます。
情報については、MicrosoftのDevCenterを調べました。
Range.Formula
Excel 2013のRange.Formulaプロパティ(Excel 2003にはこのプロパティのページがありませんでした)
Range.Value
Excel 2003のプロパティ(「Rangeオブジェクトに適用されるValueプロパティ」の見出しを展開します。
また、「Range.Value VBA Excelの代わりにRange.Formulaを使用する理由」をグーグルで検索しましたが、私の質問に関連するものは見つかりませんでした。
一部の人々は、使用すると言いRange.Value
ました。
他の何人かはスタックオーバーフローでの使用を言いますRange.Formula
(申し訳ありませんが、正確な質問への参照を失いました...)