大人になっても苦手な食べ物、ありますか?

マクロ、超初心者です。
どうにか、下記マクロを設定しました。

On Error Resume Next
With ActiveSheet.Range("d:e").SpecialCells(xlCellTypeConstants, 23)
.ClearContents
End With

シートの保護を行うと、上記マクロが機能しません。

ちなみに、セルの保護の状態は、
d列----「ロックなし」「表示する」
e列----「ロックなし」「表示しない」(数式が入っています)

お暑いところ・お忙しいところ申し訳ありませんが、
どなたか、ご教授ください。

よろしくお願いいたします。

A 回答 (2件)

>sheet全てにプロテクトがかかってしまうという状況になり・・



意味がよく解りませんが・・・。
マクロでは保護の掛かったシートを変更することができないので、プログラムを組む場合はそのことを頭に置いて、保護の解除と保護を適切なところで行う必要があります。

基本的には、保護シートを操作するマクロの先頭に「保護の解除」、最後に「保護」のコードを記入すれば良いのですが・・・。
保護設定のオプションもエクセルのバージョンによって違うので書きませんでしたが、記録マクロを使って保護を設定すれば、保護オプションを含めたコードを取得できるので、書き換えれば良いでしょう。


マクロで何度も保護の解除と保護設定をしなくても済むようにする方法がありますが、エクセル起動時に一度だけ実行して置く必要があります。
ActiveSheet.Protect UserInterfaceOnly:=True
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …

この回答への補足

お忙しいところご回答いただきありがとうございました。

マクロを組んでいる際は、シート保護をかけていないのですが、

マクロ1(ソート)
Sub test()
Range("A6:C111").Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
Range("D6").Select
End Sub


マクロ2(クリア)
On Error Resume Next
With ActiveSheet.Range("d:e").SpecialCells(xlCellTypeConstants, 23)
.ClearContents
End With

2つのマクロを設定した後、シート保護をかけた段階で、
ソートのマクロはうまく機能いくのですが、クリアのマクロが機能しません (;;)

的外れな、補足かもしれませんが・・・
ご助言いただけると、助かります。

補足日時:2008/07/31 17:38
    • good
    • 0
この回答へのお礼

ありがとうございました。
どうにか、設定することができました<__>

お礼日時:2008/08/01 07:25

マクロで、シート保護の解除と保護の設定を行うだけです。



sub test()
ActiveSheet.UnProtect
'処理
ActiveSheet.Protect
end sub

この回答への補足

早々にご回答ありがとうございます <(__)>。

ご回答いただいたマクロを利用すると、sheet全てにプロテクトがかかってしまうという状況になり・・・エラーになってしまいます。

実は、もう一つマクロ↓を入れておりまして、
Sub test()
Range("A6:C111").Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
Range("D6").Select
End Sub

このマクロを実行した後に、d列およびe列のセル内容表示をクリアし、
『d列は、再入力できる状態に、e列は結果を表示』
を繰り返し行えるようにしたいのですが・・・。

お力を貸して頂けると幸いです。

補足日時:2008/07/31 15:15
    • good
    • 0
この回答へのお礼

ありがとうございました。
どうにか、設定することができました<__>

お礼日時:2008/08/01 07:25

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報