advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 978 for チェックボックス (0.008 sec.)
[[20201006211214]]
#score: 5499
@digest: e563738a73ce547f02e89a155c44ae62
@id: 85399
@mdate: 2020-10-06T21:46:24Z
@size: 3647
@type: text/plain
#keywords: checkboxk (15497), 文見 (12932), checkbox1 (10411), 鎖判 (7748), 未選 (7656), クボ (4956), 連鎖 (4190), listbox1 (3376), listindex (2726), ボッ (2530), enabled (2347), ル変 (2289), ルレ (2226), トボ (2108), クス (2031), listbox (1925), ーキ (1816), イベ (1546), チェ (1531), ック (1508), ェッ (1387), 稲葉 (1286), ベン (1266), リス (1227), ラグ (1116), 全文 (1099), フラ (1043), private (803), スト (798), click (798), 回避 (792), 選択 (787)
『VBA チェックボックスの連鎖判定について』(フォーキー)
Private Sub CheckBox1_Click() With Me If .ListBox1.ListIndex = -1 Then MsgBox "リストを選択してください" .CheckBox1.Value = False End If End With End Sub お世話になります。 VBAのユーザーフォーム上に、リストボックスとチェックボックスを配置してます。 チェックボックスをクリックしたとき、リストボックスが未選択の場合はキャンセル処理を行いたいのですが、上のコードだとメッセージボックスが2回表示されます。 未選択状態にしたときに、再びリストボックスが未選択かどうかの判定を行っているらしいのですが、回避する方法が分かりません。 よろしくお願いいたします。 < 使用 Excel:Excel2010、使用 OS:Windows10 > ---- ユーザーフォームのモジュールレベル変数でフラグたててはどうでしょうか? Private flg_EV As Boolean Private Sub CheckBox1_Click() If flg_EV = TRUE Then ExitSub With Me If .ListBox1.ListIndex = -1 Then MsgBox "リストを選択してください" flg_EV = True .CheckBox1.Value = False flg_EV = False End If End With End Sub (稲葉) 2020/10/06(火) 21:48 ---- 稲葉さんありがとうございます。動作確認しました。 フラグって本当に便利ですね。ぱっと思いつけるようにしたいです。 恥ずかしながら、モジュールレベル変数というものを知らなかったです。勉強してみます。 ありがとうございました。 (フォーキー) 2020/10/06(火) 22:01 ---- チェックボックスでは、 値の変化によっても Clickイベントが発生する為です。 True(チェックを付けた)時の判定なのですから、最初に True か否かを 判断すれば良いです。その場合 Changeイベントにした方が混乱しないで良いでしょう。 Private Sub CheckBox1_Change() With Me If (.CheckBox1.Value = True) And _ (.ListBox1.ListIndex = -1) Then MsgBox "リストを選択してください" .CheckBox1.Value = False End If End With End Sub (AddinBox 角田) 2020/10/06(火) 22:15 ---- リストボックスにチェックボックスを表示しては? (まっつわん) 2020/10/06(火) 22:36 ---- 別なアプローチで ListBoxが選択されていないときは、CheckBoxkを押せないようにすればどうでしょう Private Sub UserForm_Initialize() Me.ListBox1.List = Array("a", "b", "c") Me.CheckBox1.Enabled = False End Sub Private Sub ListBox1_Change() If Me.ListBox1.ListIndex <> -1 Then Me.CheckBox1.Enabled = True End If End Sub (´・ω・`) 2020/10/07(水) 00:20 ---- 私のはあまりよくない手でしたね、、、 理想いうと、リストボックス選択→チェックボックス→リストボックス外す操作したときに チェックボックスの状態残るから、 私なら全部選択させたあと、コマンドボタンクリックした時に各コントロールチェックするかも 全文見てみたいですねぇ (稲葉) 2020/10/07(水) 06:30 ---- 皆さんありがとうございます。 >チェックボックスでは、値の変化によっても Clickイベントが発生する為です。 Click = マウスクリックの印象でした。changeイベントだと回避、やってみます。 >リストボックスにチェックボックスを表示しては? 初めて知りました! ちょうど別の場面でそういう使い方をしたいと思ってたので、ちょっと調べてみます。 >ListBoxが選択されていないときは、 CheckBoxkを押せないようにすればどうでしょう 選択されてない = 押せない。一番無駄がないですね。参考にします。 稲葉さん、再び投稿ありがとうございます。 やっぱりイベント連鎖って難しいですね。便利ですけど。 >全文見てみたいですねぇ すみません。練習用に書いてただけですので、これで全部です。。。 改めて、皆さん、ありがとうございます。 考え方とサンプルコード、非常に勉強になりました。 (フォーキー) 2020/10/07(水) 06:46 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202010/20201006211214.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97038 documents and 608037 words.

訪問者:カウンタValid HTML 4.01 Transitional