• ベストアンサー

P.W.でシート保護されている行の挿入のマクロ

こんにちは。エクセル2007を使用しています。 A列に社員番号を入力すると、B列にVlookup関数で 社員名を表示します。 このシートは、パスワード「xyz」で保護をかけています。 この時、今カーソルがある行の下に行の挿入をしたいのですが、 その際、A列は空白で、B列は一行目にある関数をコピーする マクロは組めますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から ActiveSheet.Unprotect Password:="xyz" Dim i As Long i = Selection.Row Rows(i + 1).Insert Cells(1, 2).AutoFill Destination:=Range(Cells(1, 2), Cells(i + 1, 2)) Cells(i + 1, 1).Select ActiveSheet.Protect Password:="xyz" End Sub 'この行まで (1)Sheetの保護解除 (2)選択セルの1行下に行挿入 → B1セルの数式を挿入行までオートフィルでコピー (3)Sheetの再保護 としていますので、すぐに入力(編集)したい場合は保護を解除してやる必要があります。 すぐに入力可能にしたいのであれば、最後の行の >ActiveSheet.Protect Password:="xyz" を削除してください。 この場合、Sheetを保護する場合は手作業で行うか、 Bookを閉じる時に、Sheetを保護するマクロを設けた方が良いと思います。 参考になりますかね?m(_ _)m

enako
質問者

お礼

7446368さん、こんばんわ。 早速の回答ありがとうございました。 コードだけでなくそれぞのコードの説明を 教えていただけ、大変参考になりました。 ありがとうございました。

その他の回答 (1)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

Sub Macro1() ActiveSheet.Unprotect (xyz) ActiveCell.Offset(1).EntireRow.Insert Range("B1").Copy Range("B" & ActiveCell.Offset(1).Row).PasteSpecial Paste:=xlPasteFormulas Application.CutCopyMode = False ActiveSheet.Protect (xyz) End Sub 参考まで マクロ自体にパスワードが入っているので、マクロを見られないようにするには Altキーを押しながらF11キーを押す ツール→VBAProject→保護タブ プロジェクトを表示用にロックするにチェックを入れる パスワードを入力してOKすればいいと思います。

enako
質問者

お礼

mar00さん、こんにちは。 俺が大変遅くなりましてすみませんでした。 無事解決することがでこました。 どうもありがとうございました。

関連するQ&A