• ベストアンサー
  • 困ってます

Excel2003 チェックすると日付が自動表示(日付をチェック日のままに)

Excel2003で、町内回覧のチェック表を作成したとします。 その際、チェックボックスにチェックをすると、横の閲覧日に自動的に日付が表示されるようにしました。 しかし、エクセルの表を翌日に開くと日付も更新されて、常に「今日」(TODAY)が表示される状態です。 閲覧日=チェックした日の日付のままにする、具体的に教えて下さい。 こちらで検索したところVBAを使えばいいようですが・・・ ■エクセルでの、日付の自動入力について   http://okwave.jp/qa1211065.html

この投稿のマルチメディアは削除されているためご覧いただけません。
noname#120826

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数3513
  • ありがとう数7

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

  • ベストアンサー
  • 回答No.6
  • myRange
  • ベストアンサー率71% (339/472)

回答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)を繰り返す これで質問の件ができます。 また、上記が上手くいかないときは質問者が 回答のとおりやってないことになりますので じっくり回答を読んで初めからやり直すこと。 以上。  

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございました。

関連するQ&A

  • エクセルのあるページに履歴を自動表示させたい。

    エクセルで関数、VBAを利用して、データ加工などをしています。素人でえすが、関数 数年、VBA 数年、の経験があります。 今回、事情があって、あるデータを逐次入力する必要が生じました。できれば、エクセルを開いた時に、日時・時間を自動表示させたいのですが。 もちろん、=NOW()と、=TODAY()の関数で、セルに自動表示はできますが、・・。 目的は、履歴です。 具体的には、新しいエクセルのシートのA1に(NOW関数で?)日付・時間を表示させて、閉じます。その次このファイルを開くと、A1には、前回の日付。時刻が表示され、A2に今回開いたときの日付・時刻が表示されます。 以下、これを繰り返すと、A列には、ファイルを開いた日時の履歴が表示されます。関数・VBA等を使って、このような処理が可能でしょうか。教えて下さい。 よろしくお願いします。

  • エクセル自動機能について

    エクセル自動機能について (状況) エクセルのTODAY機能で日付を表示させております。 そして、表には過去・現在・未来の日付が記載されております。 (疑問) この表で、過去・現在・未来の日付を自動的に色分けできる機能などはあるでしょうか? どなたかご存知の方、おられましたら教えていただきたいです。 宜しくお願い致します。

  • エクセル2007 日付をそろえて表示したい

    エクセル2007 日付をそろえて表示したい エクセル初心者です。 日付をそろえて表示させたいのですが、どうすればいいでしょうか。 たとえば、2010/5/29と2010/10/29を縦に並べて表示したい場合、 自動で5(月)の前に空白を入れてくれるような機能は2007にはないでしょうか。 すでに入力した後で上司に注意され、困っています。

その他の回答 (5)

  • 回答No.5
  • myRange
  • ベストアンサー率71% (339/472)

>マクロについては基礎知識はありますが、あまり詳しくありません。 >操作方法の手順を教えて頂けたり、 >VBAのコード?をコピーペースト(もしくは一部変更するだけ)といった簡単な方法 ということは提示したコードをどこそこにコピペしなさい、 と言われれば、それを理解でき、指定の場所にコピペ、修正加筆でくるとことですね? で、あれば簡単にできますが、その前に重要な?確認事項がありますので補足願います。   チェックボックスには、2種類ありコードの書き方、書く場所が違ってきますのでそれを確認します。 質問添付の画像を見るとそれがデフォルトの状態であれば、 コントロールツールボックスのCheckBoxと判断できますが、 もう一方のCheckBox(フォーム)も3D表示に設定すると 同じようになりますので、確実には判断できません。 で、次のようにして確認します。 ●チェックボックスの上で【右】クリックする (1)選択状態になれば、「フォーム」のチェックボックス (2)何の反応もなけば、「コントロールツールボックス」のチェックボックス ということになりますのでそれを教えてください。  

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 補足を追記しました。

質問者からの補足

<セルC6のマクロ> Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/5/20 ユーザー名 : ****** ' ' Range("F6").Select Selection.Copy Range("E6").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.NumberFormatLocal = "yyyy/m/d" Range("J18").Select End Sub <コントロールの書式設定> コントロール 「値」  ●オン リンクするセル $G$6 「レ」3-D表示(3)

  • 回答No.4
  • mt2008
  • ベストアンサー率52% (885/1701)

現在は、「フォーム」のチェックボックスを使い、チェックの結果をF6にリンクしているようですね。 「フォーム」のチェックボックスは、チェックをイベントとして扱えなかったように思いますので、現在のままでは無理だと思います。 「コントロールツールボックス」のチェックボックスでしたら、チェックをイベントとして取得できますので、その時の日付をセルに入れる事が可能です。 「コントロールツールボックス」のチェックボックスをシート上に貼り付けて、以下の様なマクロを入れて見てください。 Private Sub CheckBox1_Click()  If CheckBox1.Value = True Then   Range("E6") = Now()  End If End Sub でも、質問や補足を見る限りではご自分で修正は難しそうな感じですね。 もっと詳しい人に頼んで作り直してもらっては?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

アドバイスありがとうございます。 自分で修正できないようでしたら、他の人にお願いしてみます。

  • 回答No.3

>セルE6をアクティブにしたところ=IF(F6=TRUE,$B$3,"") なるほど。 >ちなみにB3は、=TODAY() まぁ上記の数式を見れば想像がつきますね。 C6のチェックボックスをクリックいた際には アクティブセルはC6のままでしょうか? であれば Selection.Offset( ,2 ).Select で 対象となるセルを移動させる必要がありますね。 僕自身チェックボックスとか あまり使ったことないので詳しくないですが 「フォーム」で作ったチェックボックスと「コントロール ツールボックス」で作ったチェックボックスでは 操作の仕方が違うような話を聞いた事がありますよ。 下記は そのまま 上手く行くかどうか分かりませんが、 一旦「チェックボックスにチェックを入れる」というマクロの記録を取ってみてください。 その後「Alt」+「F11」でVBEを起動して書かれている構文の後ろに ActiveCell.Select Selection.Offset( ,2 ).Select Selection.PasteSpecial Paste:=xlPasteValues を貼り付ければOKだと思います。 その際 元々の構文に あなたがチェックを入れたセルを選択するような 構文があると思うので それを削除しないと永遠にそのセルしか対応しなくなるのでご注意ください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

アドバイスありがとうございます。

  • 回答No.2

#1ですが、まず チェックボックスにチェックを入れた時に どのセルがアクティブになるのかが分からないと「そのまま貼り付けられる構文」は提示出来ませんよ? (そもそも僕にそこまで出来るかは疑問ですが。。) ちなみに この1行がすでに「値で貼り付け」の構文です。  Selection.PasteSpecial Paste:=xlPasteValues チェックを入れた後に閲覧日のセルがアクティブになるのであれば 上の構文を入れるのみでOKでしょうが、そもそも「どうしてチェックを入れたら日付が入るのか」 が分かっていないと その後の動作へ繋げ方が分からないです。 アクティブセルを変更する際には Selection.Offset(行数,列数 ).Select を使います。 あとは 本当に「=TODAY()」で日付が表示されているのか? ここも疑問なので「値で貼り付ければ解決する」とも言い切れないですよね。 本当に関数で表示されているのであれば値で貼り付ければ解決しますが。 なので その作ってくれた人に再度依頼をした方が早いのではないでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

アドバイスありがとうございます。 上記の図で、 セルE6をアクティブにしたところ =IF(F6=TRUE,$B$3,"") となっていました。 ちなみにB3は、 =TODAY() です。 >作ってくれた人に再度依頼をした方が早いのではないでしょうか? 作成者本人が、チェック日=閲覧日(チェック日付のまま)にするのは難しいと言っていたので、自力で解決できないかと思い質問しました。

  • 回答No.1

>チェックボックスにチェックをすると、横の閲覧日に自動的に日付が表示されるようにしました。 すごいですね。 これ どうやってやるんですか? やり方によってなので参考までになのですが 閲覧日をアクティブにするマクロと値で貼り付けるマクロを組み合わせるというのはいかがでしょうか? Selection.PasteSpecial Paste:=xlPasteValues ちょいとお試しあれ?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 >チェックをすると、横の閲覧日に自動的に日付が表示~ 詳細は省きますが、実はこの表は知人が作成してくれました。 >閲覧日をアクティブにするマクロと値で貼り付けるマクロを組み合わせる マクロについては基礎知識はありますが、あまり詳しくありません。 操作方法の手順を教えて頂けたり、 VBAのコード?をコピーペースト(もしくは一部変更するだけ)といった簡単な方法を教えてもらえるとうれしいです。

関連するQ&A

  • Excelで日付と時間の自動入力

    教えてください。 エクセルで表を作っているのですが、 D列に文字を入力すると、 A列に入力した日付 B列に入力した時間 を「自動で」表示させたいのですが…マクロやVBAなどでできますでしょうか? できれば、D列の文字を消すと日付と時間も消えるようにしたいです。 初心者で申し訳ないのですが、よろしくお願いします。

  • エクセルで日付と曜日を横並びで自動表示

    いつもお世話になっています。エクセルに関して質問させていただきます。 今度会社の残業計画を作成する事になったのですが、表に西暦と月を入力すれば曜日と日付を自動出力させたいのですが、いろいろなHPを拝見させてもらっても縦並びの為、エクセルをそれ程使いこなせていない為応用ができませんでした。(画像参照) そこでエクセルに詳しい方、是非横並びの表に日付と曜日を自動出力できる関数の式をご教授下さい。(28日までしかない月などは28日まで、31日までの時は31日まで表示できる様にしたいです。) よろしくお願い致します。

  • Excelマクロ(excel4.0)のTODAY関数で日付が正常に表示できない

    Excel VBAで開発されたソフトの改造を行っているのですが、初めてのVBAで悪戦苦闘しております。 Excel2000で開発されたソフトでマクロ(excel4.0)が組み込まれてますが、下記の方法で日付を表示すると"2004/10/7"と表示されてしまいます。 =FORMULA(TODAY(),!HIZUKE) 当たり前なのですが、下記だと"2008/10/8"と表示されます。 =FORMULA("2008/10/8",!HIZUKE) パソコンの時計は 2008/10/8 に設定されてます。 HIZUKEのセルの書式設定は「日付-2005/3/15」の種類で設定してます。 Excel2000とExcel2007で確認しましたが、同じ症状です。 違うパソコンで確認しましたが、改善できず困ってます。 原因がわかる方、ご教授いただけると助かります。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Office2007)

  • 予定日までの日付までを自動入力するには?

    Excelで予定日までの日付を表に自動的に入力されるようにするには、どうしたら良いでしょうか? 例・ 今日の日付を「4月15日」とします。 A1 に予定日を入力とします。    A1 4月18日 ←TODAY()+3 で指定。プラスの日付は常に変更される。(+2,+10など)    B1 4月15日 ←今日の日付が入る。    B2 4月16日 ←以下、 A1 の日付まで続く。    B3 4月17日    B4 4月18日    B5  月 日 ←A1を超えると、数字を除いた「 月 日」の表示がされる。    B6  月 日    :    : A1で指定した日付が3日後なら、今日から4日間の日付。10日後なら、今日から11日間の日付という形で自動で入力されるようにしたいのです。 A1 のTODAY()+後の数のみの変更で、入力できたらと思っています。 ご協力、お願いします。

  • エクセル チェックボタンについて

    エクセルで回覧板を作成しております。閲覧者の所にチェックボックスを作成したのですが、チェックボックスを作成する際に点線の枠がありそれを消したいのですが、どのようにすれば消せるのでしょう。また、コピーををするとチェックボックスの位置がバラバラになってしまいます。中央に寄せるにはどのようにすればいいのでしょうか。チェックボックスを表示させ罫線を書く事は可能でしょうか。 宜しくお願いいたします。

  • エクセル 日付に数字を足して表示させる

    エクセルで分らない所があるので質問させてください。 エクセルの関数のTODAYで日付を表示させます。 例えば07/11/08だったとして、年に50 月に12 日に0を足し、572308と表示させていのですが何か良い方法はないでしょうか? お願いいたします。

  • 日付の表示について

    エクセルの表に今日の日付を表示させたいのです。 いちいちその日の日付を入力するのではなくて、 その表を開いた日、今日開いたら2003/08/20で明日ひらいたら、2003/08/21という感じにできますか? よろしくお願いします。

  • エクセルの自動日付入力

    エクセルで、=today()を使い日付が勝手に入るようにしています。 しかし、このtoday関数は、日付が翌日になると、その翌日の日付になるほか、後日そのファイルを開くとその開いた日で表示されてしまいます。 そこで、ファイル作成日の日付をそのまま残しておくためにどのような方法がありますか? 分かる方がいらっしゃいましたら、よろしくお願いいたします。

  • エクセルで自動入力してる過去の請求書・見積書の日付

    見積書や請求書の日付を、TODAYの自動入力にしています。 過去に提出した見積書の日付などを確認したいと思ってエクセルを開くと、日付の部分が自動入力なので本日の日付に変わって表示されます。。。 過去の日付を確認したい場合は、どうすればよいですか? 過去の日付のまま開くことは不可能なんでしょうか? よろしくお願いいたします。

  • エクセルの日付自動表示

    月が入ったタイトルをワードアートで表示した場合・・・ 月の入力を変えただけで自動でその月の日付を変える方法はありますか? 1~4行までタイトルが入っています。 できない場合、ワードアートはそのままに、自動で日付を変える方法はありますか? 例えば、 「8月予定表」というタイトルをワードアートでつくっているとします。 一ヶ月分の日にちが入った表があり、タイトルの8月の部分を9月にしたとき、 自動で表の日にちがかわるやり方です。 表に余計な文字は表示したくありません。 できるでしょうか?