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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
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
VBA コード
Visual Basic(VBA)
-
7
以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが
Visual Basic(VBA)
-
8
ご教授お願いします。#NUM!が解消されません。
Visual Basic(VBA)
-
9
お世話になります。 Excel VBAのプログラムについてご教授をお願いいたします。 添付した写真よ
Visual Basic(VBA)
-
10
コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、
Visual Basic(VBA)
-
11
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
12
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
13
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
14
VBAで特定のシート以外のシート名を変更したい
Visual Basic(VBA)
-
15
VBA ファイル名取得
Visual Basic(VBA)
-
16
VBA
Visual Basic(VBA)
-
17
エクセルVBAでデータ転記
Visual Basic(VBA)
-
18
VBAコードについて
Visual Basic(VBA)
-
19
VBAに関して
Visual Basic(VBA)
-
20
VBA 二つのブックをうまく扱えないでいます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
指定した条件で行セルを非表示...
-
DataGridViewのセル編集完了後...
-
Excelで指定した日付から過去の...
-
VBA コピーして次の値まで貼り...
-
Excel VBA、 別ブックの最終行...
-
エクセルVBAでコピーして順...
-
ExcelのVBAで数字と文字列をマ...
-
screenupdatingが機能しなくて...
-
特定行の色を変えたい(FlexGrid)
-
連続する複数のセル値がすべて0...
-
Excel vbaについて知恵もしくは...
-
Excel ユーザーフォームをモー...
-
【EXCEL VBA】Range("A:A").Fi...
-
プロムラミングが得意な人助け...
-
excelで置換をしたいんですが
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
TODAY()で設定したセルの日付...
-
EXCELで変数をペーストしたい
-
Excel VBA、 別ブックの最終行...
-
Excelのプルダウンで2列分の情...
-
VBA コピーして次の値まで貼り...
-
screenupdatingが機能しなくて...
-
エクセルVBAでコピーして順...
-
VBA初心者です。結合セルを保持...
-
セル色なしの行一括削除
-
VBAでセルをクリックする回...
-
Excel vbaで特定の文字以外が入...
-
DataGridViewの各セル幅を自由...
-
特定の文字を条件に行挿入とそ...
-
【VBA】指定したセルと同じ値で...
おすすめ情報
回答いただいたみなさまありがとうございます。
どちらもいったん使わせていただいのですが、どちらも以下の現象が起こるのですが解消できないでしょうか。
①名前を入力すると、日付が表示されず、入力したセルをクリックすると日付が表示される
②同じ名前を入力(ドラッグ)するとドラッグした分の日付が自動で入ってくる
③名前を消去すると、日付は消えないままで、消したセルをクリックすると日付が消える(①の逆みたいな現象)
№2様
返信ありがとうございます。
excelファイルを新規にして、教えていただいたコードを入れましたが同じ現象になります・・・