-ChatGPT-4で「VBAでファイルダイアログでファイルを開きます。セルの範囲を選択します。そして、もう一回ファイルダイアログを使って別のファイルを選択します。その別のファイルのセルを選択するとセルの範囲をコピペして」と頼んだら

-ChatGPT-

-ChatGPT-4の回答

Option Explicit

Sub CopyRangeBetweenFiles()
    Dim SourceWorkbook As Workbook
    Dim TargetWorkbook As Workbook
    Dim SourceRange As Range
    Dim TargetRange As Range
    Dim FileDialog As FileDialog

    ' ソースファイルを開く
    Set FileDialog = Application.FileDialog(msoFileDialogOpen)
    With FileDialog
        .Title = "ソースファイルを選択"
        .AllowMultiSelect = False
        If .Show = -1 Then
            Set SourceWorkbook = Workbooks.Open(.SelectedItems(1))
        Else
            Exit Sub
        End If
    End With

    ' ソースファイルで範囲を選択
    On Error Resume Next
    Set SourceRange = Application.InputBox("範囲を選択してください", Type:=8)
    On Error GoTo 0
    If SourceRange Is Nothing Then
        SourceWorkbook.Close
        Exit Sub
    End If

    ' ターゲットファイルを開く
    Set FileDialog = Application.FileDialog(msoFileDialogOpen)
    With FileDialog
        .Title = "ターゲットファイルを選択"
        .AllowMultiSelect = False
        If .Show = -1 Then
            Set TargetWorkbook = Workbooks.Open(.SelectedItems(1))
        Else
            SourceWorkbook.Close
            Exit Sub
        End If
    End With

    ' ターゲットファイルで範囲を選択
    On Error Resume Next
    Set TargetRange = Application.InputBox("範囲を選択してください", Type:=8)
    On Error GoTo 0
    If TargetRange Is Nothing Then
        SourceWorkbook.Close
        TargetWorkbook.Close
        Exit Sub
    End If

    ' セルの範囲をコピー&ペースト
    SourceRange.Copy TargetRange

    ' ワークブックを閉じる
    SourceWorkbook.Close SaveChanges:=False
    TargetWorkbook.Close SaveChanges:=True
End Sub
タイトルとURLをコピーしました