こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】

よろしくお願いします。
今あるブックにあるシートを別のブックにコピーしたいのですが、今考えているのは

ここから////////
'ブックを開く
Workbooks.Open コピー元のブックのパス
'シートをコピー
Worksheets.Item(コピーするシート名).Copy _
after:=Workbooks(コピー先のブック名).Sheets(1)

'ブックを閉じる
Application.DisplayAlerts = False
Workbooks.Item(コピー元のブック名)Close True
Application.DisplayAlerts = True
ここまで////

なのですが、コピーものとのブックが複数ある時、画面がチラチラしてしまいます。ブックをオープンさせずにシートを他ブックにコピーさせる方法ってないでしょうか。
ご存知の方がいらっしゃいましたら、ご教授お願いします。

投稿日時 - 2004-12-15 09:39:33

QNo.1127749

すぐに回答ほしいです

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

画面のチラツキを押さえたいだけなら、画面の更新をやめればいいだけじゃないでしょうか?

ブックを開く前に
Application.ScreenUpdating = False
ブック閉じてから
Application.ScreenUpdating = True

投稿日時 - 2004-12-15 10:15:03

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

ブックを開かないでリンクで関連付ける事ができます。
下記のリンクは
「ファイルにアクセスできなくなった場合の原因と対策」
ですが対策3が参考になると思います。

参考URL:http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/japan/support/kb/articles/JP411/6/36.asp

投稿日時 - 2004-12-15 16:37:13

ANo.3

先日Application.ExecuteExcel4Macro の質問があり
それを思い出して、旧い時代のステートメンを使うことになりますが
Sub test01()
For i = 1 To 10
Cells(i, 1) = Application.ExecuteExcel4Macro _
("'C:\My Documents\[aaa14.xls]売上げ1'!R" & i & "C2")
Next i
End Sub
をやって見ると上手く行きました。
やった内容は
(1)CドライブのMy Documentsフォルダ内の
aaa14.xlsと言うエクセルファイルをターゲットにして
(2)「売上げ1」というシート名のシート(必ずしもSheets(1)ではない)の
(3)C2--->B列のデータ(値)を
いま開いている新規ブックBook1のシート(Sheet1)の
A1:A10にもって来れました。
ブックaaa14.xlsは開かれていませんし、閉じたようでもありませんでした。

投稿日時 - 2004-12-15 14:03:24

ANo.1

EXCEL VBA で "excel.application"ってのも
妙な話ですが使えないわけではないので、
他に良い回答がなかったら使って下さい。


Dim xlapp As Variant
Dim bk As Variant

Set xlapp = CreateObject("excel.application")
xlapp.Visible = False ' ★この命令で、見えない状態でブックを開くことができる★
Set bk = xlapp.Workbooks.Open(コピー元のブックのパス)
     :
     :
この開いたブックにアクセスするには、全てのEXCEL命令の頭に xlapp. をつければよい。

例: xlapp.Workbooks.Open
xlapp.cells("A1")


     :
     :
xlapp.Quit
Set xlapp = Nothing

投稿日時 - 2004-12-15 10:02:50

あなたにオススメの質問