« だいたいのヒアリング項目 | Main | 携帯電話世界大手の加入件数 »

【エクセル】セルのダブルクリックでセルテキストをクリップボードに入れる

タイトルの通りのマクロ。これで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を使うことを前提にしようかなと。

 

|

« だいたいのヒアリング項目 | Main | 携帯電話世界大手の加入件数 »

「GTD」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/43361/47674959

Listed below are links to weblogs that reference 【エクセル】セルのダブルクリックでセルテキストをクリップボードに入れる:

« だいたいのヒアリング項目 | Main | 携帯電話世界大手の加入件数 »