プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります

クリップボードのクリアについてWebで調べてみると下記の二つのやり方があります


Application.CutCopyMode = False


Public Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
Public Declare PtrSafe Function CloseClipboard Lib "user32" () As Long

Sub ClearClipboard()
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
End Sub

後者はAutoCadで”COPYHIST"でコピーして読み込んだ後、
クリップボードをクリアするときに使っていますが
今さながら違いについて疑問を持ち、投稿させていただきました

①と②の違い、使い分け等について分かりましたら教えてください
以上、よろしくお願い申しあげます

A 回答 (1件)

1:Application.CutCopyMode = False:


VBA (Visual Basic for Applications) で使用される方法です。
このコードは、ExcelなどのOfficeアプリケーション内でクリップボードのコピー操作を終了するために使用されます。
例えば、データをコピーした後、このコードを実行することで、クリップボードの履歴がクリアされます。
一般的に、Officeアプリケーション内でのクリップボード操作に適しています。

2:Public Declare PtrSafe Function...:
Windows API を使用する方法です。
OpenClipboard、EmptyClipboard、CloseClipboard の3つの関数を使用しています。
VBAだけでなく、他のプログラムやスクリプトでも使用できます。
AutoCADのようなアプリケーションで、特定の操作(例:COPYHIST)の後にクリップボードをクリアする場合に適しています。

使い分けについて:

VBA を使用する場合は、Officeアプリケーション内での操作に限定されます。
Windows API を使用する場合は、他のアプリケーションやスクリプトでも利用できます。
どちらを選択するかは、具体的な状況と使用するアプリケーションによります。必要に応じて選択してください。
    • good
    • 0
この回答へのお礼

早速のご回答に感謝します
理解しました

本当にありがとうございました
これからもよろしくお願い申しあげます

お礼日時:2024/02/26 11:17

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

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


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