公報データを処理する場合、元の公報データから必要なデータをコビーし、コビーした公報データを編集するようにします。
コピーするには、行列数により範囲指定する方法と、列数を指定する方法と、個々のセルデータをコピーする方法があるが、ここでは最も汎用的な範囲指定でコピーする例を示す。
'変数を宣言
Dim SHEETNAME01 As String, SHEETNAME02 As String
Dim NY1 As Long, NX1 As Integer, NY2 As Long, NX2 As Integer
'シート名称設定
SHEETNAME01 = "対象公報"
SHEETNAME02 = "重複なしデータ"
'
'クリア
Worksheets(SHEETNAME02).Activate
Cells.Select
Selection.Delete Shift:=xlUp
'
'===================
'対象公報をコピーする
'===================
'処理範囲の行列数を取得
Sheets(SHEETNAME01).Select
Cells(1, 1).Select
ActiveCell.CurrentRegion.Select
NY1 = Selection.Rows.Count
NX1 = Selection.Columns.Count
'コピー
Range(Cells(1, 1), Cells(NY1, NX1)).Copy
Sheets(SHEETNAME02).Select
Cells(1, 1).Select
ActiveSheet.Paste
これにより、シート「対象公報」の公報データがシート「重複なしデータ」にコピーされる。
このサンプルでは公報データから重複公報や公報データ以外の行データを除き、以下の処理ではこのシート「重複なしデータ」の公報データを使用するようにしているが、左から10列のみコピーするのであれば、範囲指定を次のように変更すれば良い。
Range(Cells(1, 1), Cells(NY1, 10)).Copy
また、最初にシート「重複なしデータ」の全てのデータをクリアしているが、これは残っていたデータの一部が新たに書き込んでデータとつながってしまうと、以後のデータ処理で行列数を取得したときに過去のデータも含んだ行列数を取得してしまうという不都合を避けるためである。