• ベストアンサー

エクセル2007 VBA DTPicker

エクセル2007 VBA のユーザーフォームに DTPicker を配置しています。 DTPicker のチェックボックスを常時表示させた状態でオン・オフをプログラムで切り替えるコードを教えて下さい。 例えば A1セルが空白であれば DTPicker のチェックボックスが表示された状態でオフ(False)にして A1セルに日付が入力されていれば チェックボックスをオン(True) にしてその日付を表示する方法です。 オフの時は当日を表示させる予定です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

オフ(False) ・Value プロパティへ Null を設定。 オン(True) ・Value プロパティへ適当な日付を設定。 を試してみて下さい。

nonki_apex
質問者

お礼

有難う御座いました。 狙った動きをしてくれました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

「例えば」の所で、 A1セルが空白であれば、のところで >チェックボックスが表示された状態で・・はどういうことですか?なぜチェックボックスが出てくるのか。 ーー 全体的にDTpickerで、シートのセルに対して、どういう場合に、どうしたいのか? ーー アクチブセルにDTpickerで選択した日付をセットする、ということは簡単なコードでできるが。

nonki_apex
質問者

補足

回答有難う御座います。 DTpicke のプロパティーで True を選択すると、フォーム表示時にチェックボックスが表示(チェック状態)されます。手動でチェックボックスをクリックするとチェックだけ外れてボックスはそのまま残ります。 これをマクロで実施させたいと思っています。 フォームを利用して工事台帳を作成しています。工事Noで検索を行い、その工事が着手または終了しているかを調べようと思っています。

関連するQ&A

  • エクセルで文字列をチェックボックスのように…

    エクセルで、文字列をチェックボックスのように、オン、オフができますか。 分かり易くいうと、チェックボックスにもチェックする四角の横に文字を書くことができますが、この四画のボックスを表示しないで文字のみ表示するとか、コントロールツールボックスのラベルを、クリック1回で処理が終了するのではなく、チェックボックスのようにクリックするたびにTrue、Falseと、指定したセルに表示すると言うことです。 分かり易くと書きましたが、分かりにくくなってしまったかもしれませんが、よろしくお願いします。

  • チェックボックスのリンク先を変更したい

    2枚のシートがあります。 1枚のチェックボックスの状態を別シートのセルにリンクしています。 例えばこんな状態です↓ <シートA>   A     B  C 1 ON(B!C1) 001 イグチ 2 OFF(B!C2) 002 アオキ 3 ON(B!C3) 003 ウエダ ※ON/OFFはチェックボックスのことです。  ()内がリンクセルです。 <シートB>  A  B    C 1 001 イグチ TRUE 2 002 アオキ FALSE 3 003 ウエダ TRUE シートAは表示用のシートで実際のデータ操作はシートBを使います。 シートBで並び換えを行ってもシートAのチェックボックスのリンク先は 並び換え前から変わりません。 並び替え後のセルに自動的にリンク先が変わるようにするにはどのように設定すればよいのでしょうか? よろしくお願いします。

  • エクセル 数式入り等のセルの個数について

    こんにちわ。教えて下さい。 セルの個数を数えたいのですが、下記のいづれかの方法で出来るやり方はありますでしょうか? ☆条件付き書式で色をつけた空白のみのセルの個数の数え方(列に対応) (1)A1に今日又は今日以前の日付が入って、B1にはA1の日付から2週間たっても、何らかの日付・文字が入らない場合は空白の状態で色がつくようになっています。(文字が入力されたら色は無しになります。2条件が1つのセルに設定されています) 一番ベストなのは、この状態で空白で色のついているセルの個数が数えれば一番いいです。 もし、上記で駄目な場合、 ☆C1に別の数式で、B1が空白かそうでないかで、「FALSE」「TRUE」が表示されるように設定して、その状態で「FALSE」の個数を数えるっていうやり方まではわかるのですが、A,B,C列とも、入力していけば行が増えていくので、先にC列に数式をコピーしておくと、A列に日付が入力されていなくても、「FALSE」が表示されます。A列に日付が入力されている行での「FALSE」の数を数えるという方法はありますか? 説明が下手ですみません。。。 つまり、自分がない知恵で思った、2つの方法のどちらかででも、数える方法があれば教えて下さい。もちろん、もっといい方法があれば幸いです。

  • VBAにてフォームコントロールの変更

    VBAでフォームコントロールのチェックボックスのON・OFFを変更することは可能でしょうか。 具体的にはA.xlsmのマクロを実行して、 A.xlsmのセルA1が0ならB.xlsの"チェック 1"がOFF状態に。1ならON状態になる。 以上のような仕組みを作りたいです。 (フォームコントロールなのは様式(B.xls)がフォームコントールで作成されており、変更不可のため) ですが、同じシート内でもチェックボックスのON・OFFができずに挫折しそうです。 まずは同一シート内で作ってみようと思い下記コードを作成したのですが、 ”SubまたはFunctionが定義されていません”となってしまいます。 Public Sub test() If Range("A1") = 0 Then CheckBoxes("チェック 1").Value = False ElseIf Range("A1") = 1 Then CheckBoxes("チェック 1").Value = True Else MsgBox "無効な値が設定されています" End If End Sub エラーは”CheckBoxes”のところで出てしまいます。 どなたかご教授ねがいます。

  • エクセル VBA チェックボックスについて

    よろしくお願い致します。 OS:XP エクセル2003 VBAのことは、まったくの初心者です。 質問なのですが、下記のようなチェックボックス7にチェックが入れば、チェックボックス8~11に自由にチェックが入れれるようになり、逆にチャックボックス7にチェックが入ってない場合は、チェックボックス8~11のチェックはクリアされ、チェックできないものを作りました。 ここから、チェックボックス7にチェック入れたあとは、必ずチェックボックス9~11のどれかにチェックが入っている状態(ラジオボタンのような)で、チェックボックス7にチェックが入ってなかったら、8~11のチェックがクリアで尚且つ、チェックができなくなるようにするにはどうすればよいでしょうか? よろしくお願い致します。 Private Sub CheckBox7_Click() If CheckBox7.Value = True Then CheckBox8.Enabled = True CheckBox9.Enabled = True CheckBox10.Enabled = True CheckBox11.Enabled = True Else CheckBox8.Value = False CheckBox9.Value = False CheckBox10.Value = False CheckBox11.Value = False CheckBox8.Enabled = False CheckBox9.Enabled = False CheckBox10.Enabled = False CheckBox11.Enabled = False End If End Sub

  • エクセルのチェックボックスでの行の表示の切り替え

    エクセルでチェックボックスを使用して行の表示を切り替えています。 これに他のチェックボックスのON-OFFで表示する行を変えたいと思います。 例えばチェックボックスが3つあり チェックボックス3のON-OFFで行10-20を非表示と表示に切り替えている マクロがあります。 それをチェックボックス1がONの時は行11-20が非表示に チェックボックス2がONの時は10-19が非表示になるようにマクロに追加 するにはどうすればよいでしょうか? ちなみにチェックボックスはActiveXの方を使用しています。 今のコードは Private Sub CheckBox3_Click() If CheckBox3 = True Then Range("10:20").EntireRow.Hidden = False Else Range("10:20").EntireRow.Hidden = True End If End Sub です。 よろしくお願いします。

  • エクセルの検索関数について

    エクセルの検索関数について、以下のことで教えてください。 以下のような甲~丁製品データが並んでいます。B列にはチェックボックスを配置し、例えば「丙社製品」を選ぶ場合にB3にあるチェックボックスにチェックしてA3セルが「TRUE」となるようにセットされています(チェックしたチェックボックスは■で表現しています)。チェックされる(TRUEとなる)製品は一つだけです。 <シート名:製品リスト> A B C 1 FALSE □ 甲社製品 2 FALSE □ 乙社製品 3 TRUE ■ 丙社製品 4 FALSE □ 丁社製品 そこで、『本シート内A1~A4中の「TRUE」に該当する製品名(C列の何れか)を拾って』別シートのあるセルに「○社製品」と掲載したいのです。 IF関数でも可能なのですが、製品が7つ以上の場合には使えません。VLOOKUP関数をやってみましたが、A列の「TRUE」「FALSE」がランダムになる為、「昇順」とならず、エラーが出てしまいます。 単純なことなのかもしれませんが、壁に当たっています。 どなたか分かる方がいましたら教えてください。

  • Excelのチェックボックスの有無で複数セルの表示を○に変えたい

    Excelのチェックボックスのチェックを付けて、複数個所の表示を変えたいと考えています。 チェックボックスにチェックをつけたら、複数のセルに○が表示されるようにしたいのですが、設定の仕方が分かりません。 どなたか教えてください。 (現在一つのセルにだけ○を表示させる事は出来ています) 【現在】 (1)チェックボックス「1」を配置 (2)以下の設定。 コントロールの書式設定→コントロールタブ選択。→リンクするセルでa1を指定→ok ⇒チェックボックス操作で、a1にtrue・falseが表示されている。 (4)b1に数式を入力する。=IF(A1=TRUE,"○","ー") (5)チェックが入った場合はb1に○が表示されている。 【やりたい事】 (1)チェックボックス「1」にチェックが入った場合、b1,d1,f1,h1,j1,l1,等の複数セルに○を表示させたい (2)チェックボックス「2」、を同様に作成し、チェックを入れた場合、 b1,d1,のセルに○を表示させたい。 (チェックボックス「1」にチェックが入ってない場合でも「2」にチェックが入れば、○を表示させたい)

  • エクセルのチェックボックス

    エクセルで作成した表  日付と品名とチェックボックスと金額が入ったセルがあります。    例  A           B        C 日付          金額   チェックボックスと金額 1999/12/1   1000   □  500 2000/10/1   2000   □  600 という風にデータが入った表を日付ごとに並べ替えをしようとすると チェックボックスのデータだけチェックマークがオンのデータをオフのデータが 並びかえがされず、困っています。 どうしたらいいのでしょうか?

  • エクセルVBAでのチェックボックス操作

    エクセルを利用した、VBAで困っています。 所定のsheetに埋め込まれたチェックボックスに対して、 別sheet内のセルの値を参照し、結果をオン、オフという 操作を行いたいのですが、チェックボックスに対するVBAでの指定方法 が分かりません。 イメージとしては (1)Sheet1内にチェックボックスがある。  該当チェックボックスは7個のチェックボックスで構成されており  それぞれにchb1~chb7といったオブジェクト名がある。 (2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1)  がオン値がなければオフのまま (3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2)  がオン値がなければオフのまま という感じです。 先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・ 良い方法があれば教えてください。