• 締切済み

VBAで保護セルのコピー

セルA17:Q27の範囲にデータがあります。 この中の1部のセルは保護されており編集できません。 これを1セットし下にコピーしていきたいです。 最初はA28:Q38 次はA39:A49・・・ 11行ずつとなります。 VBAでやるとどのように書けばいいのでしょうか? SpecialCellsで最終行を取得していく方法もありますが ほかにうまい方法はありますか? マクロを使わずExcelでコピー&貼り付けではコピー先の 保護部分が無効になってしまうためVBAでやろうと思っています。 -------------- もう1つ手間をかけますがB列には平日の日が入ります。 その月のdayから曜日を取得できるのは知っていますが 祝日なども除いた日を入れていくことができるでしょうか? 5月で言うと3,4,5日はコピーしません

みんなの回答

回答No.1

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 これで、保護しているセルのコピー先も保護設定できます。 (保護情報を相対する場所にも適用しています) 但し、予めシートの保護は解除しておかないとエラーになります。 祝日を除いて日付を入力するには、アドインがないと無理だと思います。

参考URL:
http://www.h3.dion.ne.jp/~sakatsu/index.htm
5S6
質問者

お礼

ありがとうございます。 面倒なので行単位でコピーすることにしました。 祝日は面倒なので・・・とりあえずやらないことにしました

関連するQ&A

専門家に質問してみよう