すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

エクセルのマクロに関する質問です。

今開いてるブックの『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)日付データは重複しない。

どの様に修正すれば良いのでしょうか?
よろしくお願いします。

  • 質問者:mstldmugjgk
  • 質問日時:2016-05-28 02:05:40
  • 0

関連する質問・相談

Sooda!からのお知らせ

一覧を見る