- ベストアンサー
ワークシート関数にVBAでセルを指定するには?
FormulaR1C1ではなく Range形式でVBAでワークシート関数をセルにいれるコードを書くにはどうすればいいでしょう? Sub Macro() ActiveCell.FormulaR1C1 = "=LEN(RC[-1])" End Sub これを Sub Macro() ActiveCell.FormulaR1C1 = "=LEN(a1)" End Sub こうすると、 数式バーには、=LEN('a1')と入っており、 セルの値は#NAME? になります。 アポストロフィーが余計なのですがどうすれば取れますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
余り、Rangeプロパティに拘らなくてもよいと思います。 単にActiveCell = "=LEN(A1)" や ActiveCell = "=LEN(r1c1)" で十分です。 Formula、FormulaR1C1を付けなくてもエクセルが左辺が数式(=付き)ならば自動認識して格納先のプロパティ部に設定してくれます。
その他の回答 (2)
- WindFaller
- ベストアンサー率57% (465/803)
#1さんの回答がVBAのコードとして正解です。 ActiveCell.FormulaR1C1 というのは、R1C1方式で、右辺を書いてください、という意味ですから、 ActiveCell.FormulaR1C1 = "=LEN(a1)" R1C1方式に、A1方式の数式を入れようとしても、R1C1方式では、存在しないセルの情報ですから、'a1'となります。 ちなみに、ActiveCell.Formula は、A1方式でも、R1C1方式でも、どちらでも代入が可能ですから、ヘルプの内容が間違っているかもしれません。 ただ、場合によってFormulaLocal も必要になることがありますから、それらの違いは、一度ヘルプで調べてみてください。
お礼
ありがとうございます。
- xls88
- ベストアンサー率56% (669/1189)
A1参照形式の場合はFormulaプロパティになります。 ActiveCell.Formula = "=LEN(a1)"
お礼
ありがとうございます。
お礼
ありがとうございます。