[[20160516100126]] 『閉じたブックからデータを引っ張る』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『閉じたブックからデータを引っ張る』(初心者)

閉じたブックからデータを引っ張ってくることをしたくて、
下記、サイトまで行き着きました。

https://www.moug.net/tech/exvba/0060037.html

Sub Sample2()

    Dim i As Long, j As Long
    For i = 1 To 10
        For j = 1 To 4
            Cells(i, j) = _
                ExecuteExcel4Macro("'C:\[Book1.xls]Sheet1'!R" & i & "C" & j)
        Next j
    Next i
End Sub

このコードで確かにデータを引っ張って来れるのですが、
一回づつ、どのファイルかをダイアログで聞いてきますので、
完全自動化となりません。

ファイルは指定していますので、ダイアログで聞いてこず、
処理をしたいのですが、何か方法はありますか?
DISPLAY ALERTSをfalseにしたら、引っ張ってきたデータは「#REF!」となりました。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


いちいちファイル確認してくるということは、ファイル名のフルパスが間違っているのだと思います。
それよりも、1セルずつ代入しているのが無駄に思うので、以下のマクロではいかがでしょうか?

 Sub test()
    With Workbooks.Open("c:\book1.xlsx", False, True)
        Range("A1:D10").Value = .Sheets("Sheet1").Range("A1:D10").Value
        .Close False
    End With
 End Sub
(???) 2016/05/16(月) 10:37

???様
ありがとうございます。
上記試してみましたが、
("c:\book1.xlsx", False, True)のように記載すると途中でエラーになってしまい、
("c:\Users\abc\Desktop\book1.xlsx", False, True)のように書くとエラーにはなりませんが、
データは空白であり、引っ張って来れていません。
どのような理由でしょうか?
ファイルはデスクトップに置いていますが・・・
お手数ですが、ご教授をお願いします

(初心者) 2016/05/16(月) 11:27


先のコードは、シートモジュールに貼り付ける事を前提としたものです。
(ActiveXのボタンを押すと動く、とかならば、その方が都合良いもので)

標準モジュールであれば、以下を使ってみてください。

 Sub test()
    Dim wkSheet As Worksheet

    Set wkSheet = ActiveSheet
    With Workbooks.Open("c:\Users\abc\Desktop\book1.xlsx", False, True)
        wkSheet.Range("A1:D10").Value = .Sheets("Sheet1").Range("A1:D10").Value
        .Close False
    End With
 End Sub
(???) 2016/05/16(月) 11:58

???様

大変ありがとうございました。
解決しました!
(初心者) 2016/05/16(月) 13:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.