ExcelのVBAについて(再掲)
ExcelのVBAについて(再掲)
以下のシートは作成中(勉強中)のものです。いずれは私的に実用しようと思っています。。
さて、質問ですが、「シート1のA3に入力、手動でシート2に移動自動で転記し、手動でシート1に移動し、また入力する」という単純動作を目的に作成しています。問題点は沢山ありますが、例えば『シート1の時間列が何かの変更で書き換えられてしまう』、『沢山書いていくと分かりますが、途中で行削除を行うと、時間列に削除行分の時間記録が下向きに書き込まれる』などです。他にもあると思っていますが、(1)この問題はなぜ発生するのか?(2)修正案としてはどの様な例があるか?
等をお聞きしたいです。細々と問題はあると思っていますので、その様な問題点もお聞きしたいです。
よろしくお願いします!
'///Sheet1///
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim time7 As Range
For Each time7 In Target
If time7.Column = 1 Then
time7.Offset(0, 4).Value = Format(Now, "Short Time") & vbCrLf & _
Format(Now, "yyyy/mm/dd hh:nn:ss AM/PM")
Application.EnableEvents = False
Application.EnableEvents = True
End If
Next time7
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
ws2.Range("A3:H3").Value = ws1.Range("A3:H3 ").Value
End Sub
Private Sub Worksheet_Activate()
Application.Goto ActiveSheet.Range("A3"), True
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Sheet1").Range("H3").Select
ActiveCell.FormulaR1C1 = "5"
Sheets("Sheet1").Range("E3").Select
Selection.ClearContents
Dim str_Left As String
'セルE4に文字列、セルH4に数字を予め入れておくこと。
str_Left = Left(Cells(4, 5), Cells(4, 8))
MsgBox str_Left & vbCrLf & " " & "OKボタンを押してください!"
Sheets("Sheet1").Range("A3").Select
End Sub
' ///Sheet2///
Private Sub Worksheet_Activate()
Application.Goto ActiveSheet.Range("A3"), True
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Sheet2").Range("A3").Select
End Sub