
こんにちはsouです。Excelでちょっと困っています。「A1セルに文字を入力したときの時間をA2セルに表示する」+「A3セルに文字を入力したときの時間をA4セルに表示する」
+「A5セルに文字を入力したときの時間をA6セルに表示する」
ように複数それぞれ文字を入力した別々の時間を表示したいのですが実際やってみるとなかなか出来ませんでした。A2セルの書式をhh:mmなどにして、セルに=if(A1<>"",NOW(),"")と書きました。これで一応A1セル入力でA2セルに時間は挿入されますが、Excelの自動計算機能により、
一度閉じてまた開いた場合や他のセルで自動計算を行うような入力をした際などに時間が更新されてしまいます。時間が更新されてしまってはだめなんです。かといってツール→オプションから自動計算を手動にすると、その他の計算(例えばSUM関数など)の自動計算に影響がでて、使い勝手が違ってくるし。。。。
VBAで
Private Sub Worksheet_Change(ByVal Target As Excel.Range)Dim r As Range For Each r In Target If r.Column = 1 Then r.Offset(0, 1).Value = Format(Now, "hh:mm:ss") End If Next rEnd Sub
とネットで調べて書いてみましたが 一つのセルに文字入力したらすべてのセルに同じ時間が表示反映
されてしまいます。どうすればよろしいんでしょうか?お分かりになる方ご返答宜しく御願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
先のNo.2のコードで
Application.EnableEvents = False
︙
Application.EnableEvents = True
は無くても正しく動きますね。もちろんあっても問題ありません。
No.2
- 回答日時:
> 一つのセルに文字入力したらすべてのセルに同じ時間が表示反映
ということなので 先の kigoshi 様の回答に入力セルの制限をかければいいと思います。
例えば、A列に限るのであれば
Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Target.Column = 1 Then
Target.Offset(0, 1).Value = Format(Now, "hh:mm:ss")
End If
Application.EnableEvents = True
End Sub
とすればいいと思います。
Target.Column = 1 の値を変えれば他の列にも使えます。行を制限するのであれば Target.Row とすれば行でも使えます。
No.1
- 回答日時:
Target.Offset(0, 1).Value = Format(Now, "hh:mm:ss")のときセルの内容が変わるので、Worksheet_Changeを再度呼び出してしまうことが原因ですね。
Application.EnableEvents = False
で、イベントを抑制し、時刻を入力。
で直後にイベントを呼び出せるように
Application.EnableEvents = True
とすれば、よろしいかと。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range
Application.EnableEvents = False
Target.Offset(0, 1).Value = Format(Now, "hh:mm:ss")
Application.EnableEvents = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
エクセルで入力時間を更新させずに表示させたい
Excel(エクセル)
-
マクロ無しで時間自動で記入をしていきたい
Excel(エクセル)
-
-
4
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
5
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
6
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
7
エクセルで時刻を自動入力する方法
Excel(エクセル)
-
8
データが入力されている隣のセルに当日日付と時刻を入力するExcel VBAプログラム
Visual Basic(VBA)
-
9
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
10
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
11
Excelで、「特定のセル」に入力したら→「別のセル」に「○」を自動表示する方法
Excel(エクセル)
-
12
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
13
◆ EXCEL自動入力日付を自動で変わらないようにする方法
Excel(エクセル)
-
14
EXCEL:特定の文字が入力された日付を表示する方法
Excel(エクセル)
-
15
スプレッド―シートの日付の固定(TODAY、NOW関数)
Excel(エクセル)
-
16
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
17
[EXCEL]ボタン押す→時刻が表に入る方法
Excel(エクセル)
-
18
EXCELのNOW()関数の値の固定する方法は?
Excel(エクセル)
-
19
エクセル 特定の文字を入れると他のセルの色が変わる
Excel(エクセル)
-
20
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
エクセルで既に入力してある文...
-
Excelでセルに入力されたカラー...
-
IF関数で0より大きい数値が入力...
-
空白でないセルの値を返す方法...
-
入力したところまでを自動的に...
-
yyyy/mm/ddからyyyy/mmへの変換
-
エクセル セルに文字を入力した...
-
【Excel】セル内の時間帯が特定...
-
エクセル:コメントのようなも...
-
Excel 大小比較演算子による「...
-
エクセルで時間の判定をしてい...
-
エクセルの数式がかぶって、選...
-
エクセルで一定の数値を超えた...
-
【エクセル】指定したセルに入...
-
EXCEL◆入力した文字列を別シー...
-
Excel:文字と数字の組合せ、次...
-
参照先セルに値が入っていない...
-
excel入力セルをクリックしただ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
空白でないセルの値を返す方法...
-
エクセルで既に入力してある文...
-
IF関数で0より大きい数値が入力...
-
入力したところまでを自動的に...
-
Excelでセルに入力されたカラー...
-
【Excel】セル内の時間帯が特定...
-
【エクセル】指定したセルに入...
-
Excel:文字と数字の組合せ、次...
-
エクセルで、特定のセルの内容...
-
参照先セルに値が入っていない...
-
Excel 大小比較演算子による「...
-
エクセル セルに文字を入力した...
-
yyyy/mm/ddからyyyy/mmへの変換
-
excel 関数にて文字を0として認...
-
エクセルで時間の判定をしてい...
-
エクセルの数式がかぶって、選...
-
エクセル:コメントのようなも...
-
excel入力セルをクリックしただ...
おすすめ情報