この人頭いいなと思ったエピソード

保護をしているsheetにおいて、保護を解除してコピーをしてまた保護をする
マクロを組みたくてマクロの記録でして見て其れを記入したのですが
実行時エラー'424'オブジェクトが必要です。 となります、
どのように記入したら良いでしょうか。
Activsheet.unprotect と記入しています。

A 回答 (7件)

こんにちは。


エラーが出てしまったのは、私のコードの記述ミスです。

Workbook("ブック名.xls").Worksheets("シート名").Unprotect を
Workbooks("ブック名.xls").Worksheets("シート名").Unprotectに変更してみて下さい。これでエラは解消されると思います。

記述ミスをしてしまい、誠に申し訳ございませんでした。深くお詫び申し上げます。
    • good
    • 0
この回答へのお礼

有り難うございました、
回答のNO.5に補足をしましたが、私の記述ミスと分りました、
おかげさまで解決しました、本当に有り難うございました、

お礼日時:2002/11/18 14:34

kazuhiko5681さんからも出ましたので、そうではないかと思い、少し詳細を



#1の補足
>コンパイルエラー subまたわfunctionが定義されていません。
Workbook → Workbooks
です。
#2の回答は、多分あっています(試していませんが)
#2のエラーは多分、#1の文のWorkSheet()の()内のみ変更したからでは、ないでしょうか。
    • good
    • 0
この回答へのお礼

本当に有り難うございました、おかげで解決しました、

お礼日時:2002/11/18 14:35

早速補足いただきまして有難うございます。


taisuke555が書いているように、
Activsheet.unprotect → Activesheet.unprotect
と修正してみて下さい。多分うまく動作すると思います。
もし、動かなかった場合は次のことを教えて下さい。
・プロテクトをはずそうとしているシート名とそのブック名

何とか動作するように一緒に考えていきたいと思います。

この回答への補足

有り難うございました、記入ミスでした、
次をお教え下さい、
今度はマクロの終わりで再び保護をしていますが、ここでエラーが出ます、
以下の記述でダメでしょうか、
Activesheet.protect drawingobjects:=true,contents:=true,
scenario:=true
2行に書いていますが記述は1行です、

補足日時:2002/11/18 14:08
    • good
    • 0

書き間違えでなければ、


Activsheet.unprotect → Activesheet.unprotect

ではないですか?
    • good
    • 0
この回答へのお礼

有り難うございました、私の記述ミスでした、

お礼日時:2002/11/18 14:37

早速の補足有難うございます。

もしよろしければ貴方様の書かれたコードを全部
教えていただけないでしょうか。それを見ないとエラーの出ている原因が特定できません。私でよろしければ、動作するように考えてみたいと思います。

お手数をおかけいたします。よろしくお願いいたします。

この回答への補足

Sub harituke()
'
' harituke Macro
' マクロ記録日 : 2002/10/21 ユーザー名 : '
r = MsgBox("1年に1度のクリックです", 1)
Select Case r
Case 1
activsheet.Unprotect
Range("m23").Select
Selection.Copy
Range("n23").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m24").Select
Selection.Copy
Range("n24").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m25").Select
Selection.Copy
Range("n25").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m26").Select
Selection.Copy
Range("n26").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m27").Select
Selection.Copy
Range("n27").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False

If Range("ap1").Value = Range("ap4").Value Then
Range("m23").Select
Selection.Copy
Range("m50").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False

ElseIf Range("ap1").Value = Range("ap5").Value Then
Range("m24").Select
Selection.Copy
Range("m25").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m23").Select
Selection.Copy
Range("m50").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False

ElseIf Range("ap1").Value = Range("ap6").Value Then
Range("m25").Select
Selection.Copy
Range("m26").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m24").Select
Selection.Copy
Range("m25").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m23").Select
Selection.Copy
Range("m50").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False

ElseIf Range("ap1").Value > Range("ap6").Value Then
Range("m25").Select
Selection.Copy
Range("m26").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m24").Select
Selection.Copy
Range("m25").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("m23").Select
Selection.Copy
Range("m50").Select
Selection.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True,contents:=True,Scenario:=True
End If
Case 2
End Select
End Sub

'有り難うございます、よろしくお願いします。

補足日時:2002/11/18 11:07
    • good
    • 0

おはようございます。


例えば、シート1のA1~D50のデータをコピーしてシート1のE1~H50に張り付け、シート1に保護をかけるとすると、

Workbooks("ブック名.xls").Worksheets(1).Unprotect
Workbooks("ブック名.xls").Worksheets(1).range("A1:D50").Copy Destination:=Workbooks("ブック名.xls").Worksheets(1).range("E1:H50")
(このコードは1行で書いて下さい。)
Workbooks("ブック名.xls").Worksheets(1).Protect

これでエラー出ることなく実行できると思います。お試しになってみて下さい。

この回答への補足

Activsheet.unprotectの前にダイアログボックスを表示させOKをクリックした時進んで行くようにしておりますがActivsheetの代わりにご教授の通りに記入したら前のsub を認識しないでコンパイルエラー subまたわfunctionが定義されていません。と表示されます。

補足日時:2002/11/18 09:24
    • good
    • 0

初めまして。


Workbook("ブック名.xls").Worksheets("シート名").Unprotect
これでエラーが出なくなると思います。
お試しになってみて下さい。

この回答への補足

Activsheet.unprotectの前にダイアログボックスを表示させOKをクリックした時進んで行くようにしておりますがActivsheetの代わりにご教授の通りに記入したら前のsub を認識しないでコンパイルエラー subまたわfunctionが定義されていません。と表示されます。

補足日時:2002/11/18 09:25
    • good
    • 0

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


おすすめ情報