[[20160209094424]] 『チェックボックスにチェックが入ったら実行』(修) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『チェックボックスにチェックが入ったら実行』(修)

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform03b.html
こちらのサイトを参考に、チェックボックスを作ったんですが、
このチェックが入ったら処理を実行するにはどうすれば良いですか?
>Private Sub Worksheet_Change(ByVal Target As Range)
こんな感じのことがしたいんですが・・・

 .MultiSelect = fmMultiSelectMulti

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 参照されたページはユーザーフォームのチェックボックス処理ですが、今回のチェックボックスは

 ・やはり、ユーザーフォームですか? であれば、CheckBox の ClickイベントやChangeイベントが使えます。
 ・シート上の ActiveXのチェックボックスなら、同じくCheckBox の ClickイベントやChangeイベントが使えます。
 ・シート上のフォームツールのチェックボックスなら、いくつか方法がありますが、簡単なのは、このチェックボックスに標準モジュールに書いたマクロを登録。
  クリックされると、そのマクロが動きます。

(β) 2016/02/09(火) 10:32


βさん

ユーザフォーム上のリストの中に埋め込んだ?チェックボックスです。
このチェックボックスは、ツールボックスにあるチェックボックスと同じ扱いなんでしょうか?
例えば、リストの中に3行あれば3つチェックボックスが隣にできると思うんですが、
上から順にCheckBox1、CheckBox2、CheckBox3・・・となり、
それで、Private Sub CheckBox1_Click() のなかに処理を入れたら使えるということでしょうか?
(修) 2016/02/09(火) 11:25


それはチェックボックスではなく、チェックできるように設定したリストボックスであり、別物ですよ。
とりあえず、以下をマクロに入れてみると、動作が判るかと思います。

 Private Sub ListBox1_Change()
    UserForm1.Caption = ListBox1.List(ListBox1.ListIndex) & " " & ListBox1.Selected(ListBox1.ListIndex)
 End Sub
(???) 2016/02/09(火) 11:54

???さん

実行時エラー381
List プロパティの値を取得できません。プロパティの配列のインデックスが無効です。
というエラーが出てしまいました。
一行ずつAddItemを使用しているので、???さんのコードの処理を行うときはまだListが0だからかもしれません。。。

(修) 2016/02/09(火) 13:03


1件もデータが無い状態ならば、リストボックスをクリックしてもイベント発生しないはず。状況説明が不十分で、原因が推測できません。
件数が気になるならば、ListBox1.ListCount が0より大きい場合だけ、値参照してみてください。
(???) 2016/02/09(火) 13:16

???さん
すみません、0じゃない場合だけ処理を行うif文を入れたらうまくいきました!ありがとうございます。

(修) 2016/02/09(火) 13:51


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.