大量のデータを扱うExcelで、既存の文字が入力されているセルを上書きせずに別の列からデータをコピーする場合、マクロを使うと効率的です。ここではA列のデータをD列の空白セルだけに貼り付ける方法をご紹介します。
マクロの基本方針
D列の各セルを順番にチェックし、空白ならA列の対応するセルの値をコピー、文字が入っていれば何もしない、という処理を繰り返します。これにより既存のデータを保持しつつ、空白セルにだけデータを入れることが可能です。
サンプルマクロコード
Sub CopyToEmptyCells()
Dim i As Long
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
If IsEmpty(Cells(i, "D")) Then
Cells(i, "D").Value = Cells(i, "A").Value
End If
Next i
End Sub
コードの解説
まずA列の最終行を取得し、その行までループを回します。ループ内でD列のセルが空白かどうかをIsEmpty関数で確認し、空白の場合のみA列の値を代入します。文字が入力されているセルには何もせずスキップされます。
注意点
データが大量(例えば30万行)になる場合、処理に時間がかかることがあります。その場合は計算や画面更新を一時停止してマクロを実行すると高速化できます。また、事前にファイルのバックアップを取ることをおすすめします。
まとめ
Excelのマクロを使うことで、既存データを保持しつつ空白セルにだけ別列のデータを自動で貼り付けることが可能です。大量データの処理も効率的に行えるので、手作業でのコピーよりも安全かつ速く作業できます。


コメント