A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
最も大事なのはこういうイベント処理では、必ずコードの
最初の実行行にブレークポイントをセットして
スッテプ実行追跡するのですけど、そうしていますか?
①名前を入力すると、日付が表示されず、入力したセルをクリックすると日付が表示される
恐らくWorksheet_Changeになってないのでは?
Worksheet_SelectionChangeの場合にそうなります。
②同じ名前を入力(ドラッグ)するとドラッグした分の日付が自動で入ってくる
複数セルがある場合、個別のセルに分解して
一つ一つ処理しなければなりません。
つまりドラッグしたセルが複数あるかを確認して
処理を分岐しないといけないので、改造が必要です。
Target.Countを確認してみてください。
③名前を消去すると、日付は消えないままで、消したセルをクリックすると日付が消える
これは症状が不明です。消去するとっていうのが
見た目には消えてもEnterキーを押すもしくは
別のセルを選択しないと登録されないのは判りますか?
No.4
- 回答日時:
>excelファイルを新規にして、教えていただいたコードを入れましたが同じ現象になります・・・
残念ながら私のローカルでは事象を再現できませんでした
#3にも書きましたが動作的にはWorksheet_SelectionChangeイベントに似ています
繰り返しになりますが Worksheet_Changeイベントで書かれていますか?
#2のコード(イベントプロシージャ)全てをシートモジュールにコピペされているという事であれば実行環境などによるものかも知れませんが私のスキルでは想像の範疇を超えていますので新たな回答をお待ちください
No.3
- 回答日時:
#2です
・・・
事象はPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)イベントの動作のようですが・・・・・
Private Sub Worksheet_Change(ByVal Target As Range)ですよね
新規ブックで試しても同じ事象でしょうか?
No.2
- 回答日時:
複数セル、コピペに対応でベタ打ちですけれど一例です
対象のシートモジュールに(同じイベントがある場合はそのままコピペではだめです)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B:B,F:F")) Is Nothing Then Exit Sub
If Target.Row = 1 Then Exit Sub
Dim i As Long
Application.EnableEvents = False
If Target.Count > 1 Then
For i = 1 To Target.Count
If Target(i).Column = 2 Or Target(i).Column = 6 Then
If Target(i).Value <> "" Then
Target(i).Offset(, 1).Value = Format(Date, "yyyy/mm/dd")
Else
Target(i).Offset(, 1).Value = ""
End If
End If
Next
Else
If Target.Value <> "" Then
Target.Offset(, 1).Value = Format(Date, "yyyy/mm/dd")
Else
Target.Offset(, 1).Value = ""
End If
End If
Application.EnableEvents = True
End Sub
>プログラムを教えていただきたいです。
プログラムを考える場合もう少し条件定義をするべきだと思いますが
No.1
- 回答日時:
名前かどうかを判断する基準が不明なので、単純にB列やF列に入力があった場合、ということにしています。
標準モジュールではなく、対象となるSheetの方にこちらのマクロを加えてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim changedCell As Range
Dim currentDate As Date
' Check if changes occurred in column B (2) or column F (6)
If Target.Column = 2 Or Target.Column = 6 Then
' Check if the changed cell is not empty
If Not IsEmpty(Target.Value) Then
' Get the current date
currentDate = Date
' Update column C or G with the current date
If Target.Column = 2 Then
Target.Offset(0, 1).Value = currentDate
ElseIf Target.Column = 6 Then
Target.Offset(0, 1).Value = currentDate
End If
Else
' If the changed cell is empty, clear the corresponding date cell in column C or G
If Target.Column = 2 Then
Target.Offset(0, 1).ClearContents
ElseIf Target.Column = 6 Then
Target.Offset(0, 1).ClearContents
End If
End If
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excelのVBAについて、以下のコードに追加をお願いいたします。 2 2023/12/25 10:24
- Visual Basic(VBA) エクセルのマクロを教えてください 4 2022/02/04 08:05
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBAコンボボックスで選択した値をシートに転記したい 3 2023/11/10 14:46
- Excel(エクセル) B列に、A列の数字が偶数の場合は1減算した数字、奇数の場合はそのまま数字を自動表示したい 4 2022/04/16 12:01
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) 【関数】選択した文字列にしたがって、文字を選んで表示する 2 2023/07/13 22:44
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Visual Basic(VBA) お世話になります。 Excel VBAのプログラムについてご教授をお願いいたします。 添付した写真よ 5 2023/12/12 10:15
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Cellsのコードが打てません
Visual Basic(VBA)
-
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
-
4
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
5
VBA実行後に元のセルに戻りたい
Visual Basic(VBA)
-
6
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
7
VBA コード
Visual Basic(VBA)
-
8
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
9
VBA
Visual Basic(VBA)
-
10
以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが
Visual Basic(VBA)
-
11
【マクロ】転記ツール。転記先にデータがある場合、上書きするか消すか質問をして欲しい
Excel(エクセル)
-
12
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
13
Excel VBA ダブルクリックで入力 複数まとめる
Visual Basic(VBA)
-
14
特定文字を入ってるCSVの特定の列を特定のexcelシートに取り込みたいです
Visual Basic(VBA)
-
15
エクセルで⑤番の操作が分かりません。どういう関数が良いんですか?
Excel(エクセル)
-
16
ご教授お願いします。#NUM!が解消されません。
Visual Basic(VBA)
-
17
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
18
お世話になります。 Excel VBAのプログラムについてご教授をお願いいたします。 添付した写真よ
Visual Basic(VBA)
-
19
Excelセルに入力された文字の色を変える方法を教えてください
Visual Basic(VBA)
-
20
エクセルで連勤チェックをしたいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA ユーザーフォーム ボタンク...
-
screenupdatingが機能しなくて...
-
Excelで指定した日付から過去の...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
ExcelVBAを使って、値...
-
Excelのハイパーリンクにマクロ...
-
スプレッドシートをGASでセル保...
-
【Excel】指定したセルの名前で...
-
エクセルvba:自己セルの情報取...
-
【VBA】指定したセルと同じ値で...
-
EXCELで変数をペーストしたい
-
エクセルVBA MATCHをユーザー...
-
RC表示に変数を入れる
-
エクセルマクロで結合セルに格...
-
VBAを使用した時間管理
-
vbsのセル値の取得について
-
EXCELのVBA-フィルタ抽出後の...
-
Sub 要具ライフ() ActiveSheet....
-
クリックされたセルの位置を取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
TODAY()で設定したセルの日付...
-
Excel vbaで特定の文字以外が入...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報
回答いただいたみなさまありがとうございます。
どちらもいったん使わせていただいのですが、どちらも以下の現象が起こるのですが解消できないでしょうか。
①名前を入力すると、日付が表示されず、入力したセルをクリックすると日付が表示される
②同じ名前を入力(ドラッグ)するとドラッグした分の日付が自動で入ってくる
③名前を消去すると、日付は消えないままで、消したセルをクリックすると日付が消える(①の逆みたいな現象)
№2様
返信ありがとうございます。
excelファイルを新規にして、教えていただいたコードを入れましたが同じ現象になります・・・