複数のCSVから、特定範囲のセルを、1つのワークシートにコピー/ペーストする方法

◆概要
複数のCSVから、特定範囲のセルを、1つのワークシートにコピー/ペーストする
VBAのコードを記載する。

◆VBAの機能
1.Alt + F8 → 実行 で、VBA実行。
1.ファイル選択画面が出る。内容をコピー/ペーストしたいCSVが
 複数選択できる。
2.選択した全てのCSV内のセルB13~B20の範囲が
 コピーされ、新しく生成されたシート「Data」の
 B3,C3,D3,E3・・・に順番にペーストされる。
3.CSVが閉じられる。

 f:id:tcell:20210806164314p:plain



◆コード___________________________________________________________________________
Sub csvcpy()

'0.VBAで使用する変数の定義
Dim PathGet As Variant
Dim DataSheet As Worksheet 'DataSheet = コピー元のファイル(csvファイル)
Dim NewSheet As Worksheet 'NewSheet = ペースト先のシート(シート"VF")
Dim SheetName As String

'1.CSVファイルの選択画面を出す
PathGet = Application.GetOpenFilename( _
FileFilter:="CSVファイル(*.csv),*.csv", _
Title:="CSVファイルの選択", MultiSelect:=True)

'2.ファイルパスが取得できない場合→処理終了
  If IsArray(PathGet) = False Then
    Exit Sub
  End If

'3.ファイルパスが取得できた場合→メイン処理に進む
  '3-1.ペースト先のシートを準備
  Set NewSheet = Worksheets.Add() '新しいワークシートを生成
  NewSheet.Name = "Data" 'ワークシート名にDataと記入
  C1 = 2

  '3-2.選択したCSVファイルを開く
  If IsArray(PathGet) Then
    For Each Filename In PathGet
    SheetName = Dir(Filename)
    Workbooks.Open Filename:=Filename
    Set DataSheet = ActiveSheet

  '3-3.CSVのコピー範囲指定→コピー→ペースト
    DataSheet.Range(Cells(13, 2), Cells(20, 2)).Copy Destination:=NewSheet.Cells(3, C1)
    C1 = C1 + 1

  '3-4.CSVを閉じる
    ActiveWorkbook.Close SaveChanges:=False

  '3-5.次のCSVの処理に移る(3-2~繰り返し)
    Next

  End If

End Sub
____________________________________________________________________________________

◆コピー範囲の変更
 ・範囲の頭:Cells(13,2)がコピー範囲の頭の位置。
       ここを、任意のセルに変えればよい。
 ・範囲の末尾:Cells(20,2)がコピー範囲の頭の位置。
        ここを、任意のセルに変えればよい。
       ※Cells(13,2)=13行目,2列目のセル=セルB13なので、
           セルD13にしたければ、Cells(13,4)にする。
   セルB8にしたければ、Cells(8,2)にする。

◆ペースト位置の変更
 ・ペースト先は、ctrl + Vでのペーストと同じく、
  先頭のセルのみ指定している。
  Cells(3, C1)がペースト先の位置なので、ここを
  任意のセルに変えればよい。