フォルダーの中のExcelBookをセルに表示して、任意で選んだExcelBookの中から設定したセル範囲のデータをコピーするシステム。
Option Explicit
'チェックボックスによる初期設定
Sub InitialSetting_Click()
'エラーを非表示
On Error Resume Next
Dim i As Integer
Dim FILE_PATH As String
Dim FSO As Object
Dim TARGET As Files
Dim TEMP As Object
'シート設定
Dim ws1 As Worksheet
Set ws1 = Worksheets("設定1")
Dim ws2 As Worksheet
Set ws2 = Worksheets("設定2")
' チェックが入っているかどうかで処理を変更する
' ONの場合
If ws1.CheckBoxes(1).Value = xlOn Then
FILE_PATH = ws1.Range("B3").Value
'3行目からファイル名を記載します。
i = 6
Set FSO = New FileSystemObject
Set TARGET = FSO.GetFolder(Range("B3").Value).Files
For Each TEMP In TARGET
ws1.Cells(i, 2) = TEMP.Name
i = i + 1
Next
' OFFの場合
Else
ws1.Range("B6:B10").Value = ""
ws1.Range("D6").Value = ""
ws1.Range("F6").Value = ""
ws2.Columns(3).Clear
ws2.Columns(4).Clear
MsgBox ("設定をOFFにしました。")
End If
End Sub
'設定を開始
Sub InitialStart()
'エラーを非表示
On Error Resume Next
Dim i As Long
'シート設定
Dim ws1 As Worksheet
Set ws1 = Worksheets("設定1")
Dim ws2 As Worksheet
Set ws2 = Worksheets("設定2")
'Sheet1のデータをSheet2にコピー
ws2.Range("A2").Value = ws1.Range("B3").Value
'Sheet1のデータをSheet2にコピー
ws2.Range("C2").Value = ws1.Range("D6").Value
'複数のセルデータを繋げてI列に出力
For i = 1 To 13
ws2.Cells(i, 4) = WorksheetFunction.Concat(Range(ws2.Cells(i, 1), ws2.Cells(i, 3)))
Next
End Sub
'ExcelBookを開く
Sub WorkbookOpen()
'エラーを非表示
On Error Resume Next
Dim buf As String
Dim cnt As Long
Dim D As Variant
Dim E As Variant
'シート設定
Dim ws1 As Worksheet
Set ws1 = Worksheets("設定1")
Dim ws2 As Worksheet
Set ws2 = Worksheets("設定2")
'フォルダ指定
Dim FolderPath As String
FolderPath = ws2.Range("D2").Value
'ExcelBookを開く
Workbooks.Open (ws2.Range("D2").Value)
'Sheetの範囲の指定
D = ws1.Range("D9") 'シート名を変数に入力
'変数を使って、シートを選択
Sheets(D).Select
'セル範囲の指定
E = ws1.Range("F6") 'シート名を変数に入力
'変数を使って、シートを選択
Range(E).Select
End Sub