![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
お世話になっております。
タイトルにございます、Excel VBAのプログラムについてご教授をお願いいたします。
[B4セル]から下記にデータが入力されており、その隣の[C4セル]から下には、[B4セル]から下にデータが入力されているセルだけに、普段はCtrl+(れ)キーの当日日付+半角スペース+20:00と入力しております。(例)2019/10/06 20:00)
注文件数が多いのでこの操作を自動化したく、どなたか分かる方、よろしくお願いいたします。
![「データが入力されている隣のセルに当日日付」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/943663_5d98f0321549a/M.png)
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
![「データが入力されている隣のセルに当日日付」の回答画像5](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/3/542332295_5d998cb28f274/M.png)
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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
EXCEL:特定の文字が入力された日付を表示する方法
Excel(エクセル)
-
-
4
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
5
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
6
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
7
A列に文字列または数字を入力したら隣接するD列に今日の日付が入るようにしたいです
Excel(エクセル)
-
8
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
9
◆ EXCEL自動入力日付を自動で変わらないようにする方法
Excel(エクセル)
-
10
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
11
vba:特定のセルに入力したと同時に隣のセルの値を特定のセルの下の行に自動入力したい_No.2
Excel(エクセル)
-
12
【エクセル】行の最終更新日を、あるセルに自動で入力させる方法。
Excel(エクセル)
-
13
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
14
エクセルで時刻を自動入力する方法
Excel(エクセル)
-
15
[初心者です]VBAで指定列からAを検索し、発見したら隣のセルに値0を入れるマクロ。
Access(アクセス)
-
16
エクセル マクロで セルの範囲を指定する方法
Visual Basic(VBA)
-
17
教えて For Each R In Target
Excel(エクセル)
-
18
セルに入力すると隣のセルに日付が入力される コード訂正願い
Visual Basic(VBA)
-
19
【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力
Excel(エクセル)
-
20
エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データが入力されている隣のセ...
-
ダブルクリックすると現在の時...
-
EXCELマクロ 保護されているシ...
-
VBA セルに合わせて移動するが...
-
エクセルテキストボックスの文...
-
ハイパーリンクされているファ...
-
VBAで選択したセルのみ処理を実...
-
VBAで、貼り付け禁止命令を実現...
-
Excelについて
-
Excel VBAで結合されたセルの数
-
Excelのセル内にある図形を削除...
-
(VBA)アクティブセルを起点に...
-
エクセルのVBAでダブルクリック...
-
[VBA]型が一致しません
-
シート内セルに着色があればエ...
-
表による体積の計算
-
Swing 編集不可でも選択可能なJ...
-
Excel VBA ダブルクリックで入...
-
【VBA】参照値を1ずつ増やして...
-
VBAで丸をつけたいです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELマクロ 保護されているシ...
-
VBAで、貼り付け禁止命令を実現...
-
エクセルテキストボックスの文...
-
データが入力されている隣のセ...
-
VBAで丸をつけたいです。
-
ダブルクリックすると現在の時...
-
メッセージを1度だけ表示したい。
-
エクセルVBA セル選択後にカレ...
-
ハイパーリンクされているファ...
-
Excelについて
-
エクセルVBA(実行時エラー438...
-
Windowsで動くVBAがmacOSで動か...
-
Jtableの特定のセルの背景色や...
-
(VBA)アクティブセルを起点に...
-
VBAについて教えてください。 E...
-
VBA セルに合わせて移動するが...
-
セル色を5秒間隔で変える
-
Excel VBA ダブルクリックで入...
-
Excelのセル内にある図形を削除...
-
Excel VBA セルを指定個数ラン...
おすすめ情報