Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5284 / 76732 ←次へ | 前へ→

【77061】Re:コンボボックスとチェックボックスの連動に関する質問
発言  β  - 15/5/12(火) 10:08 -

引用なし
パスワード
   ▼mohimohi さん:

おはようございます。

質問1.

まず、シート上に設定されているオートフィルター領域は

シート.AutoFilter.Range で取得できます。
このプロパティは優れもので、たとえばリストの下に行を追加した場合
あるいは、行を消した場合、自動的に増減します。

いずれにしても 変数 rfA は タイトル行も含めた オートフィルターリスト領域になります。

このオートフィルター領域の下、一行あけて、そこから下を作業域に使っています。
抽出された行のみをここにコピペしています。
変数 rfX は、この作業域の先頭のセルです。

たとえば オートフィルター領域が A1:D10 だったとします。
そうしますと、作業域としては A12 以降にしたいわけです。

  Set rfX = WS.Cells(rfA.Rows.Count + 2, "A")

ここで、 rfA.rows.count はオートフィルター領域の行数、つまり 10 。
rfA.Rows.Count + 2 は 12。
したがって WS.Cells(rfA.Rows.Count + 2, "A") は WS.Cells(12, "A") になります。


質問2.

>ComboBox4の ソースコードの意味がよく理解できません。涙
>なぜ、For j = 5 To zなのでしょうか。

ここは、各行の 祖父 や 父 をピックアップしようとしています。
各行の 祖父 や 父 は E列から始まりますので 始まりは 5 ですね。
終わりは、固定で I列(9) でもいいかなと思ったのですが、将来、この項目が増えて、L列あたりまで、
使うといったことになると、その都度、コードを直す必要が出てきます。
で、ここでは、その行の値が入った最後のセルの列番号を
z = Cells(i, Columns.Count).End(xlToLeft).Column
で取得し、5 から z までチェックということにしています。

これは、もしかしたら具合悪いかもしれません。 
つまり、J列より右側に、この 祖父 や 父 とは関係のない領域があるということになると
逆に、そこも 祖父 や 父 扱いになってしまいます。
なので、そういう場合は For j = 5 To 9 にしてください。

>また、"父"、"母"、"祖父"、"祖母"のx=の値がなぜ1、2、3〜の順番ではないのでしょうか。。。。

★ えっ? これって 15/5/6(水) 7:46 のコードですよね。

βとしては15/5/6(水) 21:56 のコードにしてもらっていると思っているんですが。
前者はCheckBoxの名前が固定で、CheckBox3 が 祖父用 と決め打ちしています。
まぁ、Select/Caseコードの順番としては1,2,3,・・・が美しかったかもしれませんが
祖父ならこう、祖母ならこう、父ならこう と、年齢順に書きましたので、それぞれの
CheckBox●の値が順不同になったというわけです。

で、ついでに後者に関するメモ。後者は 祖父なら CheckBox3 だとは決めつけていません。
極端にいえば、初期値として設定されている CheckBox3 を Ojiisan という名前に変更
してあってもかまいません。

そうすると各行の 父 や 祖父 が、どのチェックボックスに紐付いているのかということを
把握する必要があります。で、ここで Dictionary が登場します。

  CommandButton1_Click の

    For Each ckb In OLEObjects
      If TypeName(ckb.Object) = "CheckBox" Then dic(ckb.Object.Caption) = ckb.Name
    Next

わかりにくかったかもしれませんが、ここでは

・シート上の CheckBox(それぞれの名前は決め打ちしていません)を抜出し
・キーをそのキャプション(父 とか 祖父 とか)、データとして、そのCheckBoxの名前(CheckBox5 等)
 で登録します。
 すでに説明しましたがCHeckBoxの名前を、初期値ではなく任意のオブジェクト名に変更してあってもOKです。

で、ComboBox4処理では、各行に現れる 父 や 祖父 といった文字列で、このDictionaryを読み
そのデータであるCHeckBoxオブジェクト名を取得して、そのCheckBoxを参照しています。
 
質問3.

>エクセルを起動したときに、今のCommundButonの機能を反映させたいです!
>CommundButonの機能は、コンボボックスの値をクリアし、チェックボックスをFalseにするものでしたが、
>今回は、・・・・・

βも、実行タイミングとしてはそのほうがいいと思っていました。
ちょっと時間ください。

1,092 hits

【77005】コンボボックスとチェックボックスの連動に関する質問 mohimohi 15/5/5(火) 0:04 質問[未読]
【77006】Re:コンボボックスとチェックボックスの連... β 15/5/5(火) 6:42 発言[未読]
【77009】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/5(火) 11:36 回答[未読]
【77012】Re:コンボボックスとチェックボックスの連... β 15/5/5(火) 13:50 発言[未読]
【77014】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/5(火) 18:56 回答[未読]
【77016】Re:コンボボックスとチェックボックスの連... β 15/5/5(火) 19:27 発言[未読]
【77017】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/5(火) 19:59 回答[未読]
【77018】Re:コンボボックスとチェックボックスの連... β 15/5/5(火) 20:19 発言[未読]
【77020】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/5(火) 21:46 お礼[未読]
【77021】Re:コンボボックスとチェックボックスの連... β 15/5/6(水) 7:46 発言[未読]
【77040】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/9(土) 20:40 質問[未読]
【77045】Re:コンボボックスとチェックボックスの連... β 15/5/10(日) 6:21 発言[未読]
【77048】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/10(日) 11:35 発言[未読]
【77051】Re:コンボボックスとチェックボックスの連... β 15/5/10(日) 14:10 発言[未読]
【77052】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/10(日) 14:54 発言[未読]
【77053】Re:コンボボックスとチェックボックスの連... β 15/5/10(日) 15:25 発言[未読]
【77054】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/10(日) 17:07 お礼[未読]
【77055】Re:コンボボックスとチェックボックスの連... β 15/5/10(日) 17:33 発言[未読]
【77056】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/10(日) 18:04 お礼[未読]
【77060】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/11(月) 23:27 発言[未読]
【77061】Re:コンボボックスとチェックボックスの連... β 15/5/12(火) 10:08 発言[未読]
【77064】Re:コンボボックスとチェックボックスの連... β 15/5/12(火) 19:10 発言[未読]
【77065】Re:コンボボックスとチェックボックスの連... β 15/5/12(火) 19:14 発言[未読]
【77066】Re:コンボボックスとチェックボックスの連... β 15/5/12(火) 19:54 発言[未読]
【77073】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/13(水) 8:13 お礼[未読]
【77074】Re:コンボボックスとチェックボックスの連... β 15/5/13(水) 9:14 発言[未読]
【77075】Re:コンボボックスとチェックボックスの連... β 15/5/13(水) 15:51 発言[未読]
【77076】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/13(水) 23:08 お礼[未読]
【77077】Re:コンボボックスとチェックボックスの連... β 15/5/14(木) 1:19 発言[未読]
【77078】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/14(木) 5:44 発言[未読]
【77022】Re:コンボボックスとチェックボックスの連... β 15/5/6(水) 21:56 発言[未読]
【77023】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/6(水) 22:17 お礼[未読]
【77013】Re:コンボボックスとチェックボックスの連... β 15/5/5(火) 13:56 発言[未読]
【77007】Re:コンボボックスとチェックボックスの連... γ 15/5/5(火) 10:04 発言[未読]
【77010】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/5(火) 11:43 回答[未読]
【77011】Re:コンボボックスとチェックボックスの連... γ 15/5/5(火) 13:44 発言[未読]
【77015】Re:コンボボックスとチェックボックスの連... mohimohi 15/5/5(火) 19:17 お礼[未読]
【77019】Re:コンボボックスとチェックボックスの連... γ 15/5/5(火) 20:59 発言[未読]

5284 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free