
お世話になっております。
タイトルにございます、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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) 特定の文字を条件に指定範囲のデータを貼り付けるVBA 3 2023/01/15 06:14
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) ExcelにてA1セルに1、B1セルに月と入力した際に、A列に日付、B列に曜日が入力される様になる為 1 2023/03/02 06:47
このQ&Aを見た人はこんなQ&Aも見ています
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
-
4
vba 隣のセルに値がある行だけ関数をコピー&ペーストしたい A1 100001 A2 100002
Visual Basic(VBA)
-
5
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
6
EXCEL:特定の文字が入力された日付を表示する方法
Excel(エクセル)
-
7
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
8
セルに値が入力されると隣りのセルに数式を入力したい(VBA)
Excel(エクセル)
-
9
エクセル セルに文字を入力したら別のセルに入力した時間が表示されるようにしたい
Excel(エクセル)
-
10
vba:特定のセルに入力したと同時に隣のセルの値を特定のセルの下の行に自動入力したい_No.2
Excel(エクセル)
-
11
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
12
A列に文字列または数字を入力したら隣接するD列に今日の日付が入るようにしたいです
Excel(エクセル)
-
13
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
14
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
15
【VBA】Excelに数値を入力した横のセルに入力された時の時刻の表示方法について
Visual Basic(VBA)
-
16
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
17
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
18
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
19
[EXCEL]ボタン押す→時刻が表に入る方法
Excel(エクセル)
-
20
VBA A1セルが空白になったら隣のセルも空白に
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データが入力されている隣のセ...
-
マクロについて質問です
-
選択範囲内でアクティブセルを...
-
エクセルテキストボックスの文...
-
Windowsで動くVBAがmacOSで動か...
-
エクセルVBA(実行時エラー438...
-
VBA セルに合わせて移動するが...
-
VBAで、貼り付け禁止命令を実現...
-
EXCEL VBA Rangeの指定方法につ...
-
EXCELマクロ 保護されているシ...
-
離れた複数のセルのどこかに文...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】オートフィルターの...
-
vba テキストボックスとリフト...
-
【マクロ】A列にある、日付(本...
-
エクセル: セルの枠を超えて表示
-
エクセル:マクロ「Application...
-
エクセルでの計算式で求められ...
-
Excelに入力した個々の日付の数...
-
エクセルのセル内に全角数字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データが入力されている隣のセ...
-
EXCELマクロ 保護されているシ...
-
エクセルテキストボックスの文...
-
VBAで、貼り付け禁止命令を実現...
-
エクセルVBA(実行時エラー438...
-
【VBA】InputBoxで文字をセルに...
-
VBA セルに合わせて移動するが...
-
Windowsで動くVBAがmacOSで動か...
-
ダブルクリックすると現在の時...
-
メッセージを1度だけ表示したい。
-
ハイパーリンクされているファ...
-
Swing 編集不可でも選択可能なJ...
-
VBAで丸をつけたいです。
-
(VBA)アクティブセルを起点に...
-
Excel VBA セルを指定個数ラン...
-
【VBA】参照値を1ずつ増やして...
-
エクセルのVBAでダブルクリック...
-
セル色を5秒間隔で変える
-
StringGridでの文字入力制限
-
アクティブセルの行のセルを複...
おすすめ情報