• ベストアンサー

VBAのボタンで数式を入れる方法

VBA初心者です。 未特定の行のデータシートの行数を調べて、その行数分特定の列に関数を入れるようなVBAを作成中です。 現在、下記のようなコーディングをしているのですが、セルに入れるものが関数になった時点で分からなくなりました。 Private Sub CommandButton1_Click() Dim rs As Integer rs = Range("D2").End(xlDown).Row Dim Ka As Integer Ka = ' →ここに数式を入れる方法が分かりません! Range(Cells(2, 5), Cells(rw, 5)) = Ka Worksheets("Sheet2").Activate MsgBox ("成功" & rs) End Sub こんな感じなんですが、宜しくお願いします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

こんな感じでしょうか。 Private Sub CommandButton1_Click() Dim rs As Integer rs = Range("D2").End(xlDown).Row Dim Ka As String ’文字列にしました Dim rCot As Integer '行カウンタ For rCot = 2 To rs ’算式を作るためにループさせています '<例>E列にはC列の100倍とE列を加算の式を入れる場合 'E2=C2*100+D2 右辺の2が行数で変わるので変数にする。後は文字列の結合 Ka = "=C" & rCot & "*100+D" & rCot 'Rangeの中にCellsを持ち込むと分かりにくいのでOffsetにしました Range("D2").Offset(rCot - 2, 1).Formula = Ka Next Worksheets("Sheet2").Activate MsgBox ("成功" & rs) End Sub

rurucom
質問者

お礼

nishi6さん!ありがとうございました。いつもありがとうございます。 ちょっとエラーが出てしまいましたが、今回は理屈が理解できました。とりあえず成功しました。

その他の回答 (1)

  • ryotag
  • ベストアンサー率25% (1/4)
回答No.1

質問の意味を取り違えていたら、ごめんなさい。 Range(Cells(2, 5), Cells(rw, 5)) に、関数を入れたいのなら、 Range(Cells(2, 5), Cells(rw, 5)).Formula="=$A$1+$A$2" 見たいな感じにすれば、関数そのものが入ります。 後は、特定の列全体に関数を入れるように、for等を使えば、出来そうな気がします。 どうでしょう?

rurucom
質問者

お礼

ryotagさん!ありがとうございました。完璧です! 最後のメッセージボックス "成功" を無事に見れるとことが出来ました。

関連するQ&A

専門家に質問してみよう