Office2003におけるクリップボードについて。

例えば、ExcelのVBAマクロでテキストのコピー&ペーストを実行中に、他のアプリ-Word等-で、コピー&ペーストを行うとクリップボードの内容が壊れたり、意図しないものが貼り付けられたりすると思います。
このような現象を回避できる方法はございますか?
対象とするOSは、WindowsXP SP2です。
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/10/21 23:22:53
  • 終了:2009/10/27 08:15:55

ベストアンサー

id:HALSPECIAL No.1

HALSPECIAL回答回数407ベストアンサー獲得回数862009/10/22 01:57:42

ポイント60pt

例えばですが、

次のサンプルは10秒間の間、クリップボードを開いて他のアプリケーションからクリップボードの内容が変更できないようにしています。


Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long

Sub Test()
    Dim i As Integer
    Debug.Print "start:" & Now
    If OpenClipboard(ByVal 0&) Then
        For i = 1 To 50
            Sleep (200)
            DoEvents
        Next i
        CloseClipboard
    End If
    Debug.Print "end"
End Sub

その他の方法

未確認ですが、クリップボードの内容を変数やファイルに退避しておき、のちに書き戻すという方法も考えられます。(テキストとかビットマップとか、その程度だったら楽かと)

id:memamii

ご回答ありがとうございます

その手でいこうかと思います

ワークシートとかも変数待避できればいいんですけどね…

2009/10/27 08:14:27
  • id:sanome
    2003のエクセル&Accessから2007に移行しようとすると泣きを見ます。
    すいません。まだ泣いています。
    まさか「Office クリップボードを非表示にする 」 にしてませんよね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません