• 締切済み

ClickとChangeイベントの違いはどこにあるの。

エクセルVBEプロシージャボックス内に基本的なイベント、ClickとChangeがありますが、相違点を簡単に説明しているものが見当たりません。よろしくお願いいたします。

みんなの回答

  • KG_
  • ベストアンサー率62% (34/54)
回答No.2

ClickイベントはマウスでClickしたときに発生するイベントです。 Changeイベントは値が変更されたときに発生するイベントです。 Changeイベントはプログラム内で値を変更した際にも発生します。

全文を見る
すると、全ての回答が全文表示されます。
noname#39970
noname#39970
回答No.1

単語の通りでは? キーボード操作でもchangeは起きるし changeしなくてもclickは起こせるでしょ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • イベントの違いを教えてください。

    エクセルVBEのListBoxのイベント(change、BeforeUpdate、AfterUpdate)の使い方の違いが分かりません。 具体的例で簡単に教えていただきたいのですが。(web上にあればそれでも結構です。)

  • クリックイベントは実行されない

    サブフォームのテキストボックスにクリックイベントでVBAを実行するようにしてるのですが クリックしても何も反応がありません。 だけど試しに同じテキストボックスに、フォーカス取得後のGotFocusイベントを[イベント プロシージャ]で選択してみましたが テキストボックスにフォーカスが触れるとイベントが実行されます。 なぜクリックイベントは実行されないのでしょうか? サブフォームは帳票フォームです。それ関係ありますか?

  • Excel changeイベントをループさせる方法

    ご質問させていただきます。 Excel2007を使用しています。 チェックボックスを190個作り以下のプロシージャを作成しました。 190個のチェックボックスは開発タブの挿入をクリックしてActive Xコントロールのチェックボックスを選択してデザインモードでコピーして作りました。 やりたいことは、チェックボックスのON/OFFの瞬間に以下のプロシージャの処理を実行したいのです。 changeイベントを使うみたいなのですが、チェックボックスが190個もあるのでループさせた方が良いと思うのですが、そもそもchangeイベントをループさせることはできるのでしょうか? ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いいたします。 なお、私のVBAの知識は初心者レベルで、下記のプロシージャもこちらのサイトで教えていただいたものを自分で少し変更しただけです。 Sub チェックボックスのループ() Dim i As Integer For i = 0 To 189 sCtrlName = "CheckBox" & CStr(1 + i) If Me.OLEObjects(sCtrlName).Object.Value = True Then Cells(1 + i, 2).Value = Cells(1 + i, 2).Value Else Cells(1 + i, 2).Formula = "=Sheet2!A" & 1 + i & "" End If Next i End Sub

  • 不要なイベントを削除したい

    フォームにコマンドボタン(名前:コマンド0)を置いて、 [イベント プロシージャ]にしてクリックするとVBE画面にプロシージャーが作成されますよね。 しかしそのコマンドボタンの名前を変更して(新しい名前:新コマンド0)、さっきと同じように [イベント プロシージャ]にしてクリックすると新たなプロシージャの型が作成されますよね。 Private Sub コマンド0_Click() End Sub Private Sub 新コマンド0_Click() End Sub こんなかんじで。 そんな事を一杯やり過ぎて、 Private Sub コマンド0_Click() End Sub の方がいっぱい余ってる?浮いてる?イベントに紐づいてない状態なのですが、 量が多すぎてどれが不要なプロシージャーなのかわからないのですが、 一気に削除する方法はありますか? 別にほっといても問題ないとは思うのですが、不要なものは削除したいです。

  • EXCELVBAのイベントプロシージャ

    EXCELのVBAでダブルクリックイベントプロシージャについて質問です。 したいこと。 ある管理表がありその表の索引番号といくつかの項目が並んでいる表です、 その表を見て索引番号をダブルクリックするとその索引番号の表題部と明 細部を単票(カード)形式で表示するようなものをつくりたいと思っています。 困っているところ。 ダブルクリックのイベントプロシージャでこれを実現しようとしているのですが うまくいかなくて困っています。 ダブルクリックのイベントプロシージャでその値(ここでは索引番号)がTarget にはいるのですがその値は他のプロシージャに渡す方法がわかりません。 あるいは、イベントプロシージャの仕様としてTargetの値は当該プロシージャ内 でしか保持できないのでしょうか? 他のプロシージャでもその値を使いたいのですがダブルクリックイベントの値を 他のプロシージャで使う方法がありましたら教えてください。

  • エクセル: Changeイベントが発生しないのはなぜ?

    エクセルでChangeイベントが発生しないので以下の方法で確認してみました。 やはり駄目でした。 なぜでしょうか。 条件:Excel2000 エクセルのセル に楽天証券から株価データをRSSでもらっています。 書いたコード Private Sub Worksheet(ByVal Target As Range) If Target.Address <> "" Then MsgBox "イベント確認" End if End Sub これで駄目なのですがセルをいじるとイベントは発生しているようです。 Intersectプロシージャも試しましたが駄目でした。 Case文で拾うことも試しましたが駄目でした。 RSSで信号を受けた場合イベントは発生しないものでしょうか? よろしくお願いいたします。

  • エクセル: Changeイベントが発生しないのはなぜ?

    エクセルでChangeイベントが発生しないので以下の方法で確認してみました。 やはり駄目でした。 なぜでしょうか。 条件:Excel2000 セル"A1" に楽天証券から株価データをRSSでもらっています。 書いたコード Private Sub Worksheet(ByVal Target As Range) If Target.Address <> "" Then MsgBox "イベント確認" End if End Sub これで駄目なのでセルにをいじるとイベントは発生しているようです。 Intersectプロシージャも試しましたが駄目でした。 Case文で拾うことも試しましたが駄目でした。 RSSで信号を受けた場合イベントは発生しないものでしょうか? よろしくお願いいたします。

  • 《VBA》セルをダブルクリックしたときのイベント

    Worksheet/BeforeDoubleClickを使用して、 フォームを表示するという処理を行っています。 エクセルのセルにリストボックスが設定されているセルがあるのですが、 リストボックスのセルをダブルクリックした時にはイベントが動作しません。 通常のセルをダブルクリックした時にはイベントは正常に動作します。 リストボックスが設定されているセルでは動作することができないのでしょうか。

  • ピクチャボックスのクリックイベント

    ピクチャボックスのクリックイベント Visual C#でトランプゲームを作っているのですが this.PB = new System.Windows.Forms.PictureBox[54]; ↑のようにピクチャボックスの配列作ったのですが それぞれのクリックイベントを作りたいのですが、それがどうしても分かりません たとえばPB[30]がクリックされたらPB[30]の画像を他のピクチャボックスに移すなど このようなことをするにはどうすればいいですか?

  • 全てのコンボボックスに同じchangeイベント

    VBA初心者です。お知恵を貸してください。 UserForm上にある全てのコンボボックス(1つを除く)に同じchangeイベントを適応させたいです。 【動き】 1.UserForm起動 2.フォーム上のSheetComboBoxからシートを選択 3.選択したシートを参照し、フォーム上にシートにある行数分ComboBoxi(変数)_1〜3、TextBoxi(変数)を作成。ComboBoxにシートの値を参照した「文字列 数値」をセット。TextBoxは空欄。 4.ComboBoxi_1〜3が変更されるごとに、TextBoxiにComboBoxの内容の数値部分を計上する。 5.登録ボタンをクリックしてComboBoxi_1〜3の内容をシートの特定列に転記。 3までは作成することができましたが、4で行き詰まってしまいました。 コンボボックスのコントロール名は動的なので、どのようにchangeイベントを書けばいいのか、また、コンボボックスの量が多い(1行3つ*行数分)ので、すべてに対して書かなければならないのか…ということです。 何か一括でchangeできるような方法をご存知の方は教えていただけないでしょうか。どうぞよろしくお願いいたします。