
エクセル初心者です。シート内で複数の入力時間を、更新させずに表示させたいのですが、どのようにすればよいのでしょうか?
A1にある数値を入力したらB1にその入力時間を表示させ、一定時間後にA2に別の数値を入力すると、B2にその入力時間を表示させたいです。
B1、B2の入力時間とは、あくまでもそれぞれの入力した時の時間を表示させたく、また、表示後は時間の更新はさせたくないです。
”=NOW()”だと、入力のたびに過去の表示時間まで同時に更新されてしまい、また、複数の表示時間が全て同じ時間となってしまいます。
簡単な関数などでできれば助かりますが、マクロやVBAでないとできないというのであればやってみたいと思いますので、できる方法で教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
普通の操作は、時刻の入力は、CTRLを押しつつ:キーを押します。
ーー
VBAの勉強してない人には進められませんが、
シートタブを右クリック
コードの表示
Generalと見えているところをクリク
Worksheetを選ぶ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
と出てくるが無視
SelectionChangeと出ている部分をクリック
Changeをクリック
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
となる。
この間にコードを入力する。
Targetが、セルの値を変化させたセルなので
その隣のセル Offset(0,1) に時刻を入れるのは
Target.offset(0,1)=Time
=dateにして書式で時刻だけ見せるほうが、入力日も残って、良いかもしれない。
ただしVBAででも隣に時刻を入れるとセルの値の変化イベントが起こり、ぐるぐる回りになるから、その機能を1時的に止めて、隣のセルに時刻をセットし、イベント機能を復活させる。
また、例えばA1:A30のセル以外は、自動時刻セットが困るので
例えば、A列以外のセルは除外のコードを入れる。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
If Target.Row >= 31 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = Time
Application.EnableEvents = True
End Sub
細かく言えば、A列を入力後、DELで消したときの対策など必要だが
省略。
ーー
こんなにいっぱいVBAの色々なことが詰まっている内容を今すぐやろうというのはむりだよ。
まあ丸呑みしてこのキッカケでVBAを勉強してください。
丁寧なご回答ありがとうございました。
コードを試してみて、希望通りの表示ができました。
VBAにはじめて触れましたが、VBAの面白さの一端を感じました。これをきっかけに、上記のコードの説明を読み返しながら勉強してみたいと思います。
No.1
- 回答日時:
関数では、無理です。
ひとつ手間ですが、B1セルで、Ctrl+*で時間を入れます。
VBAでは、「ツール」「マクロ」「VB Editor]でエディター開く
「表示」「プロジェクトエクスプローラー」表示
時刻を入れるシートをクリック
そのシートのコードに
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Target.Offset(0, 1).Value = Time
End If
End Sub
のコード、コピィしてみてください。
Private Sub Worksheet_Change(ByVal Target As Range)は
その、シートに変更があった場合に実行される。
Target.Column = 1は、変更されたのが、1列目(A列だったら)
Offset(0, 1)は、1列左に時間を入れるという意味です。
VBAは別途、勉強してみてください。
早速ご回答ありがとうございました。やはり関数では無理なんですね。
Ctrl+*で時間を入れるというのは、とりあえず手っ取り早く入力するには使える機能ですね。知りませんでした。
VBAでのコードも試してみて、希望通りの表示ができました。VBA自体の使い方がまだよく分かっていないので、コードを実行させても魔法を見ている感じですが、これを機会に勉強してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
在宅ワークのリアルをインタビュー
ベテラン在宅ワーカーと 在宅ビギナーの方々に、在宅ワークの実情をお教えいただきました。
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
ExcelでTODAY関数を更新させない方法
Excel(エクセル)
-
◆ EXCEL自動入力日付を自動で変わらないようにする方法
Excel(エクセル)
-
4
EXCELのNOW()関数の値の固定する方法は?
Excel(エクセル)
-
5
エクセルで時刻を自動入力する方法
Excel(エクセル)
-
6
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
7
Excelで日付と時間の自動入力
Windows Vista・XP
-
8
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
9
Excelの関数で時刻を固定する方法
Excel(エクセル)
-
10
[EXCEL]ボタン押す→時刻が表に入る方法
Excel(エクセル)
-
11
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
12
Excel 日付関数の値を固定値に
Excel(エクセル)
-
13
エクセルでのセルへ入力日の記録方法に関して
Excel(エクセル)
-
14
Excel の関数で TODAY() の固定化
Windows Vista・XP
-
15
EXELでセルに入力した年月日時刻を記録する方法
Excel(エクセル)
-
16
(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?
Excel(エクセル)
-
17
【エクセル】行の最終更新日を、あるセルに自動で入力させる方法。
Excel(エクセル)
-
18
EXCELで日付と時刻が入ったセルを日付だけ取り出したい
Excel(エクセル)
-
19
セルをマクロのボタンにしたい。
Visual Basic(VBA)
-
20
【エクセル】指定したセルに入力することで、別の特定のセルに決まった文字を表示させるには?
Excel(エクセル)
関連するQ&A
- 1 エクセルについて A2に入力された数字がでたら、べつのシートに作成した続きの複数行を反映させることは
- 2 エクセル関数 複数シートのある列に入力された文字列を集計シートに統合したい
- 3 【エクセル】複数シートの特定のセル(同じ行)に入力があった際に、別のシートへ行ごと表示したい
- 4 エクセルのシート名を、シート1に作成した新旧一覧表に対応させる形で、複数シート一括で変更するには?
- 5 エクセルVBA 文字を入力したら右へ移動 文字を入力せずにエンターを押しても右へ移動させたい
- 6 VBA初心者で勉強中です。 ご教授お願いします。 複数ブックの複数シートを各シートの特定セル(文字)
- 7 エクセルでシート1のセルに入力すると別シートのセルに表示させるには
- 8 複数のエクセルシートの同一行を1枚のシートに表示させる方法を教えてください。
- 9 エクセルで、シート1に値を入力し、シート2に、シート1から特定の値を抽出するよう式を入力しました。さ
- 10 VBAで複数エクセルシート内のセルを別シートに1つに統合
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
エクセルで既に入力してある文...
-
5
【エクセル】指定したセルに入...
-
6
参照先セルに値が入っていない...
-
7
空白でないセルの値を返す方法...
-
8
Excel マクロ モジュラス43 vba
-
9
エクセルで入力した数字を倍に...
-
10
値を入力後、自動的にアクティ...
-
11
エクセルで複数の条件で掛け算...
-
12
Excelのチェックボックス
-
13
バーコードが読み取れない原因...
-
14
エクセルでセルのデータがカタ...
-
15
Excelで、簡単なチェックマーク...
-
16
Excel で空欄にも単位 \\や円 ...
-
17
エクセルで列の一番最後の数値...
-
18
スプレッドシートで 時間入力の...
-
19
IF関数で0より大きい数値が入力...
-
20
エクセルでシート全体の数値を...
おすすめ情報