- ベストアンサー
今日の日付をマクロ化したいんです
仕事でエクセルを使って受付表を作ってます。受付日を今までいちいち入力してたんですが、できればマクロをつかって毎日の入力作業を軽減したいと思うのですが、以前、関数のTODAYをマクロにしたんですが、これだと日付が更新されてしまうのでダメです。どうすればいいでしょうか?OS Xp エクセル2002です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 2 And Len(ActiveCell) = 0 Then ActiveCell = Date Cancel = True End If End Sub このマクロをVBEの画面を開いて、エクセルオブジェクトから入力シートを選んで貼り付けてください。 これは、B列を日付入力セル仮定して、B列のいずれかのセルをダブルクリックしたとき、そのセルが空白だった場合、当日の日付が自動的に入力されるようにしたものです。 もし、日付入力セルがA列なら、2行目の If Target.Column = 2 を If Target.Column = 1 に変更してください。 こんなもんでいかがでしょうか。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
#1のご回答も良いと思う。 敢えてマクロを作るなら、本日ボタンをつくって、押さないと、日付がセルにセットされないようにすれば、マクロで日付をセットすると、関数と違って、別の日に別の日の 日付になることはありません。(ワークブックを開くとあるセルの値が開いた日付に自動的になるようなのはだめです。) Private Sub CommandButton1_Click() ActiveCell = Date End Sub 興味があれば ボタンをシートに貼りつけて、ボタンの場所でダブルクリックすると、画面がVBE画面に代わり Private Sub CommandButton1_Click() End Sub が出ますから、真中に1行打ちこむ(コピー貼りつける) シートに帰って、 三角定規と鉛筆のアイコンの凹みをクリックしてなくす。 (デザインモードでなくなる)。 操作は本日日付をセットしたいセルをポイントしておいて ボタンをクリックします。 暦日1日前なら ActiveCell = Date-1 でOK。
お礼
ご回答ありがとうございます。ボタン一つで作業できるのはほんと便利ですね。参考になりました。
- laputart
- ベストアンサー率34% (288/843)
選択したセルが空白の時だけToday関数を使う また既に日付が入っている場合は 更新しない(何もしない)という事でしょうか? 設定されたい条件をもう少しご説明願いませんか?
補足
ご回答ありがとうございます。受付日を入力するセルに、これまではいちいち日付を入力してたんですが、マクロを使ってボタンひとつで入力したいと思ったんですが・・ただ、TODAY関数をマクロの登録すると、受付日が更新されてしまうので、どうすればいいのかなぁ?言葉足らずでスイマセン。
- mshr1962
- ベストアンサー率39% (7417/18945)
ショートカットキーで現在の日付や時刻を入力できますよ。 日付 Ctrl + ; 時刻 Ctrl + :
お礼
このようなやり方があったんですね。このやり方でも十分作業の効率化が図れそうです。ありがとうございます。ただ今後のことも考えて、マクロのやり方も知っておきたいです。
お礼
ご回答ありがとうございます。参考になりました。