【エクセル】セルのダブルクリックでセルテキストをクリップボードに入れる
タイトルの通りのマクロ。これでOK。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim CB As New DataObject
Call CB.SetText(Target.Cells(1, 1).Text)
CB.PutInClipboard
End Sub
DataObjectを使っているので、MicroSoft Forms を参照設定に入れるか、プロジェクトに何かフォームを入れておくと使えるようになる。
上記のプロシージャを対象となるシートのBeforDoubleClickイベントに入れれば動くはず。
例えば、セルに「=TODAY」、書式設定を「YYYYMMDD」にしておくと、ファイル名に日付を入れるのがちょっと楽になる。
常にエクセルを立ち上げておかなくちゃならないというデメリットはあるものの、エクセルのメモリ使用量は、Chromeのタブ一つ分。エクセルそのものはすごく軽いのです。
作業手順をエクセルに書いて、後はコマンドを流すだけというときには、便利ですね。
2010/02/27さらにバージョンアップ
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim CB As New DataObject
Call CB.SetText(Target.Cells(1, 1).Text)
CB.PutInClipboard
Application.StatusBar = Left(CB.GetText, 100)
Cancel = True
End Sub
ダブルクリックで編集モードになる機能をオフにしてしまって、うっかり再編集しないようにした。編集モードにするには、F2を押してください。さらに、クリップボードにセットできたか同かを確認しやすくするために、ステータスバーにクリップボードの中身をひっそりと出力するようにしました。コピーできたとおもって、前のクリップボードデータをペーストするのは結構な被害なので。
RangeオブジェクトにCopyメソッドがあるので、それを使えば、参照設定が一つ減るのだけれど、「クリップボードからデータを取り出して、文字列編集した結果をまたクリップボードに入れたい」というニーズもありそうなので、DataObjectを使うことを前提にしようかなと。
「GTD」カテゴリの記事
- 【エクセル】セルのダブルクリックでセルテキストをクリップボードに入れる(2010.02.27)
- 講演の質疑応答コーナーはちゃんと質問するのが礼儀(2009.04.16)
- 作業をとっとと進めるためのメモ(2009.03.29)
- 情報端末観点で鞄の中身紹介(2009.02.17)
- マインドマップは思考のツール(2008.12.17)


Comments