-PR-
  • 困ってます
  • 2008-03-11 15:46:13
  • 質問No.3853201
解決
済み

Q エクセルVBA 他のファイルからデータをコピー

  • 閲覧数4948
  • ありがとう数3
  • 気になる数0
  • 回答数4
  • コメント数0
noname#91219

エクセルVBAについて質問があります。お詳しい方、ご教授頂ければ幸いです。
A,B2つのエクセルのファイルがあります。例えばファイルAのセル「A10」から下を、(ファイルBを開かずに)ファイルBのセル「A10」から下のデータに置き換えたいのですが、どのようにすれば良いでしょうか。
また、ファイルAから「ファイルを開く」ダイアローグを表示させてファイルBを指定したいのですが、この場合の方法もよろしければ教えて頂けませんでしょうか。
よろしくお願いいたします。
  • 回答数4
  • 気になる数0
  • Aみんなの回答(全4件)

    質問者が選んだベストアンサー

    • 2008-03-11 21:49:43
    • 回答No.3
    #2です。少し修正します。

    Sub test02()
    Dim fn As String
    Dim wb As Workbook
    fn = Application.GetOpenFilename("エクセル ファイル (*.xls), *.xls")
    With ThisWorkbook.Sheets("Sheet1")
    .Range(Range("A10"), Range("A10").End(xlDown)).ClearContents
    End With
    If fn = "False" Then
    MsgBox "キャンセルしました。"
    Exit Sub
    End If
    Application.ScreenUpdating = False
    Set wb = Workbooks.Open(Filename:=fn)
    With wb.Sheets("Sheet1")
    .Range(Range("A10"), Range("A10").End(xlDown)).Copy
    ThisWorkbook.Sheets("Sheet1").Range("A10").PasteSpecial
    Application.CutCopyMode = False
    End With
    wb.Close (False)
    Set wb = Nothing
    Application.ScreenUpdating = True
    End Sub
    • ありがとう数0
    -PR-
    -PR-

    その他の回答 (全3件)

    • 2008-03-12 09:39:49
    • 回答No.4
    #3です。 昨日は眠かったのか、今見直すと不備な点が散見されました。 書き直します。 Sub test03() Dim fn As String Dim wb As Workbook fn = Application.GetOpenFilename("エクセル ファイル (*.xls), *.xls") With ThisWorkbook.Sheets("S ...続きを読む
    #3です。
    昨日は眠かったのか、今見直すと不備な点が散見されました。
    書き直します。

    Sub test03()
    Dim fn As String
    Dim wb As Workbook
    fn = Application.GetOpenFilename("エクセル ファイル (*.xls), *.xls")
    With ThisWorkbook.Sheets("Sheet1") 'このBOOKのSheet1において
    .Range(.Range("A10"), .Range("A10").End(xlDown)).ClearContents 'A10以下の連続したデータを消去
    End With
    If fn = "False" Then
    MsgBox "キャンセルしました。"
    Exit Sub
    End If
    Application.ScreenUpdating = False '画面更新を止める
    Application.EnableEvents = False '自動マクロを止める
    Set wb = Workbooks.Open(Filename:=fn, UpdateLinks:=1) '警告を出さずリンクを更新して開きwbとする
    '(UpdateLinks:=0 にすると、リンクを更新せずに開きます。)
    With wb.Sheets("Sheet1") 'wbのSheet1において
    .Range(.Range("A10"), .Range("A10").End(xlDown)).Copy 'A10以下の連続したデータをCopy
    ThisWorkbook.Sheets("Sheet1").Range("A10").PasteSpecial 'このBOOKのA10以下に貼り付け
    Application.CutCopyMode = False 'コピーモード終了
    End With
    wb.Close (False) '警告を出さず保存しないでwbを終了
    Application.EnableEvents = True '自動マクロを有効へ
    Set wb = Nothing
    Application.ScreenUpdating = True '画面更新
    End Sub
    お礼コメント
    noname#91219

    大変お礼が遅くなり申し訳ありません。
    皆様のおかげで、大変勉強になりました。本当にありがとうございます。
    投稿日時 - 2008-05-01 22:22:23
    • ありがとう数0
    • 2008-03-11 16:07:42
    • 回答No.1
    後者の回答です。 FileFoOpen = Application.GetOpenFilename("エクセル ファイル (*.xls), *.xls")
    後者の回答です。

    FileFoOpen = Application.GetOpenFilename("エクセル ファイル (*.xls), *.xls")
    • ありがとう数0
    • 2008-03-11 21:38:40
    • 回答No.2
    ファイルAから「ファイルを開く」ダイアローグを表示させてファイルBを指定し、ファイルAのセル「A10」から下をファイルBのセル「A10」から下のデータに置き換えるサンプルです。 ファイルBを開かずとのリクエストですが、開いているところを見せないようにはしています。 Sheet名に言及がなかったのでABともにSheet1としています。 Sub test01() Dim fn As Str ...続きを読む
    ファイルAから「ファイルを開く」ダイアローグを表示させてファイルBを指定し、ファイルAのセル「A10」から下をファイルBのセル「A10」から下のデータに置き換えるサンプルです。
    ファイルBを開かずとのリクエストですが、開いているところを見せないようにはしています。
    Sheet名に言及がなかったのでABともにSheet1としています。

    Sub test01()
    Dim fn As String
    Dim wb As Workbook
    fn = Application.GetOpenFilename("エクセル ファイル (*.xls), *.xls")
    With ThisWorkbook.Sheets("Sheet1")
    .Range(Range("A10"), Range("A10").End(xlDown)).ClearContents
    End With
    If fn = "False" Then
    MsgBox "キャンセルしました。"
    Exit Sub
    End If
    Application.ScreenUpdating = False
    Set wb = Workbooks.Open(Filename:=fn)
    With wb.Sheets("Sheet1")
    .Range(Range("A10"), Range("A10").End(xlDown)).Copy
    ThisWorkbook.Sheets("Sheet1").Range("A10").PasteSpecial
    End With
    wb.Close
    Set wb = Nothing
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    End Sub
    • ありがとう数0
    • 回答数4
    • 気になる数0
    • ありがとう数2
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    このやり方知ってる!同じこと困ったことある。経験を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    関連するQ&A

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ