• ベストアンサー

関数のコピーのやり方

Excel2007です。 前日、関数のnowで教えていただき、追加質問です。 A4セルに、今の日時をいれ、その日時は固定します。 次の日に、A5セルに同じように日時を入れたい場合、 オートフィル機能で、ドラッグしたら、A4セルも、次の日時 に変わってしまいます。 関数mowの、データだけのコピーのやり方が わかりません。教えてください

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

Ctrlプラス;などの方法では時刻などは適用されませんので次のようなマクロで対応することでしょう。 例えばシート1のA列で今日の日付と時刻を入力したいセルをダブルクリックすることでそのセルにデータを入力する方法です。 データが既に入力されていればダブルクリックしても今日の日付と時刻は入力されません。例えばA1セルをダブルクリックして今日の日付と時刻を表示させた後で、数秒後にA2セルをダブルクリックすればA2セルに今日の日付と時刻を表示できます。A2セルを明日にダブルクリックすればA1セルには今日の日付と時刻を、A2セルには明日の日付と時刻を表示させることができます。 マクロの入力はシート見出しでSheet1を右クリックし、コードの表示を選択すれば画面が表示されますので次のコードを入力すればよいでしょう。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Chancel As Boolean) If Target.Column = 1 And Target = "" Then Target.Value = Now() End If Cancel = True End Sub なお、入力のデータを修正する場合にはセルを空白にしてからダブルクリックをすれば今日の日付と時刻を入力できますね。

その他の回答 (4)

回答No.4

皆さんもおっしゃっているように、「Ctrl + ;」のショートカットキーを使えば、その日の日付が入力されます。「Ctrl + :」なら、現在の時刻です。「Ctrl + ; →スペース → Ctrl + :」と入力すると、日付と時刻を合算したシリアル値となります。 NOW 関数は、日付と時刻を合算したシリアル値を返す関数です。日付のみにしたい場合は、TODAY 関数というのを使います。何らかの理由で時刻のみにしたい場合は、NOW から TODAY を差し引けばいいですね。 =now()-today() ※セルの書式を「標準」などに設定すると小数で、「時刻」などに設定すると時刻の形式で時刻のシリアル値が表示されます。 例えば常に翌日の日付を表示するなら、次式。 =today()+1 NOW に限らずどんな数式でも同じなのですが、既に数式によって算出されている結果(数値あるいは文字列)のみ保存するには、そのセル範囲をコピーし、(同じでもいいですが)他のセルなどに、値複写します。具体的には、コピーした状態で貼り付けたい場所にカーソルを置き、右クリックなどにより「形式を選択して貼り付け」ダイアログを起動。「値」を指定して OK します。

回答No.3

>A4セルに、今の日時をいれ、その日時は固定します。 NOW関数は「再計算すると、必ず今日の日付になる」ので「入力日に固定」は出来ません。 セルに今日の日付を入れて、入れた日に固定したいなら、つまり「入力日に固定したい」なら、セル上で「Ctrl」+「;」を入力しましょう。 A4セルに今日の日付を入れ、明日、A5セルにもその日の日付を入れたいなら、どちらも「Ctrl」+「;」で良いです。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 A5セルに入力した時の日時ではなく、その直前に、どこかのセルに値を入力した時の日時(つまり、先に他の列のセルにデータを入力してから、最後にA列に日時を入力するようにします)になってしまいますが、次の様な方法は如何でしょうか?  まず、適当なセル(ここでは仮にSheet2のA1セルとします)に次の関数を入力しておきます。 =NOW()  次に、Sheet2のA1セルと、日時を入力するシートのA4セルの書式設定の表示形式を[ユーザー定義]の yyyy"年"mm"月"dd"日"am/pmhh"時"mm"分"ss"秒" 等としておきます。  次に、以下の操作を行って、日時を入力するシートのA列のセルに、入力規則を設定します。   ※以下は準備段階として、A4セルに何も入力されていない状態から設定を開始した場合の操作方法です。 Excelウィンドウの[データ]タブをクリック   ↓ 日時を入力するシートのA4セルを選択   ↓ 「データツール」グループの[データの入力規則]ボタンをクリック   ↓ 現れた選択肢の中にある[データの入力規則]をクリック   ↓ 現れた「データの入力規則」ダイアログボックスの中にある[設定]タブをクリック   ↓ 「入力値の種類」欄をクリック   ↓ 現れた選択肢の中にある[リスト]をクリック   ↓ 現れた「元の値」欄に次の数式を入力 =Sheet2!$A$1   ↓ 「データの入力規則」ダイアログボックスの[OK]ボタンをクリック   ↓ オートフィル機能を使用するなどして、A4セルを下方に向かってドラッグし、A4セルに設定した書式や入力規則等をコピーする  これで準備は完了です。  そして、A4以下に日時を入力する際には、それに先立って、他の列にデータを入力しておいてから、A列のセルを選択した際に、セルの右端に現れる現れる「▼」マークをクリックして下さい。  すると、その直前に、どこかのセルに入力を行った時の日時が、セルの下に表示されますから、その日時をクリックしますと、日時が入力されます。  尚、どこかのセルに入力を行わずに「▼」マークをクリックしますと、最後に再計算が行われた時(最後にそのExcelブックを開いた状態で[F9]キーを押した時か、或いはそのExcelファイルを開いた時かの、どちらか遅い方の日時)が表示されます。  又、他のセルにデータを入力する事無く、「▼」マークをクリックした際に現れる日時を更新させたい場合には、[F9]キーを押すか、或いは、関数が入力されていないセルをダブルクリックしてから、そのダブルクリックしたセル以外のセルをクリックする事でも、表示される日時を更新する事が出来ます。

  • bon459
  • ベストアンサー率36% (4/11)
回答No.1

NOW()は常に現在の日付を表示する関数ですので、式が再計算されるごとにブックを開いている日付に 変化してしまいます。 ご使用の状況からすると、A4セルにはCtrl + ;等でその日の日付を入力し、 翌日以降はそのA4セルからオートフィルを使用すると良いのではないでしょうか?

関連するQ&A