• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVbaで最終行まで数式をループ入力)

エクセルVbaで最終行まで数式をループ入力

このQ&Aのポイント
  • エクセルVba初心者の方が、最終行まで数式をループ入力する方法を学びたいです。
  • 今回の質問は、エクセルでの作業をVBAで自動化したいということです。
  • 質問者が試したコードにはエラーが出ていますが、どこが間違っているのか教えてほしいです。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1746/2622)
回答No.2

No1です。 あと気が付いたのは、同じループを2回しているので1回にまとめたらいいのではないかと思います。 Function NameNumber() Dim n As Long, name As Long n = Cells(Rows.Count, "D").End(xlUp).Row For name = 2 To n Cells(name, "E").FormulaR1C1 = "=RC3 & "" "" & RC4" Cells(name, "F").Value = 1 Next name End Function

verite1
質問者

お礼

ありがとうございました、こちらのコードでうまくいきました!現在の私の知識をもって一番わかりやすい回答をしてくださったのでベストアンサーとさせていただきます。非常に助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.4

こんにちは 戻り値が無いならSubプロシージャでいいのでは? Sub NameNumber()   Dim n As Long   n = Cells(Rows.Count, "D").End(xlUp).Row   With Range("E2:E" & n)     .Formula = "=C2&"" ""&D2"     .Offset(, 1).Value = 1   End With End Sub

verite1
質問者

お礼

ありがとうございます。この式が戻り値がない式というところがまだよくわかっておりませんで、これからさらに勉強していきたいと思います。しかしこれが戻り値がない式だということ、With Rangeや .Offsetの書き方など非常に勉強になりました。ご回答ありがとうございます。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1746/2622)
回答No.3

No1No2です。蛇足です。 数式をR1C1形式で指定したい場合、実際の数式をセルに記載して(今回の場合はE2に=$C2&" "&$D2と入力)結果が正しいことが確認してください。 その後、マクロの記録を実行してE2をダブルクリックし、数式が表示されたらそのままエンターして、その後記録を終了すると、標準モジュールにR1C1形式の数式が記録されますので、それを実際のコードにコピペしたほうが楽ですし間違いないと思います。 また、変数名はForなどに使う変数はiとか使われることがあります(今回も1回のループで良かったのでしたらFor i=2で良かったとも思えます)が、今回のnなどは一文字ではなくその内容がわかる文字列にした方がいいのではないかと思います。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1746/2622)
回答No.1

n = Cells(Rows.Count, "D").End(xlUp).Row と Cells(Name, "E").FormulaR1C1 = "=RC3 & "" "" & RC4" です。 Dim n As Long も最初に付け加えてください。

すると、全ての回答が全文表示されます。

関連するQ&A