EXCEL2000を使用しています。
受付でC列に値が入ったらB列に
=IF(C1="","",TODAY())
といった数式を入れています。
そこで翌日ファイルを開けるとTODAY関数が更新される為、前日の受付した日時も今日の日付になってしまいます。いちいち朝一番に前日であろうセルを範囲選択して
前日の日時を入れctrl+enterを押して文字列として入力してますが毎日100行近くを選択するのがとてもめんどくさいのです。
できれば朝一番前日なのに当日の日時なっているセルを検索してそれを範囲選択して一度に変更できるマクロみたいなものはないでしょうか?
出来ればフォームからボタンで一括作業できたら本当に嬉しいのですが・・・
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは。
もともと、イベント・ドリブン型で入力していけばよいのではありませんか?
=IF(C1="","",TODAY()) のマクロ版です。
'シートモジュールに貼り付けてください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
Application.EnableEvents = False
For Each c In Target
'C列に値が入って、B列が空の時
If c.Value <> "" And c.Offset(, -1) = "" Then
c.Offset(, -1).NumberFormatLocal = "yy/mm/dd"
c.Offset(, -1).Value = Date
End If
Next c
Application.EnableEvents = True
End Sub
>いちいち朝一番に前日であろうセルを範囲選択して
>前日の日時を入れctrl+enterを押して文字列として入力してますが
>毎日100行近くを選択するのがとてもめんどくさいのです。
これについては、ちょっと難しいですね。
シートの計算を[自動]にしている限りは、前日なのか、前々日なのか区別がつかないのではありませんか?[手動]にしてあるなら、まだ別の方法があるけれど、それも面倒です。
'----------------------------------------------
Sub FixedDateEntering()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("B1", Range("B65536").End(xlUp))
If c.HasFormula Then
If InStr(c.FormulaLocal, "TODAY()") > 0 And c.Offset(, 1) <> "" Then
c.NumberFormatLocal = "yy/mm/dd"
c.Value = c.Value - 1
End If
End If
Next c
Application.ScreenUpdating = True
End Sub
No.2
- 回答日時:
そんなことしなくても、VBAで日付をセットしてしまえばよいでしょう。
C列に値が入ったら対応する行のB列のセルに日付をセットする。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Cells(Target.Row, "B") = Date
End If
End Sub
これを改良すればどうでしょう。
日付が変わっても、一旦セットした値は変わらない。
No.1
- 回答日時:
こんばんは。
簡単な例を示します。A1セルから下に日付が入っていたとして、C1に参照用に”=today()”と入っている場合のマクロです。
~・~・~・~・~・~・~・~・~・~・~・
Sub 日付変更()
今日の日付 = Range("C1").Value
Range("A1").Activate
Do Until ActiveCell.Value = ""
If ActiveCell.Value = 今日の日付 Then
ActiveCell.Formula = 今日の日付 - 1
End If
ActiveCell.Offset(1, 0).Activate
Loop
End Sub
~・~・~・~・~・~・~・~・~・~・~・
Excel2003で取り急ぎ作ったので、2000での動作確認はしていません。
朝一番にこのマクロを使わないと意味がないです。
お昼頃に間違えてマクロを走らせると、悲しいことになるので注意が必要です。
以上、参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) エクセルの関数で質問です。 3 2023/02/24 14:07
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力後に日付順になるように自...
-
日付だけを変更して印刷(Excel)
-
31:30:00が1900/1/1 7:30:0
-
Excelで半年後の日付を計算したい
-
エクセル 当番表の作り方 エク...
-
エクセルのセルにカレンダーを...
-
エクセルでENTERを押すと数式が...
-
エクセルで数字列の間に『/』を...
-
日付入力→指定のセルの色を塗り...
-
☆Excelエクセルで入力した日の...
-
Excelで、年だけの「西暦」から...
-
エクセル関数で日付かどうかの...
-
ファイルのオープン時に今日の...
-
◆ EXCEL自動入力日付を自動で...
-
Excelで、本日、前日、1週間前...
-
EXCELで直近の日付を抽出する関数
-
excelで月末日を判定したい
-
エクセルで日付を別のシートに...
-
日付を入力したセルをファイル...
-
ワード差込について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
エクセルでENTERを押すと数式が...
-
入力後に日付順になるように自...
-
日付だけを変更して印刷(Excel)
-
Excelで半年後の日付を計算したい
-
エクセルで数字列の間に『/』を...
-
Excelで、年だけの「西暦」から...
-
エクセル 当番表の作り方 エク...
-
エクセルのセルにカレンダーを...
-
エクセル関数で日付かどうかの...
-
Excelで8/26等の日付を全てその...
-
日付入力→指定のセルの色を塗り...
-
☆Excelエクセルで入力した日の...
-
ファイルのオープン時に今日の...
-
EXCELで直近の日付を抽出する関数
-
WORDで翌日や翌々日の日付を表...
-
◆ EXCEL自動入力日付を自動で...
-
エクセルで1年後の月末を表示さ...
-
excelで月末日を判定したい
-
エクセルで、曜日から日付を呼...
おすすめ情報