[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セル入力時に隣のセルに時間表示』(ちぃちゃん)
こんにちは。
ある列のセルへ数字を入力した時に、その隣のセルへ数字が入力された時間を 表示させたいと思っています。数字は同じ列へ10分〜15分に1回入力されていきます。 過去の質問を拝見し、↓のマクロを見つけたので数字部分(列指定部分)を変更して 使用したいと思ったのですがその応用が出来ず困っています。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Then Target.Offset(, -2).Value = Time
End If
End Sub
使用しているエクセルシートは、AとB、CとD、EとF、GとH・・・という風にセルが 結合されており、上記はG列に数字を入力した時にE列へその時間が入力されます。
さらに、M列に数字を入力した時にK列へも時間を表示させたいと思い
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Then Target.Offset(, -2).Value = Time
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 13 Then Target.Offset(, -2).Value = Time
End If
End Sub
としてみたのですが、
コンパイルエラー 名前が適切ではありません。
となってしまいます。
どの様にすれば良いでしょうか? どなたか助けて下さい>< よろしくお願いします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
>使用しているエクセルシートは、AとB、CとD、EとF、GとH・・・という風にセルが >結合されており、上記はG列に数字を入力した時にE列へその時間が入力されます。 そして、本当は どの列に入力した時に、どの列に時間を入れたいのでしょう?
A1とB1の結合セルに入力されたら、C1とD1の結合セルに時間を入力? ↓のご説明だと、セルの結合はなさそうですが。。。
>さらに、M列に数字を入力した時にK列へも時間を表示させたいと思い これに関しても、M列に数字を入力した時に、隣のN列と少し離れたK列にも時間を表示させたい?
具体的に、セル番地も使って 例をあげながら説明してもらうと良いかもしれません。 (HANA) 2014/09/15(月) 16:39
Worksheet_Change っていうプロシージャは各シートに一つしか書いてはいけません。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Then Target.Offset(, -2).Value = Time End If If Target.Column = 13 Then Target.Offset(, -2).Value = Time End If End Sub
か Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Column Case 7, 13 Target.Offset(, -2).Value = Time End Select End Sub
か
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 OR Target.Column = 13 Then Target.Offset(, -2).Value = Time End If End Sub
などのように書いてください。
蛇足ですが、 今回は大丈夫でしょうけれど(でも不要な割り込みは発生しています。) Change イベントでは、できれば値更新の前後で Application.EnableEvents = False 処理 Application.EnableEvents = True とする習慣をつけた方が良いと思います。
http://msdn.microsoft.com/ja-jp/library/office/ff839775%28v=office.15%29.aspx
http://vba.ti-da.net/e2482933.html
(Mook) 2014/09/15(月) 17:18
HANA様
>そして、本当は どの列に入力した時に、どの列に時間を入れたいのでしょう? G列(GとHの結合セル)に入力した時に、E列(EとFの結合セル)に時間を表示させたかったです。
>これに関しても、M列に数字を入力した時に、隣のN列と少し離れたK列にも時間を表示させたい? M列(MとNの結合セル)に入力した時に、K列(KとLの結合セル)に時間を表示させたかったです。
今後は、今回頂いたアドバイスを元に、具体的なセル番地を記載していく様にしたいと思います。
Mook様
提示頂いた3つのコード全てにおいて思い通りの結果が得られました。 今回は1つ目のコードを使用させて頂きたいと思います。 ありがとうございました。
(ちぃちゃん) 2014/09/15(月) 20:05
こんばんは。
以前、上記ご教授頂き使用していたのですが、 G列(GとHの結合セル)やM列(MとNの結合セル) への入力間違いがあった時に、元に戻すボタン(一つ前の状態に戻すボタン)をクリックすると、 他のシートが表示される様になり、一つ前の状態に戻す事が出来ません。
マクロが組み込まれているエクセルは、元に戻すボタンを使用してひとつ前の状態に戻す事は 出来ないのでしょうか?
(ちぃちゃん) 2014/09/26(金) 23:01
マクロが実行されると、Undo情報がリセットされます 今回の場合、シートモジュールのChangeイベントが発生 しているので、セルに入力する度にリセットされます
http://m.chiebukuro.yahoo.co.jp/detail/q14118623074
(稲葉) 2014/09/27(土) 06:12
稲葉様
エクセルの仕様でどうしようもないとの事で諦めたいと思います。 ありがとうございました。 (ちぃちゃん) 2014/09/29(月) 10:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.