あなたの習慣について教えてください!!

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

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

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

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

A 回答 (4件)

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



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

ブックを開かないでリンクで関連付ける事ができます。


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

参考URL:http://support.microsoft.com/default.aspx?scid=h …
    • good
    • 0

先日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は開かれていませんし、閉じたようでもありませんでした。
    • good
    • 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
    • good
    • 9

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A