[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『クリップボードがクリアされる』(mayo)
EXCEL2007、VBAにおいて、以下の操作でクリップボードがクリアされます。
他のバージョンでも同様の仕様でしょうか?
お手数ですが、検証報告をお願いできないでしょうか?
(1)VBAで一時的な作業用シートを追加
(2)セル範囲をコピーしてクリップボードにSet
(3)一時的な作業用シートを削除
以下、検証用ミニマムコードです。
一時シートではなく一時ブックならこの現象は発生しません。
Sub 一時シートを利用() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim ws As Worksheet Set ws = Sheets.Add ws.Range("A1") = 1 ws.Range("A1").Copy ws.Delete '一時シートを削除しなければクリアされない。 End Sub
< 使用 Excel:Excel2007、使用 OS:Windows10 >
XL2010、XL2013、Microsoft365 いずれも、クリアされました。
一時ブックでやっても同じ現象でしたけども? ↓ Sub 一時bookを利用() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim wb As Workbook Dim ws As Worksheet Set wb = Workbooks.Add Set ws = wb.Sheets.Add ws.Range("A1") = 1 ws.Range("A1").Copy ws.Delete '一時シートを削除しなければクリアされない。 End Sub
(半平太) 2022/05/16(月) 09:50
ブック版の方は、自分の説明不足だったかも....
新規ブックに新規シートの追加、削除ではなく
以下のようなものです。
Sub 一時ブックを利用() Dim wb As Workbook, temp As Workbook Set wb = ActiveWorkbook Application.ScreenUpdating = False Set temp = Workbooks.Add wb.Activate Application.ScreenUpdating = True temp.Sheets(1).Range("A1") = 1 temp.Sheets(1).Range("A1").Copy temp.Close False End Sub
(mayo) 2022/05/16(月) 10:14
書式つき(赤塗りつぶしなど)セルをコピーした場合、 書式つきの情報はクリアーされるが、テキストだけはクリップボードから再利用できます。
余談:
Winodwsのクリップボードはコピーした段階で内容が固定されるわけではなく、
貼り付ける時にも情報確認が行われる仕組みとなっているようです。
シートの削除と、ブックの削除で振る舞いが異なるのは仕様というほかなく、
一ユーザーには不明な内容です。(遠くから宇宙を観察するのと同じ感じ!!)
なお、
Officeクリップボードは(1)(2)とも書式付きで残っていて再利用が可能です。
Officeクリップボードは Windowsクリップボードと異なり、
コピーした時点で内容がHTMLとして保持されて固定されるので、
その後に何があっても保持されたままになります。
質問者さんが求めている情報(シートを削除したらクリップボードはクリアされるか)については、
YESが回答。
そのほか関連情報をメモしました。
結構奥が深いテーマですし、本当のところはよくわからない振る舞い、ということでしょう。
(γ) 2022/05/16(月) 10:32
(γ) 2022/05/16(月) 10:40
以下、参考情報です。
ブックの場合でも一時利用後に「閉じる/閉じない」で
クリップボードに格納されるデータ形式に差異がありました。
書式付きセルをコピーした場合、コピー後ブックを「閉じた」場合、
以下の5つの形式しか格納されていませんでしたが、
・Rich Text Format ・UnicodeText ・Text ・Locale ・OEMText 「閉じない」場合は、「Bitmap」等「30」近くの形式で格納されていました。
(mayo) 2022/05/16(月) 12:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.