質問: excel2003 チェックすると日付が自動表示(日付をチェック日のままに) excel2003で、町内回覧のチェック表を作成したとします。 その際、チェックボックスにチェックをすると、横の閲覧日に自動的に日付が表示されるようにしました。 しかし、エクセルの表を翌日に開くと日付も更新されて、常に「今日」(today)が表示される状態です。 閲覧日=チェックした日の日付のままにする、具体的に教えて下さい。 こちらで検索したところvbaを使えばいいようですが・・・ ■エクセルでの、日付の自動入力について http://okwave.jp/qa1211065.html
回答: 回答5、myrangeです。 回答5をちゃんと読んでませんねぇ。。 <セルc6のマクロ> sub macro1() ' macro1 macro ****** 中略 ***** end sub こんなわけの分からんものを補足せよとは言ってませんが。。。 チェックボックスを右クリックして選択されるかどうか、その一言の補足要求ですよ。 要求どおりの補足を無視してなぜ自分勝手な補足をするのでしょうかねぇ、 そうは言っても書式の提示で一応目的は達成できはしますが。 ●ということで、これ以後こちらの要求を無視した場合は その時点で回答は無しということを頭にいれておくこと。 (更なる疑問点) 回答2のお礼の >上記の図でセルe6をアクティブにしたところ >=if(f6=true,$b$3,"") これからは、c6上のチェックボックスのリンクセルは、f6と判断できます。 が、今回の補足には ><コントロールの書式設定> >▲リンクするセル $g$6 と、▲リンクするセルは、g6 となってます。 ほんとのところはどうなんでしょうか。 ま、それは質問者に修正してもらうとして一応回答を書いておきます。 ■リンクセルは、f列とする ■g列だったら自分で修正すること 標準モジュールに以下のコードをコピペする。 '---------------------------------------------- sub dateset(rowno) if cells(rowno, "f").value = true then cells(rowno, "e").value = range("b3").value else cells(rowno, "e").value = "" end if end sub '-------------------------- sub check1() call dateset(6) end sub sub check2() call dateset(7) end sub sub check3() call dateset(8) end sub '------------------------------------------ 上記は、c6~c8までのチェックボックス3つ分 dateset(番号)の番号は、行番号のこと c6の上のチェックボックスだったら6になり c7の上のチェックボックスだったら7になる 要領は分かったと思いますが、 例えば、c6~c14までの9個のチェックボックスなら '-------------------------- sub check1() call dateset(6) end sub ・・・・・・ ・・・・・・ ・・・・・・ sub check9() call dateset(14) end sub '---------------------------- となる。 上記が済んだらvbe画面を閉じてエクセル画面にもどり以下をする (1)c6上のチェックボックスを右クリックして 表示されるメニューで、マクロの登録をクリック (2)表示されるマクロ登録ダイアログに上記のマクロ(check1,2,3・・・)が 表示されてるので、該当マクロを選択して、okボタンをクリックする (3)次に、c7、8,9・・・のチェックボックスについて、 上記(1)(2)を繰り返す これで質問の件ができます。 また、上記が上手くいかないときは質問者が 回答のとおりやってないことになりますので じっくり回答を読んで初めからやり直すこと。 以上。