- 締切済み
VBAで保護セルのコピー
セルA17:Q27の範囲にデータがあります。 この中の1部のセルは保護されており編集できません。 これを1セットし下にコピーしていきたいです。 最初はA28:Q38 次はA39:A49・・・ 11行ずつとなります。 VBAでやるとどのように書けばいいのでしょうか? SpecialCellsで最終行を取得していく方法もありますが ほかにうまい方法はありますか? マクロを使わずExcelでコピー&貼り付けではコピー先の 保護部分が無効になってしまうためVBAでやろうと思っています。 -------------- もう1つ手間をかけますがB列には平日の日が入ります。 その月のdayから曜日を取得できるのは知っていますが 祝日なども除いた日を入れていくことができるでしょうか? 5月で言うと3,4,5日はコピーしません
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- -yellowtail-
- ベストアンサー率65% (43/66)
Sub test() Dim y As Integer, x As Integer, i As Integer For i = 28 To 100 Step 11 Range("A17:Q27").Copy Cells(i, 1).PasteSpecial For y = 17 To 27 For x = 1 To 17 If Cells(y, x).Locked Then Cells(i + y, x).Locked = True End If Next Next Next End Sub これで、保護しているセルのコピー先も保護設定できます。 (保護情報を相対する場所にも適用しています) 但し、予めシートの保護は解除しておかないとエラーになります。 祝日を除いて日付を入力するには、アドインがないと無理だと思います。
お礼
ありがとうございます。 面倒なので行単位でコピーすることにしました。 祝日は面倒なので・・・とりあえずやらないことにしました