A行に何かデータを入力した場合、同じ列のとなりの行のセルに入力時間を残したいと思い、
例
A1:あ B1:2006/5/9/16:00
A2:い B2:2006/5/10/18:00
以下のマクロを教えて頂いたのですが、
Private Sub Worksheet_Change(ByVal Target As Range)
'///A列のセル以外ならマクロ終了///
If Target.Column <> 1 Then Exit Sub
'///1行目のセルならマクロ終了///
If Target.Row = 1 Then Exit Sub
'///内容がブランクならB列のセルをブランクにする。///
If Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = Format(Date + Time, "yyyy/mm/dd hh:mm:ss")
End If
End Sub
A列以外にもC列に入力した値の入力時間をD列にE列に入力した値の入力時間をF列にと、全部で6箇所値を入力したとなりのセルに入力時間が出るようにしたかったのですが、
'///A列のセル以外ならマクロ終了///
If Target.Column <> 1 Then Exit Sub
の部分を
'///A,C列のセル以外ならマクロ終了///
If Target.Column <> 1 Or Target.Column <> 3 Then Exit Sub
のように変更してまずはA列とC列に値を入れて挑戦したのですが、時間が表示されなくこまっておりました。
解決方法をご存知のかたがいらっしゃいましたら、ぜひよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
#1です。
このようにしてみました。Private Sub Worksheet_Change(ByVal Target As Range)
' 1行目のセルならマクロ終了
If Target.Row = 1 Then Exit Sub
' A列かC列かE列なら
If Target.Column = 1 Or Target.Column = 3 Or Target.Column = 5 Then
' 内容がブランクなら隣のセルをブランクにする
If Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = Format(Date + Time, "yyyy/mm/dd hh:mm:ss")
End If
End If
End Sub
No.2
- 回答日時:
全部で6箇所とはA.C,E,G,I,K列ですか?
それなら
Private Sub Worksheet_Change(ByVal Target As Range)
'///A.C,E,G,I,K列以外ならマクロ終了///
If Target.Column <> 1 And Target.Column <> 3 And Target.Column <> 5 _
And Target.Column <> 7 And Target.Column <> 9 And Target.Column <> 11 Then Exit Sub
'///1行目のセルならマクロ終了///
If Target.Row = 1 Then Exit Sub
'///内容がブランクならB列のセルをブランクにする。///
If Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = Format(Date + Time, "yyyy/mm/dd hh:mm:ss")
End If
End Sub
ですかね。
No.1
- 回答日時:
>If Target.Column <> 1 Or Target.Column <> 3 Then Exit Sub
C列は、最初のA例以外の条件でEXITしてしまうし、その他もA列は、C列以外の条件に当たります。
この場合は、ORの条件で行うのでしたら、
If Target.Column = 1 Or Target.Column = 3 Then
で、時間を書き込み
elseで、抜け出るように
ご返答ありがとうございます。
なるほど条件式がまずかったわけですね、
大変お手数ではありますが、elseで抜けるとはどのように書けばよろしいのでしょうか?
何分初心者なのもで、基本的なことかもしれませんがよろしくお願致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一行おきにコピーするマクロが...
-
エクセルで空白以外のセルの値...
-
EXCELにて複数列を同条件(色)...
-
エクセルの関数について(日付で...
-
行数が不規則な一週間ごとの合...
-
エクセルで行挿入した際、自動...
-
シート保護の状態で行の追加を...
-
VBAで同じブック内の別シー...
-
エクセルで反転コピー
-
Excelの非表示列も含めてコピー
-
エクセル VBA 指定の範囲内をコ...
-
エクセル 特定の文字の間を抜...
-
エクセルVBA 複数列をコピーす...
-
マクロ 計算式
-
エクセルで縦に長い表を印刷
-
エクセルのマクロ、AVERAGEIFを...
-
VBAで作業時間を把握したい(エ...
-
excelの関数で割り算をしたいの...
-
エクセルで表示された値だけ行...
-
【マクロ】IF複数条件の上限に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
一行おきにコピーするマクロが...
-
エクセルで行挿入した際、自動...
-
行数が不規則な一週間ごとの合...
-
Excelの非表示列も含めてコピー
-
エクセル マクロ 貼り付け先が...
-
シート保護の状態で行の追加を...
-
エクセルで表示された値だけ行...
-
エクセルで空白以外のセルの値...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルの関数について(日付で...
-
[Excel VBA]空白セル以外に連番...
-
エクセルで反転コピー
-
【初歩】エクセルでのマクロ(...
-
エクセルで縦に長い表を印刷
-
エクセルVBA 複数列をコピーす...
-
マクロで値がある列までコピー
-
Excel VBAで日にちを入力して線...
-
《エクセル2000》A列・B列の和...
-
マクロ ScrollColumn について
おすすめ情報