• ベストアンサー

シートの保護をしたり、しなかったりはマクロで可能?

VBAでマクロを使って一部セルの変更をしているのですが このマクロを実行しない(ボタンを押さない)場合は、シートのセルが 変更できないようにシートの保護をかけています。 この状態で、マクロを実行すると 実行時エラー '1004' FontクラスのNameプロパティを設定できません。 と表示されます。 マクロ時は書き換えできて、マクロが実行していない場合、シートの書き換えができないようにしたいのですが、どのようにすればよいのでしょうか?

  • binma
  • お礼率14% (11/78)

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

保護されたシートを書き換えるにはいくつかの方法があります。 方法1 コードで保護の解除と保護をする。 sub sample1 ActiveSheet.Protect '処理 ActiveSheet.Unprotect end sub http://jp5.txt-nifty.com/exhogo.htm#hogo-01 方法2 ブック起動時におまじないをする。 Sub Auto_Open()   Worksheets("Sheet1").Protect UserInterfaceOnly:=True End Sub

関連するQ&A

  • シートを保護したらマクロがきかない?

    マクロもクエリも全くの初心者です。 仕事で他人が作成したエクセルデータを加工しなければなりません エクセルです 例えばSheet1上で、  セルA1 マクロ設定されており、クリックするとUserFormウィンドウが      開き、入力値を選択できるようになっている      →保護しておきたい  セルB1 文字列が入力されている      →保護の対象外にしたい。  セルC1 数式が入力されている      →保護しておきたい という状況で、 まずやってみた方法は「セルの書式設定」→「ロック解除」などを した上でシート保護をかけたのですが、セルA1のマクロも無効に なってしまいます。 個人的には入力規則等で対応できるかと思うのですが、 マクロの解除は不可能と(会社から)指示がありました。 マクロは不勉強ですので、何とか簡単に変更したいものなのですが やはり VBAコマンドでの(Activesheet.Unprotect?) 変更が必要になるのでしょうか? この機会にVBAに触れておくべきと考え質問さえていただきました。 そもそもアラ40の私に理解できうるものか不安を感じますが・・(汗) EXCELは2007だったと思います。(Verによって異なりますか?) 大変無粋ですが、初心者向きにご回答いただければ幸いですm(__)m

  • エクセルをシートの保護をするとエラーが出る。

    いつもお世話になります。 先日より VBAの記述を教えて頂きエクセルワークシートを作成しましたが (指定の色に色分けするVBA記述でした。)作業をしていると関数を入れているセルを消してしまう問題が発生しました。 その場合 シートの保護をして必要以外のセルを操作出来すれば良いと思い実施してみました。 しかし、VBAを走らすと ”実行エラー’1004’:InteriorクラスのColorIndexプロパティを設定出来ません”とメッセージが出てしまいます。何か良い手だてはありませんか お忙しところ申し訳ありませんが よろしくお願い致します。

  • 保護されているシートでマクロ実行するとエラー

    Excel2010で勤務表を作っています。 A列にとある文字列(承認)と入力すると、その行が保護されるマクロを、下記URLからコピペして使わせて頂いてます。 http://questionbox.jp.msn.com/qa3277541.html 勤務表なので、土日祝日は網掛けになるよう条件付き書式を使っています。 休暇取得した場合は網掛けを付けて、休日出勤した場合には網掛けなしにしたり出来るようマクロをマクロの自動記録で作りました。 ところが、どこかの行が保護されている状態で、セルの網掛けを変更するマクロを実行すると 「実行時エラー'1004'アプリケーション定義またはオブジェクトの定義エラーです」と出てしまいます。 保護されている行ではなく、まだ保護はされていない行に実行しています。 そこで一旦保護の解除をしてから、セルの網掛けを変更するマクロを実行してみるとちゃんと動きます。 保護をかける時に、網掛け(セルの書式設定)を許可すれば動くのかな?とか思ったのですが、どこにどういう構文を入れたらいいのか、はたまたその認識すら間違っているのかも分かりません。 マクロに関してはド素人で、自動記録かWebで調べて見つけたマクロをちょっと加工して使う程度です。 どうか知恵をお貸しください。よろしくお願いします。

  • エクセルVBAでのシート保護解除の操作方法

    VBAで2ファイル間でデータコピーのマクロを実行中の時に「変更しようとしているセルまたはグラフは保護されているため、読み取り専用となっています。」というエラーがでます。こういう場合の保護解除のマクロ操作を教えてください。

  • シートの保護をしていないセルの書式変更

    関数が入力されているセルのみ下記の方法でシートの保護をしたのですが、その後メニューから[書式]→[セル]が選択できなくなりました。 確かに保護されていないセルに対して数字や文字を入力したり消したり自由にできるのですが、フォントの色を変えたりフォントの大きさを変えたりできなくなりました。 一部でもどこかにシートの保護をしている場合、保護をしていないセルに対してフォントの変更はできなくなってしまうんでしょうか? もしシートの保護がされていないセルに対してフォントの変更等ができる方法があれば教えて下さい。Excelは98です。よろしくお願いします 1.セルをすべて選択する 2.メニューから[書式]→[セル]を選択する 3.[保護]タブの[ロック]のチェックをオフにする 4.メニュー[編集]→[ジャンプ]をクリックする 5.[セル選択]ボタンをクリックする 6.[数式]オプションのチェックをオンにする 7.メニューから[書式]→[セル]を選択 8.[保護]タブの[ロック]のチェックをオンにする 9.メニューから[ツール]→[保護]→[シートの保護]をクリックする 10.OK

  • シートの保護について

    Excel2000のVBAについて質問です。 シートの保護をした状態で、可視セルを範囲指定しよう思い下記コードを 実行すると、シートの保護の解除を求められます。 Range("A1:A65536").SpecialCells(xlCellTypeVisible).Select シートの保護をしたまま、可視セルを指定することはできないのでしょう か?

  • Excelでsheetに保護をかけたらマクロは動きませんか?

    マクロ初心者です。 Excelでsheetに保護をかけてしまうとマクロは動か なくなるものなのでしょうか?ちなみに、マクロで コピー等の処理を行うセルのロックは解除しておいた のですが…。 sheetを2つ作って、一方の保護付きsheetに情報を 入力をしておき、もう一方の保護無しsheetに同じ 情報をコピーした上でマクロ処理させる、という 方法は考えたのですが、もっとスマートな方法を ご存知でしたら教えて下さい。よろしくお願い致し ます。

  • VBAでのブック・シートの保護・解除について

    エクセル2010のVBAでのブック、シートの保護&解除の方法について教えて頂きたく、 質問させて頂きます。 消されては困るシートや数式がある関係で、ブックオープン時にVBAでブックとシートにそれぞれパスワードをかけて保護しています。 VBAではシートの削除、作成、コピーなどを行っているため、VBA実行時のみ、保護を解除させるようにしたいと思います。 ただ、対象のシート自体にも入力したい項目があるため、その箇所については保護を解除しておく必要があります。 そして、VBA実行後、再度、その箇所以外にパスワードで保護をかけ直します。 イメージとしては下記のような流れになります。 対象ブック:ブックA 対象シート:シート1 パスワード:1234(それぞれ) 常時保護を解除しておきたいセル:range("A6:H106") 1.(オープン時には、)ブック保護&特定のセル以外のシート保護 2.VBA実行時には全ての保護解除 3.VBA終了時に、1の状態に戻る どうぞよろしくお願い致します。

  • エクセル2010のシート保護マクロについて

    すべてのシートを保護してくれるマクロを教えてほしいのですが、機能として 「ロックされていないセル範囲の選択」と「セルの書式設定」の二つの機能を許可したものを教えてください。また、逆にすべてのシートの保護を解除するマクロもお願いします。 エクセル初心者のため、見当はずれなことを聞いていたら申し訳ありませんが、いくら探しても上記のようなものを探すことができず、、、。シートが80ほどあるもので、困り果てています。 よろしくお願いします。

  • シート保護について

    EXCELでセルの一部をロック解除し シート保護した場合、解除したセルに文字などは入れること出来るのですが、中央揃えとか字体の変更、字の大きさの変更などできません。できる方法ないでしょうか?

専門家に質問してみよう