当サイトでは「会計事務所による寄稿記事」を募集しています。
事務所の強み・専門性・成功事例を、経営者や担当者に直接アピール!
記事の末尾には【事務所プロフィール枠】を設け、ロゴ・得意分野・連絡先などを掲載できます。

-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をコピーしました