• 締切済み

Excel VBAでグラフをクリックした時走るイベントありますか?

Excel VBAで既存のグラフをクリックした時、その選択されたグラフを編集するソフトを作りたいのですが、グラフをクリックした走るイベントはありませんか? イベントさえわかれば処理の書き方はわかります。

みんなの回答

回答No.3

こんなのではどうでしょうか? どこかの時点で Sub setOnClick() Dim c As ChartObject For Each c In Sheet1.ChartObjects c.OnAction = "chartOnClick" Next End Sub を実行すれば、その時点でのすべてのグラフのクリックイベントが捕まえられるので、 Sub chartOnClick() MsgBox Application.Caller End Sub で、どのグラフがクリックされたかわかります。 p.s. 上はchartOnClickが標準モジュールにある場合で、Sheet1のイベントを呼ぶ場合は、 c.OnAction = "Sheet1.chartOnClick" '適当な名前 で設定する必要があります。

noname#140971
noname#140971
回答No.2

1、グラフを右クリックして[グラフ1_Click]のマクロを指定。 2、マクロにコードを記述。 Sub グラフ1_Click()   MsgBox "AAA" End Sub エクセルは操作したこともない門外漢ですが・・・。 一応、これでグラフをクリックすればメッセージボックスが表示されました。

asami97
質問者

お礼

回答ありがとうございます。 決まったグラフでしたら教えていただいた通りでできるのですが、今回は不特定多数のグラフがあります。 どのグラフをクリックしても同じように処理できるようにしたい為マクロの登録ですとユーザーの手間になってしまうので避けたいのです。 説明不足で申し訳ありません。 マクロの記録以外でないでしょうか?

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

MouseDownイベントがあります。私はOffice2003を使っていますが、左右のボタンはイベントが発生します。中ボタンは発生しませんでした。

関連するQ&A

  • シートのクリックイベントは拾えないのか?

    ExcelのVBAに関する質問です。 さきほど「セルをクリック、またはダブルクリックしたときに○○したい」という質問に回答したのですが、「セルをクリックした」というイベントを拾う方法がわからず、ダブルクリックのパターンで回答しました。 Worksheetのイベントには BeforeDobuleClick や BeforeRightClick はあるのに Click や onClick というイベントがありません。オートシェイプなどのオブジェクトやフォーム上のオブジェクトには Click イベントがあるのですが、Worksheet になぜかありません。 これまでも同様のケースがあり、ネットで検索したりしたのですが、どれも SelectionChange で代用するものでした。それだと確かにマウスで別セルを選択したときにイベントが発生しますが、 ・キーボード操作でセルを移動してもイベントが発生する ・現在選択しているセルをクリックしてもイベントが発生しない と、厳密はマウスでクリックしたときと同じ動作になりません。 確か以前の質問で「あるセルをクリックするたびに、他のセルの値をカウントアップしたい」というようなものもありました。このような場合には、やはり Click に相当するようなイベントで処理したいです。 どうにかしてWorksheetでクリックイベントを拾うことはできないのでしょうか?

  • Excel VBAでマウスの左クリックのイベントを検知するには

    お世話になります。 ExcelのVBAを利用して、マウスが左クリックされた際、そのイベントを 検知する方法はありますでしょうか? 使用しているExcelは2003です。 よろしくお願いします。

  • エクセルVBAのChangeイベント時の再計算

    掲題の件ですが、VBAにて、 あるセルの値を変更したときに処理を行うChangeイベントについて困っております。 処理速度向上の為、この処理を行う際、再計算の処理を行わないようにしたいのですが、 Application.Calculation = xlCalculationManual を処理の頭に入れても、 Changeイベント発生→再計算処理→再計算を手動にする処理→本処理 となってしまうため、上手くいきません。 何かいい手立てはないものでしょうか。 エクセル2010です。

  • VBAでイベントを設定したいのですが…

    いつもお世話になっております。 早速ですが、VBAでイベントの処理を記述したいの ですが、イベント取得ができません。 どこでから取得すればいいのでしょうか? Excel2007を使用しています。 よろしくお願いします。

  • ExcelのVBAでのグラフ操作について

    Excel2003からExcel2010にアップグレードしたのですが、グラフ操作について質問があります。 Excelのブックにグラフシートがあり、それをVBAで操作した後、2003では ActiveChart.Deselect で選択を解除できたのですが、2010には同じ構文が使用できません。 同様の操作を2010で行うためにはどうすればよいのでしょうか?

  • エクセルVBAのイベントで質問です

    エクセル2007でVBAのイベントを使ってみたいと思っています。 B2:C10とF2:G10の範囲に文字列があり、J3にその文字をイベントにより入れていきたいと考えています。 J3には文字が入っていることもあり、 Wクリック→J3を消去→Wクリックした文字をJ3に入力 というようにするにはどうしたらいいでしょうか? どなたか教えていただけないでしょうか。 よろしくお願いします。

  • 更新したらExcelから貼り付けたグラフがゼロに

    Excel 2013でグラフを作成して、Word2013に貼り付けました。 (オプション等はいじらず、Ctrl+Vで貼り付けただけです。) グラフの図表番号などを更新しようと、全体選択してフィールドコード更新をクリックしたところ、「リンクが見つかりません」と出て、いくつかのグラフの数値が全部0になってしまいました。 幸い元のデータはExcelに残っていましたので、また貼り付けることができましたが、更新するたびにゼロになってしまうのでは不便です。どうしたら防げますでしょうか? Excelの数値を変えるとWordの数値も自動的に変わるリンク機能があるそうですが、それが原因でしょうか? できればリンクを切りたいのですが、ゼロになったグラフを右クリックしても「データの編集」「データをExcelで編集」は出ますが、リンクを切るというオプションがありません。

  • エクセル VBA イベント

    エクセル VBA イベントのプログラミンングで、固定枠を使用中のエクセル画面 において、画面をスクロールバーまたは マウスでスクロールすると  イベントが始まる イベント名を教えてください ワークシートのみでユーザーフォームは使用していません よろしくお願いします

  • VBAでEXCELからWORDにグラフをコピー

    VBAでEXCELからWORDにグラフをコピー する方法が分かりません。 EXCELで作成した複数のグラフをWORDのテキストボックスに貼り付けるマクロを組んでいます。 「マクロの記録」を行ってもWORD側の処理がうまくカンニングできません。 処理はEXCEL側で行っています。 PasteSpecialなどを使って試行錯誤したのですがダメでした。 詳しい方がいましたら教えて下さい。

  • VBAでグラフのindexを取得したい

    EXCEL VBA(Office2010)にて、選択中のグラフ(マウスでクリックの状態。Ctrl+クリックではない)のWidthとHeightを取得したいです。Ctrl+クリックならActivechart指定でグラフのindexが取得できるので問題ないのですが、ただの選択状態だとActivateされていないため、それができません。Selection.Application.Activechart.Nameなどでグラフの名前は取得できても、同一の名前のグラフが存在する可能性があるため一意に定められず、この方法もダメでした。要するに、Typename(Selection)が"Chartarea"の状態でそのグラフのindexを取得したい、ということになります。どうかよろしくお願いします。

専門家に質問してみよう