プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (2件)

こんばんは!


一例です。
操作したい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
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/04/28 22:17

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すればいいと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/06/07 08:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!