• 締切済み

VBでExcel上PictureBoxダブルクリックイベントを取得したい

VBでOpenしたExcelシート上にあるPictureBoxをダブルクリックした際に発生するイベントを取得したいと思っております。 ExcelVBAでは普通にPictureeBox_DblClick()で取得できますがVBで取得する場合はPictureBoxオブジェクトをどの様に取得・宣言し、プロシージャ名はどの様に書いたらよいのでしょうか。教えて下さい。お願いします。

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

サブクラス化してメッセージをフック... # 私は自信ありません。 # TAGOSAKU7さんに期待します。

Chika-F
質問者

お礼

WithEventsの記述を工夫する事で解決しました。 ご協力ありがとう御座いました。

Chika-F
質問者

補足

ありがとう御座いました。 TAGOSAKU7さんは tado36さんの大師匠様ですか? お願いします。 出来るだけ簡単な方法が良いのですが・・・。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

ExcelVBAのPictureBox_DblClickイベントで何らかの手段でVB側に 通知すればいいかと。 例えば、Excel側でVBのコマンドボタンにクリックイベントを 投げる。 (Excel) Private sub PictureBox_DblClick() Call SendMessage(VB側のフォームのハンドル, _ WM_COMMAND, _ BN_CLICKED, _ VB側のコマンドボタンのハンドル) End Sub (VB) Private Sub Form_Load() Command1.Visible = False End sub Private Sub Command1_Click() MsgBox "Excel側でPictureBoxがダブルクリックされました" End Sub # 参考URLでTAGOSAKU7さんに教わった手法です。 # ありがとうございました。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=199357
Chika-F
質問者

補足

早速の回答をありがとう御座います。 最初に書かなかったのがいけないのですが Excel側にはコードを書きたくないので 出来ましたらVB側からだけでやりたいのですが・・ 宜しくお願い致します。

関連するQ&A

  • 「VBでExcel上PictureBoxダブルクリックイベントを取得したい」について

    「VBでExcel上PictureBoxダブルクリックイベントを取得したい」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=203163 について思ったことがありまして、ここに書かせていただきます。 この質問にはTodo36さんが答えられました。 Chika-Fさんの望む処理と違うようなので、サブクラス化の案をTodo36さんは述べられて、σ( ̄ー ̄ ボクに託してくださいました。 僕も全く同じ処理を考えていましたのですが、実現不可能でした。 そんな時に出張にいく事になり、結末が気になりながらも、自分なりに考えながら出張にでました。 そこでWith Eventを考えたのですが、エクセルアプリ・ブック・シートなどのイベントは拾えたのですが、シート内に存在するピクチャボックスのエベントは拾う事ができませんでした。 どうしてもエクセルにコードを書かないとできませんでした。 どのようにしたらそのイベントが拾えるのかが極めて知りたいです。 サンプルを載せてくれませんでしょうか? よろしくお願いします。

  • サブフォームでのダブルクリックイベント

    Access2003です。 フォームにサブフォームを設置し、直接テーブルを表示させています。 このサブフォームのテーブルのある行をダブルクリックしたら その行のデータを他のフォームのオブジェクトにセットしたいのですが 行や行のデータ全てを取得は出来るのですが、サブフォームのイベントがEnterとExitしかなくて、イベント発生が出来ません。 フォームのダブルクリックでXとYを見て…と思ったのですがサブフォーム上ではフォームのダブルクリックイベントが発生せず。 サブフォームのテーブルはユーザーがソートする事もあるのでベタに上にテキストボックス等を置く事は出来ません。 どうにかダブルクリックで動作させる方法はありませんでしょうか?

  • VB205のPicturebox上でのMousewheelイベント

    VB2005で、Form1にPanel1をはりつけ、その中にPicturebox1をはりつけ、Pictureboxの範囲の中で、マウスをホィールしても、イベントが発生しません。ためしに、Picturebox1とPanel1について書いてみましたが、だめでした!(Form1では、発生します) 何がダメなんでしょうか?どなたか詳しい方がいらっしゃいましたら教えて頂けないでしょうか?宜しくお願い致します。 Private Sub PictureBox1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseWheel MsgBox("TEST_Picturebox") End Sub Private Sub Panel1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseWheel MsgBox("TESUT_Panel") End Sub

  • テキストボックスをダブルクリックしたらテキスト全てを選択状態にすることは可能ですか?

    アクセス2003です。 イベントプロシージャなどで(DblClick) ダブルクリックしたらテキストボックスの値を選択状態にしたい (色を反転させる)のですが可能でしょうか? ご教授よろしくお願いします。

  • 【ExcelVBA】セルをダブルクリックしてセルのアドレス値を取得

    シートをダブルクリックする事で、ユーザフォームを起動させるマクロを作っているのですが、 ダブルクリック時にクリックしたセルのアドレス値を取得することって出来るのでしょうか。 作業環境は、WindowsXP/Excel2003/VB6です。 ご存知の方がいましたら、ご指導お願い致します。

  • ツリービューのノードをダブルクリックしたことを判断させるには

     VBにて、ツリービューのノードをダブルクリックしたときにこうする、というような処理をさせるにはそうすればいいんでしょうか。  TreeView1_NodeClickというのはありますが、ダブルクリックに関してはDblClickだけしか存在せず、どのノードを選択したかを取得できません。  どなたか、TreeView1_NodeClickのようにノードをダブルクリックした時に限り、そのノードを取得して処理をさせるというような方法を教えてください。  よろしくお願いします。

  • ダブルクリックイベント

    シート数がかなり多数のエクセルファイルがあるのですが、全てのシートにダブルクリックイベントを適用させたいと思っています。 Worksheet_BeforeDoubleClickのコードを、全シート分まとめて記述することは可能でしょうか?

  • VBのイベント処理について

    お世話になります。 VB6.0のイベント処理について教えてください。 VB.NETでは、イベント処理のメソッド(VBだとプロシージャですか) のシグニチャのおしりに Handles Button1.Click という記述がされているので、このメソッドはButton1のクリックという イベントが発生したときに行われる処理だなと見当がつくのですが、 VB6.0ではその記述をしないのが一般的とみました。 してそのときに、このメソッドがButton1のクリック時のイベントだと いうのは、どのように判断されるのですか?メソッド名が Button1_Click みたいに勝手につけられるので、それで判断されるのですか?という ことはメソッド名を変えたらそのメソッドはButton1のクリック時の イベント処理メソッドではなくなってしまうのですか? よろしくご教授ください。

  • VB6からExcelを操作する

    VB6.0からExcelの操作をしています。 そのなかで、Excelシートを印刷したいのですが、どのようにしたら良いのでしょうか。 また、ExcelVBAのFunctionやSubを実行するにはどのようにするのでしょうか。 VB6.0内でExcel操作は次のようにしています。 Dim ExcelApp As Object Dim EWorkbook As Object Dim ESheet As Object Set ExcelApp = CreateObject("Excel.Application") Set EWorkbook = ExcelApp.Workbooks.Open(ExcelBookFlNm) Set ESheet = EWorkbook.Sheets(M_SheetNm) Set ESheet = Nothing Set EWorkbook = Nothing ExcelApp.Quit Set ExcelApp = Nothing よろしくお願いします。

  • シングルクリックとダブルクリックのイベントについて

    皆さん、こんばんは。 ちょっと疑問に感じたものがありましたので質問させてください。 今日のある質問、 内容はセルをシングルクリックした場合と ダブルクリックした場合のイベントの違い。 その質問に対する次の回答について。 (1)両方のイベントを機能させるとSelectionChangeが先になり  その後、同セルWクリックでDoubleClickイベントが機能します (2)SelectionChange のシングル・クリックとBeforeDoubleClickの  ダブル・クリックとはダブル・クリックの過程にシングル・クリック  があるので、論理的に、そのイベントは重なってシングル・クリックに  取られるはずです」 (1)はたぶん回答者の勘違いだろうと思うのでそれはいいのですが、 疑問に感じたのは(2)の方です。 (2)の意味は、ダブルクリックすると必ずシングルクリック 即ちSelectionChangeイベントのみが発生し、 BeforeDoubleClickは発生しないということでしょうか いままでBeforDoubleClickも発生する場合があると思っていましたので質問しました。 回答者がVBA熟知の方なので当方が何か勘違いしているのかも知れませんが・・・。 以上宜しくお願いいたします。

専門家に質問してみよう