マクロの修正をお願いします。
エクセルのマクロに関する質問です。
今開いてるブックの『Aシート』に転送ボタンを作成します。これとは別に『Bシート』を作り、『Aシート』の2列目からAA列目までと、『Bシート』の2列目からW列目までのデータ(言葉や数値など)を、ボタンを押して、Cドライブ共有フォルダ内の『マクロ』というブック、『1シート』ならびに『2シート』の名前のシートにセルB9~,C9~,D9~…といったように毎日転送(コピー)しようと思います。
イメージとしては以下の通りです。
【5/3】
『Aシート』
日付 名前 時刻 データ …
5/1 田中 7:30 534986
5/2 太田 13:00 691324
5/3 鈴木 14:00 143985
↓[転送ボタン]
『1シート』
日付 名前 時刻 データ …
5/1 田中 7:30 534986
5/2 太田 13:00 691324
5/3 鈴木 14:00 143985
【翌日5/4】
『Aシート』
日付 名前 時刻 データ …
5/1 田中 7:30 534986
5/2 太田 13:00 691324
5/3 鈴木 14:00 143985
5/4 佐藤 8:30 068912
↓[転送ボタン]
『1シート』
日付 名前 時刻 データ …
5/1 田中 7:30 534986
5/2 太田 13:00 691324
5/3 鈴木 14:00 143985
5/4 佐藤 8:30 068912
5/5以降も下の行に毎日『Aシート』『Bシート』に入力したデータを『1シート』『2シート』に転送(コピー)し保存します。
その際、転送先はシート保護をしておきたいのです。
Sub Macro1()
Dim GYOU As Long
Dim 様式1 As Worksheet, 様式2 As Worksheet
Dim 様式A As Worksheet, 様式B As Worksheet
With ThisWorkbook
Set 様式A = .Worksheets("様式A")
Set 様式B = .Worksheets("様式B")
End With
With Workbook.Open(Filename:="C:\共有\マクロ.xlsx")
Set 様式1 = .Worksheets("様式1")
Set 様式2 = .Worksheets("様式2")
様式1.Unprotect
様式2.Unprotect
様式A.Unprotect
様式B.Unprotect
様式A.Range("B16:AA2000").Copy
様式1.Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
様式B.Range("B16:W2000").Copy
様式2.Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
様式1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
様式2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
様式A.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
様式B.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
.Close SaveChanges:=True
End With
MsgBox "『マクロブック』へ" & vbCrLf & "データ転送しました。"
End Sub
この様なマクロを組んでみましたが、転送ボタンを押した際転送先の『様式1』『様式2』シート共に保護がかかったままデータがされるものの最初のデータ(5/1)から当日分(5/4)全てが張り付けられてしまいます。
【翌日5/4】
翌日5/4】
『Aシート』
日付 名前 時刻 データ …
5/1 田中 7:30 534986
5/2 太田 13:00 691324
5/3 鈴木 14:00 143985
5/4 佐藤 8:30 068912
↓[転送ボタン]
『1シート』
日付 名前 時刻 データ …
5/1 田中 7:30 534986
5/2 太田 13:00 691324
5/3 鈴木 14:00 143985
5/1 田中 7:30 534986
5/2 太田 13:00 691324
5/3 鈴木 14:00 143985
5/4 佐藤 8:30 068912
ポイントとしましては以下の通りです。
(1)『様式A,B』のシートは『様式1,2』へそれぞれ転送。
(2)毎日データ転送し、『様式1,2』へは下の行へその都度入る。
(3)『様式A,B』及び『様式1,2』は入力箇所以外は保護が掛けられ、データ転送後も保護が掛けられた状態のまま保存。
(4)日付データは重複しない。
どの様に修正すれば良いのでしょうか?
よろしくお願いします。
補足
回答ありがとうございます。 Sheet1で必要なセルのロックを外し、 それをコピーしてSheet2を作成しているのでロックは外れています。 実際に、メニューから「保護の解除」を実行し、セルの書式設定を確認してみましたが、ちゃんと外れていました。 カーソルが見えない状態でもキーボードからセルへの入力はできますし(ロックを外してあるセルに関しては)。 カーソルが消えた状態で「保護の解除」をするとカーソルは復帰しました。 その後再びメニューから「保護する」を実行すると、今度は消えませんでした。