[[20110914223621]] 『マクロでクリップボードをクリアにしたい』(みるく) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロでクリップボードをクリアにしたい』(みるく)

Excel2003を使用しています。
エクセル以外をコピーし、エクセルに貼付後、クリップボードをクリアにしたいのですが、どこに何を入れたらクリアできるのかわかりません。宜しくお願い致します。

 Sub Macro2()
 On Error GoTo handleErr
 Cells.NumberFormatLocal = "@"
 Range("B2").Select
 ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
 False, NoHTMLFormatting:=True
 Exit Sub
 handleErr:
 MsgBox "コピーされていません"

また、クリップボードクリアは下記の1行だけでマクロを実行してもクリップボードに残ってしまいます。マクロ初心者なので、基本的に間違っているのだと思います。

Application.CommandBars("Clipboard").Controls(4).Execute


 Option Explicit
 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
 Sub kara()
    OpenClipboard 0
    EmptyClipboard
    CloseClipboard
 End Sub

 試してみてください

 ichinose


ichinose様早速教えていただきありがとうございます。
 教えて頂いたコードをコピペしてマクロを実行しましたが、クリップボードには残っています。
 「すべてクリア」ボタンをクリックした時のように消えてくれるといいのですが・・。
 また、教えて頂いたコードを
 私が作成した貼り付けコードに入れるとしたらどこに入れるといいのでしょうか?あわせて教えて下さい。
 初心者ですみませんが宜しくお願いいたします。
 (みるく)
 


 念のためにOpenClipboardの前にもCloseClipboardをいれてみればどうだろうか(思いつき)
一連のコードははPasteSpecialの後にでも。

 関係ないけど参考情報
・操作で、クリップボードの内容を「限りなく小さなものに」しておく方法。
http://www.atmarkit.co.jp/fwin2k/win2ktips/102clipclear/102clipclear.html
・フリーツール
http://yamagata.int21h.jp/tool/clipclear21/

 (ぶらっと)

 Officeクリップボードの話でした?
 なら、これ別管理なので、EmptyClipboardでは無理ですね!!
 Application.CommandBars("Clipboard").Controls(4).Execute 
 これもExcel2000まで話で、クリップボード関連が作業ウインドーに移ってしまった
 Excel2002以上では、無効です。方法は、0ではないと思いますが、VBAでは??です。

 後でもうちょっと探って見ますが、目的達成のための他の方法を探ることも考えてみてください。

 ichinose


 姑息な方法だけど、B2は値としては何もはいっていないだろうし、入ってたとしても値を消してもいいなら
 PasteSpecialのあと

 Range("B2").clearcontents
 Range("B2").Copy
 Application.CutCopyMode = False

 (ぶらっと)

ichinoseさん ぷらっとさん ありがとうございます。
ほんと勉強になります。
 私が思っていたクリップボードはOfficeクリップボードのことですね。
 しかもクリップボードに関してのコードはEXCEL2000の本をみて作成していました。
 まさにichinoseさんのおっしゃるとおりです。
 ぶらっとさんの教えて頂いたサイトでクリップボードのことがよ〜くわかりました。
 姑息な方法(?)も試してみました。
 なるほど!マクロを実行するにあたって私が心配していることは解決できますし、
 前のデータはメモリから削除されるわけですね。(メモリを最小限にできる)

 とりあえず、この方法で対処していこうと思います。
 エクセルを閉じると履歴は消えるみたいだし、メモリは最小限になっていると思うので。

 ただ、オフィスクリップボードの履歴も消えると最高なのですが・・・。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.