VBAコード集

Visual Basic for Applications

フォルダー操作(ポートフォリオ)

フォルダーの中の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

次へ 投稿

前へ 投稿

返信する

© 2026 VBAコード集

テーマの著者 Anders Norén