ExcelでVBAを使ってセルに式を入力する場合、データ開始行がファイルごとに異なると、固定行での処理が困難です。この記事では、最初に入力があるセルのひとつ下の行から最終行までを自動で処理する方法を解説します。
最初に入力があるセルを特定する方法
データ開始行は変動する場合があるため、列Aなどの参照列で最初に入力があるセルを見つけることが重要です。VBAではEnd(xlUp)やFindメソッドを使用すると便利です。
例えば、列Aの最初のデータセルを取得するには。
Dim startRow As Long
startRow = Range(“A:A”).Find(“*”, LookIn:=xlValues, LookAt:=xlWhole).Row + 1
このstartRowがデータ入力開始の次の行になります。
最終行の取得と式の入力
最終行はEnd(xlUp)を使って列Aから取得します。例えば。
Dim lastRow As Long
lastRow = Cells(Rows.Count, “A”).End(xlUp).Row
取得した開始行と最終行を用いてF列に式を入力できます。
セル結合式を動的に設定する
式を動的に入力するには、FormulaR1C1プロパティを使うと便利です。例えば。
Range(“F” & startRow & “:F” & lastRow).FormulaR1C1 = “=RC[-5]&RC[-4]”
この方法なら、データ開始行が変動しても正しくA列とB列を結合してF列に表示できます。
まとめ
データ開始行が不定の場合は、FindやEnd(xlUp)を活用して最初の入力セルと最終行を取得し、FormulaR1C1を使って式を入力するのが有効です。これにより、ファイルごとに異なる見出し行でも自動で処理できるVBAコードが作成できます。


コメント