[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでクリップボードに複数格納できないか』(825)
VBAでクリップボードに複数格納できないのでしょうか?
Dataobjectを使用して
Set CB1 = New DataObject
With CB1
.SetText "文章1"
.PutInClipboard
End With
Set CB2 = New DataObject
With CB2
.SetText "文章2"
.PutInClipboard
End With
と繰り返しても"文章2"のひとつだけしかクリップボードに残らず、
2つともクリップボードに溜めておきたいのですが
方法をご存じの方ご教示いただけませんでしょうか。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
普通にOfficeクリップボードを使う、ではダメなのですか? 貼り付けたいものを選んで貼り付けるだけだし。 (OK) 2022/03/24(木) 17:32
Sub cliptest() Dim cb1 As DataObject For i = 1 To 2 Set cb1 = New DataObject With cb1 .SetText "文章" & i .PutInClipboard End With DoEvents: DoEvents Set cb1 = Nothing Next End Sub
(kazuo) 2022/03/24(木) 21:05
ウィンドウクリップボードは直前にコピーしたものしか使えないと思っていたら、
最近のWindowsでは、設定により、クリップボードの履歴が使えるのですね。
貼り付けるときに、Windowsロゴキー + V とすれば、履歴が表示され、
選択して貼り付けできるようですね。(形式はテキストのようです。)
文字化けの理由は不明ですが、DataObject側の問題なのでしょうか。
DataObjectを経由せずに、セルを直接コピーすると回避できませんか?
(γ) 2022/03/25(金) 08:22
Windowsクリップボード履歴を利用しているという前提だったのですね。
クリップボード周りは(私の環境では)、結構不可思議な振る舞いをすることが多いです。
ひとつしか保持できないというコードも、
ステップ実行すると、複数保持されたりしませんか?
Sleepで処理待ちしても改善しませんね、ちょっと扱いかねています。
たぶん、すべてを手作業でやるなら問題起きないような気もしますから、
処理自体をコードに書いて、手作業の代わりにステップ実行するなどという妥協案もありそうです。
# 別件ですが、Officeクリップボードを表示したまま、DataObjectを操作すると、
# Excelが落ちたりします。
# 私にとって、クリップボード周りは鬼門のひとつです。
(γ) 2022/03/27(日) 06:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.