ACCESS からEXCELブック間のコピー操作(クリップボード問題あり)

ACCESSからVBAでエクセルを操作するときに、それぞれのブックを開く必要があり、そこでCOPY と PASTESPECIAL メソッドを用いる。それを繰り返し処理する場合、「クリップボードに大きなデータが・・・」という旨のメッセージが必ず出て中断されるので、クリップボードを毎回クリアする必要がある。
それを実現しているのが下記のソースとなる。

冒頭に
Private Declare Function OpenClipboard Lib “user32” (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib “user32” () As Long
Private Declare Function CloseClipboard Lib “user32” () As Long

文中で

Do Until rs.EOF
fName = rs!ファイル名
fPath = foName & fName
wksTarget.Cells(2, i) = Left(fName, Len(fName) – 10)

xls.ScreenUpdating = False

Set wkb2 = Workbooks.Open(fPath)
wkb2.Worksheets(1).Range(“a1”).CurrentRegion.Select
Selection.Offset(1).Copy
wksTarget.Cells(4, i).PasteSpecial Paste:=xlPasteValues

‘クリップボードを空にする
If OpenClipboard(ByVal 0&) Then
Call EmptyClipboard
Call CloseClipboard
End If

wkb2.Close
xls.ScreenUpdating = True

rs.MoveNext

i = i + 2

Loop