• ベストアンサー

ワークシート関数にVBAでセルを指定するには?

FormulaR1C1ではなく Range形式でVBAでワークシート関数をセルにいれるコードを書くにはどうすればいいでしょう? Sub Macro() ActiveCell.FormulaR1C1 = "=LEN(RC[-1])" End Sub これを Sub Macro() ActiveCell.FormulaR1C1 = "=LEN(a1)" End Sub こうすると、 数式バーには、=LEN('a1')と入っており、 セルの値は#NAME? になります。 アポストロフィーが余計なのですがどうすれば取れますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

余り、Rangeプロパティに拘らなくてもよいと思います。 単にActiveCell = "=LEN(A1)" や ActiveCell = "=LEN(r1c1)" で十分です。 Formula、FormulaR1C1を付けなくてもエクセルが左辺が数式(=付き)ならば自動認識して格納先のプロパティ部に設定してくれます。

xiqixtoggw1
質問者

お礼

ありがとうございます。

その他の回答 (2)

回答No.2

#1さんの回答がVBAのコードとして正解です。 ActiveCell.FormulaR1C1 というのは、R1C1方式で、右辺を書いてください、という意味ですから、 ActiveCell.FormulaR1C1 = "=LEN(a1)" R1C1方式に、A1方式の数式を入れようとしても、R1C1方式では、存在しないセルの情報ですから、'a1'となります。 ちなみに、ActiveCell.Formula は、A1方式でも、R1C1方式でも、どちらでも代入が可能ですから、ヘルプの内容が間違っているかもしれません。 ただ、場合によってFormulaLocal も必要になることがありますから、それらの違いは、一度ヘルプで調べてみてください。

xiqixtoggw1
質問者

お礼

ありがとうございます。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

A1参照形式の場合はFormulaプロパティになります。 ActiveCell.Formula = "=LEN(a1)"

xiqixtoggw1
質問者

お礼

ありがとうございます。

関連するQ&A