
お世話になっております。
タイトルにございます、Excel VBAのプログラムについてご教授をお願いいたします。
[B4セル]から下記にデータが入力されており、その隣の[C4セル]から下には、[B4セル]から下にデータが入力されているセルだけに、普段はCtrl+(れ)キーの当日日付+半角スペース+20:00と入力しております。(例)2019/10/06 20:00)
注文件数が多いのでこの操作を自動化したく、どなたか分かる方、よろしくお願いいたします。

No.7ベストアンサー
- 回答日時:
No.5 No.6 の追記
☆ データをまとめて張り付けてリアル処理するならば
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim セル As Range
Application.EnableEvents = False
For Each セル In Target
If セル.Value <> "" Then
If セル.Row >= 4 Then
If セル.Column = 2 Then
Cells(セル.Row, 3).Value = DateAdd("h", 20, Date)
End If
End If
End If
Next
Application.EnableEvents = True
End Sub
☆ 全データ入力後にまとめて処理するならば
Sub まとめて処理()
Dim 行 As Long
For 行 = 4 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(行, 2).Value <> "" Then Cells(行, 3).Value = DateAdd("h", 20, Date)
Next
End Sub
GooUserラック様、ご回答いただきましてありがとうございます。
リアルタイムで反映させられるこの様なVBAのプログラムがあるのですね。
感動いたしました。
複数いただきました回答の中から「データをまとめて張り付けてリアル処理」のプログラムが、
この度の私の理想とするプログラムなのでベストアンサーとさせていただきます。
回答いただきました皆様へこの場を借りて感謝申し上げます。
ありがとうございました。
また質問させていただくこともあると思いますが、その際にはよろしくお願いいたします。
No.9
- 回答日時:
No.7 の追記
「☆ 全データ入力後にまとめて処理するならば」は複数回実行を考えると以下のようにした方が良いかもしれません。
Sub まとめて処理()
Dim 行 As Long
For 行 = 4 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(行, 2).Value <> "" Then
If Cells(行, 3).Value = "" Then
Cells(行, 3).Value = DateAdd("h", 20, Date)
End If
End If
Next
End Sub
No.8
- 回答日時:
Sub Sample()
Range("B4", Cells(Rows.Count, "B").End(xlUp)).Offset(0, 1).Value = Now()
End Sub
とか。
データが1件もないとうまくいきませんが。
運用でカバー。(^^;)
No.6
- 回答日時:
No.5 の補足
データがすでに入力されていたり、データを複数同時に張り付けるような使い方ではチャント動作しません。
「Target.Column + 1」はもちろん「3」でも問題ありません。
No.5
- 回答日時:
VBAでしたらVBEの画面を開いて図を参照に左側の対象のシートをダブルクリックして「Worksheet」「Change」の部分に下記のコードを書き込めば良いと思います。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row >= 4 Then
If Target.Column = 2 Then
Application.EnableEvents = False
Cells(Target.Row, Target.Column + 1).Value = DateAdd("h", 20, Date)
Application.EnableEvents = True
End If
End If
End Sub

No.4
- 回答日時:
マニュアル操作であれば、こんな感じでしょうか。
①C4:C12を選択
②Ctrl+;
③半角空白
④Ctrl+:
⑤Ctrl+Enter
上記の操作をマクロにすると、こんな感じです。
Sub sample()
Range("B4:B" & Rows.Count).SpecialCells(xlCellTypeConstants, 23).Offset(, 1).Select
SendKeys "^; ^:^{ENTER}"
End Sub
No.2
- 回答日時:
マクロは必要ありません。
とりあえず時間入力に該当する一番上のセルに日時を入力してください。
そして
[←]
で、商品名の列のセルを選択、
続いて、
[Ctrl]+[↓]
のショートカットで「氷」までジャンプすることができます。
続いて
[→]
で、隣の列のセルを選択し、
続いて、
[Ctrl]+[Shift]+[↑]
で、日時を入力したセルまでを範囲選択できます。
最後に
[Ctrl]+[D]
で、選択査定る範囲の一番上の値を下のセルに複製します。
このように、ショートカットを使うだけで簡単に処理できますよ。
それにこのほうが事細かに応用できます。
マクロは条件を付けて処理を分けることができますが、質問者さんのスキルでは条件が加わる都度修正することは無理と思うんです。
(「代わりに作って」…のような作業依頼は疑問の解決ではありません)
・・・余談・・・
ちなみに「NOW関数」は、計算させる都度、演算が行われ結果が変わるのでお勧めできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
4
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
5
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
6
◆ EXCEL自動入力日付を自動で変わらないようにする方法
Excel(エクセル)
-
7
EXCEL:特定の文字が入力された日付を表示する方法
Excel(エクセル)
-
8
VBAで空白セルにのみ数値を代入する方法
Excel(エクセル)
-
9
A列に文字列または数字を入力したら隣接するD列に今日の日付が入るようにしたいです
Excel(エクセル)
-
10
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
11
vba:特定のセルに入力したと同時に隣のセルの値を特定のセルの下の行に自動入力したい_No.2
Excel(エクセル)
-
12
VBA A1セルが空白になったら隣のセルも空白に
Excel(エクセル)
-
13
ExcelでTODAY関数を更新させない方法
Excel(エクセル)
-
14
セルに入力すると隣のセルに日付が入力される コード訂正願い
Visual Basic(VBA)
-
15
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
16
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
17
Excel2003 チェックすると日付が自動表示(日付をチェック日のままに)
Excel(エクセル)
-
18
[EXCEL]ボタン押す→時刻が表に入る方法
Excel(エクセル)
-
19
ある列のセルに特定の文字が入っていたら他のセルに決まった文字を入れる
Word(ワード)
-
20
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
VBAのListBoxで複数選択して...
-
5
セル色を5秒間隔で変える
-
6
ダブルクリックすると現在の時...
-
7
エクセルテキストボックスの文...
-
8
複数行選択のテキストボックス
-
9
メッセージを1度だけ表示したい。
-
10
エクセル 「26:09」の入力方法
-
11
エクセルの2ページ目の作り方
-
12
【Excel】複数列ごとに取得する...
-
13
エクセルの画面で十字マークが...
-
14
エクセル 日付を数値に変換する...
-
15
エクセルのセル内の余白の設定...
-
16
(Excel)あるセルに文字を入力...
-
17
日付だけを変更して印刷(Excel)
-
18
セルの塗りつぶしに透明度を設...
-
19
エクセルで表示形式の時刻の「0...
-
20
エクセルでの計算式で求められ...
おすすめ情報
公式facebook
公式twitter