
お世話になっております。
タイトルにございます、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で質問しましょう!
似たような質問が見つかりました
- Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、
- 関数EXACT(文字列,文字列)とexcelVBA
- Excleマクロ セル値の代入と文字列の結合について
- Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について
- 特定の文字を条件に指定範囲のデータを貼り付けるVBA
- 列と行の名前(重複あり)が交差するセルに、データを入力したい
- 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力
- Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1
- 結合セルのソートについて
- ExcelにてA1セルに1、B1セルに月と入力した際に、A列に日付、B列に曜日が入力される様になる為
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
-
4
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
5
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
6
A列に文字列または数字を入力したら隣接するD列に今日の日付が入るようにしたいです
Excel(エクセル)
-
7
EXCEL:特定の文字が入力された日付を表示する方法
Excel(エクセル)
-
8
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
9
教えて For Each R In Target
Excel(エクセル)
-
10
VBAで空白セルにのみ数値を代入する方法
Excel(エクセル)
-
11
マクロで#N/A"のエラー行を削除したい"
Visual Basic(VBA)
-
12
vba:特定のセルに入力したと同時に隣のセルの値を特定のセルの下の行に自動入力したい_No.2
Excel(エクセル)
-
13
VBAでユーザーフォームにセル値を表示させるには
Visual Basic(VBA)
-
14
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
15
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
16
VBAで「セルに何か入っている場合」
Windows Me・NT・2000
-
17
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
18
エクセルで時刻を自動入力する方法
Excel(エクセル)
-
19
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
20
セルの値が変ると自動でマクロが実行される。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA ダブルクリックで入...
-
データが入力されている隣のセ...
-
エクセルテキストボックスの文...
-
エクセルVBA セル選択後にカレ...
-
VBAで、貼り付け禁止命令を実現...
-
EXCELマクロ 保護されているシ...
-
ダブルクリックすると現在の時...
-
VBAで丸をつけたいです。
-
GrapeCityのSpreadの複数セルの...
-
Windowsで動くVBAがmacOSで動か...
-
VBA セルに合わせて移動するが...
-
VBAで選択したセルのみ処理を実...
-
Sheet2からオートフィルターで...
-
Excel VBA セルを指定個数ラン...
-
ExcelのVBAを使って軽い心理学...
-
Swing 編集不可でも選択可能なJ...
-
セル色を5秒間隔で変える
-
【VBA】参照値を1ずつ増やして...
-
エクセルVBA(実行時エラー438...
-
VBAのListBoxで複数選択して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルテキストボックスの文...
-
EXCELマクロ 保護されているシ...
-
データが入力されている隣のセ...
-
ダブルクリックすると現在の時...
-
Jtableの特定のセルの背景色や...
-
Windowsで動くVBAがmacOSで動か...
-
ハイパーリンクされているファ...
-
エクセルVBA セル選択後にカレ...
-
VBAで丸をつけたいです。
-
メッセージを1度だけ表示したい。
-
VBAで、貼り付け禁止命令を実現...
-
エクセルVBA(実行時エラー438...
-
VBA セルに合わせて移動するが...
-
Excelのセル内にある図形を削除...
-
(VBA)アクティブセルを起点に...
-
Excel VBA セルを指定個数ラン...
-
VBAのListBoxで複数選択して...
-
複数行選択のテキストボックス
-
セル色を5秒間隔で変える
-
【VBA】参照値を1ずつ増やして...
おすすめ情報