Top > OOobbs2 > 182

OOobbs2/182 Edit

  • サマリ: クリップボードに転送された内容を常にクリアしたい
  • 環境: Calc
  • 状態: 未解決
  • 投稿者: きりん?
  • 投稿日: 2009-07-29 (水) 12:41:35

質問 Edit

始めまして。

クリップボードを使用させたくないシートがあるのですが VBAのActiveSheet.CopyAndPaste = Falseに相当する機能は有りますでしょうか?

無い場合は実装したいのですが、マウスイベントにつきましてはOOobbs/43にて解決。 Keyボードイベントのハンドリング方法が知りたいです。 上記イベント発生時に、クリップボードの内容をクリアする方法としてはにゃさん作のクリップボード転送マクロ

Sub clipboard_1
 sText = ""
 CopyToClipBoard(sText)
End Sub

以下略を呼び出しているのですが、1クリック目はうまく行くのですが2クリック目でSub CopyToClipBoard( sText )内でBASICランタイムエラーが発生してダウンしてしまいます。 msgboxを利用してどこで落ちるのか捕まえたいのですが、これも不思議なことに、msgboxを入れると、ダウンしなくなります。。。。 環境はDELLミニタワーCore2・メモリ2G・OS XP SP3 OpenOffice.org 3.1.0となります。以上、宜しくお願いいたします

回答 Edit

  • 自己レス。wiki書式を踏襲しなかったので質問がぐちゃぐちゃ。#brこちらのサイトを良く見たら入出力機器のハンドラは明記してありました。これは解決です。 -- きりん 2009-07-29 (水) 21:10:39
  • 自己レス:クリップボードを上手くクリアする方法を教えてくださいに統一します。 -- きりん 2009-07-29 (水) 21:12:04
  • OOo ではメニューやショートカットキー操作でコマンドが ProtocolHandler に送られ、処理されます。それを DispatchInterceptor で阻害することで特定の操作を実行できないようにするのが普通のやり方です。OOoBasic/Generic/DispatchInterception -- はにゃ? 2009-07-31 (金) 13:18:05
  • 右クリックのコンテキストメニューから操作した場合には ProtocolHandler の前に Interceptor を通過しないためコンテキストメニューを変更する必要もあります。OOobbs2/63 -- はにゃ? 2009-07-31 (金) 13:20:10
  • クリップボードの内容を初期化するのに initialize すればいいはずですが・・・。com.sun.star.datatransfer.clipboard.ClipboardW32 ではインターフェースが Optional で実装されてませんでした。 -- はにゃ? 2009-07-31 (金) 13:25:08
  • 二回目にエラーが出るとのことですが、Python で書いたクリップボードへのコピースクリプトでは何度やってもエラーは出ないため、問題は OOoBasic の関連でしょう。ディレイをもうければいいのかどうなのか・・。 -- はにゃ? 2009-07-31 (金) 13:30:59
  • OOobbs/43 Editで、マウスキーの判定は無しで、http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FGeneric%2FClipboard呼び出すように試しているのですが、1クリックでVC++がランタイムエラーで転覆します。(msgboxが表示されて即エラー)オブジェクトや変数が未定義だと、BASICの文法エラーにかかるので、その部分はGlobalにて定義しております。とりあえず、と言うのも申し訳ないのですが、クリップボードのnitialize方法をご教示願えないでしょうか?会社からポストすると解雇されちゃうので亀レスですみません。 -- きりん 2009-07-31 (金) 23:17:22
  • 実装したいのは、「何かキーを押されたらクリップボードをクリアする」機能ですので、OoBにこだわりは有りません。ご教示お願いいたします。 -- きりん 2009-07-31 (金) 23:29:24
  • 自宅マシンで試したのですが、落ち方は違いますが落ちるところは同じでOOobbs/43の回答ソースを使用すると、msgboxは出るのですが、OKを押すとクラッシュします。Ms_mousePressedに何か後処理が必要になってしまったのか、VC++ランタイムのバージョンを古くするとかしないとダメなのか、完全に行き詰まっております。 -- きりん 2009-08-01 (土) 11:09:40
  • 上記のものを試してみましたが、私のところでは特に落ちたりしませんし正しく空文字列が設定されます。環境は OOo 3.1.0、XPSP3 ですので・・・。 -- はにゃ? 2009-08-01 (土) 12:14:44
  • あぁ、クリップボード関係なく落ちるんですね。まぁ、ドキュメント上ではマウスのクリックは頻繁に行われるでしょうから他のイベントを利用した方がパフォーマンスなどの点から良いように思います。 -- はにゃ? 2009-08-01 (土) 12:24:20
  • faq/4/1798にtr、どうもマウスクリックのイベントに不具合がありそうな事がわかりました。何か良いイベントがないか、研究してみます。有り難うございました。 -- きりん 2009-08-01 (土) 13:31:44
  • すみませんクローズして下さい。Geneticをよく見たら、後処理は絶対必要とありましたが、中身空でしたので削っていました。すみません;; -- きりん 2009-08-03 (月) 19:11:40

感想,コメント,メモ Edit



Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes