5

アクセスデータベースから一連の写真をコピーしてディスクに保存する機能を使用しています。ただし、この関数はオフィスのクリップボードを使用しており、約 150 レコード後にクリップボードがいっぱいになり、プログラムがクラッシュします。クリップボードをクリアする方法は次のとおりです

Private Declare Function apiOpenClipboard Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long
Private Declare Function apiEmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long
Private Declare Function apiCloseClipboard Lib "user32" Alias "CloseClipboard" () As Long

Sub EmptyClipboard()
    Call apiOpenClipboard(0&)
    Call apiEmptyClipboard
    Call apiCloseClipboard
End Sub

クリップボードをより効果的にクリアする方法を知っている人

4

3 に答える 3

1

使用している関数は、Windows のクリップボードを参照しています。これはOffice クリップボードとは異なります

そのクリップボードをクリアするために私が見つけた唯一のコードは ですApplication.CommandBars("Clipboard").Controls(4).Executeが、オフィスのクリップボードを無効にしている (そして、どうやらそれを有効にする方法がない) ため、それが実際の解決策であるかどうかはわかりません

于 2013-01-21T14:47:59.937 に答える