まずは、以下をご覧ください。
セルC2に入力されている数式をVBAで最下行までコピーするコードです。
関数を最下行までコピーするコード
関数を下までコピーするときって、関数をコピーして、値貼り付けまでしませんか? わたしはよくサイズ軽くするために値貼り付けまでするのですが、VBAでも再現しています
Sub 関数を下までコピーする() ' 描画開始 Application.ScreenUpdating = False Dim ws As Worksheet Dim endRow As Long ' シート名の指定 Set ws = ThisWorkbook.Worksheets("Sheet1") ' 最下行の取得 endRow = ws.Cells(Rows.Count, 2).End(xlUp).Row ' 関数の入力 ws.Range("C2:C" & endRow).Formula = "=LEFT(B2,FIND("" "",B2)-1)" ' 値貼り付け ws.Range("C2:C" & endRow).Value = ws.Range("C2:C" & endRow).Value ' 描画再開 Application.ScreenUpdating = True End Sub
コードの解説
最下行の取得
最下行の取得は一番下までデータが入っていると思わしき列の番号を選択します。 ここでは、B列の氏名は必ず入っているという前提で、B列=2(列目)を指定しています。
関数の入力
メインですよね!ポイントが二つあります! 1.”C2:C”と記載がある部分はC2からCの最後の行までデータを埋めるという意味合いなので、任意で範囲指定しましょう! 2.ダブルクォーテーションは一つ余計につけましょう!
値貼り付け
VBAの値貼り付けって、いくつか方法があるのですが、わたしが一番簡単だと思う方法を記載しています! これは、関数を入力した範囲の値(Value)を全く同じ範囲に値(Value)で貼り付けているというコードです。 このやり方が一番簡単で、速いのでお勧めです!!
さいごに
実行した結果、C3~C11まで数式を埋めることができました!簡単!
重要なポイントを押さえつつ使ってみてください!
ではまた!