• 締切済み

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

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

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

シートに保護をかけてあるセルを編集したいということですよね? マクロで実行前にシートの保護を解除し、終りに再度保護をすればOKでしょう。 Sub TEST()   ActiveSheet.Unprotect   '--シート保護解除   ・・・・・・・・・   ・・・処理・・・   ActiveSheet.Protect    '--再保護 End Sub パスワード設定をしているときは、パスワードの記載も必要になります。

neko001
質問者

お礼

有難うございました。

関連するQ&A

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

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

  • Excel 保護の為読み取り専用の解除方法

    Excel 2000 win2000pro 6000行目以降が下記のエラーが発生し編集できません どのようにすればいいのでしょうか? 「変更しようとしているセルまたはグラフは保護されているため、読み取り専用となっています。 保護されているセルまたはグラフを変更するには、[シート保護の解除]コマンド([ツール]メニューの[保護]サブメニュー)を使用してください。」

  • EXCELマクロ 保護されているシートのダイアログを表示させない方法

    いつもお世話になります。 EXCEL2000のマクロについて質問です。 ボタンでシート保護や保護の解除をしています。 (データ確定後に変更させないため) 保護されているときにシートをダブルクリックとすると EXCELより「変更しようとしているセルまたはグラフは保護されているため読み取り専用となっています。・・・変更するには・・・」 のメッセージが表示されます。 このメッセージを表示したくない場合はどうすればよいでしょうか。 Application.DisplayAlerts = False ではできませんでした。 EXCEL2002以降ではロックされたセルの選択の許可のチェックを外すことでできそうなのですが、2000にはそのような選択肢がありません。 どうぞ宜しくお願い致します。

  • シートの保護のパスワードが分かりません。

    突然 会社を辞めた人のエクセルで作ったものを変更したくて、セルをクリックしたら、 「変更しようとしているセルまたはグラフは保護されているため、読み取り専用となっています。 保護されているセルまたはグラフを変更するには、[ツール]メニューの[保護]をポイントし、「シート保護の解除」をクリックして保護を解除します。パスワードの入力を要求されることもあります。 と、でました。 これを解除するにはパスワードの入力しかないのでしょうか? やられた~!という感じです。本当に困ってます。

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

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

  • エクセルVBA シートの保護について

    エクセルの「シートの保護」について教えてください。 特定のシートのみ、保護したいと思っています。 そのシートの一定の範囲には、入力のみを許可したいです。 というのも、他の範囲(保護したい範囲)には、数式やvbaが設定されており、むやみやたらに「切り取り」や「行や列の削除」をされると困るからです。 そこで、 入力を許可する範囲を選択 →セルの書式設定 →保護のロックを外す →シートの保護 →「ロックされていないセル範囲を選択」を選択 しました。 この状態でマクロを実行すると、エラー1004(保護されたシートに対してこのコマンドは使用できません)とエラーが出ました。 エラー箇所は以下のとおりです。 Intersect(Worksheets("sheet1").Range("C5").CurrentRegion, Worksheets("sheet1").Rows("5:65536"), Worksheets("sheet1").Columns("C:T")).Select (質問1) ロックを外し、その後にシートの保護をする際、「全範囲を選択してから」シートの保護を行うものなのでしょうか。 それともシートの保護をすれば、自動的に、ロックを解除した範囲以外(全範囲)で保護したことになるのでしょうか。 「全範囲を選択してから」シートの保護をすると、ロックを外したセルを選択しても、アクティブセルが罫線で囲われずどこを選んでいるのか分からなくなってしまったので。 もし、あえて全範囲を選択する必要がないなら、それでいこうと思っています。 (質問2) 上記エラーを解消するには、どうしたら良いのでしょうか。 全範囲を選択できないように保護していることが原因かと思い、全範囲について「シートの保護→ロックされたセル範囲の選択」を選んでもエラー解除できませんでした。 また、Intersect.Selectの一行上に「ThisWorkbook.Unprotect」と追加しても解除できませんでした。 2つも質問して申し訳ありませんが、ご存知の方はご教授お願いします。 よろしくお願いします。

  • EXCEL(VBA)でシート保護がかかったシートにクリックボードから貼り付けしたい

    EXCEL2000のVBAで、クリップボードにコピーしたデータ(複数のセル範囲)を、シート保護がかかった別のシートにコピーする操作を行ないたいと考えています。 手順としては「1.クリップボードにコピー」→「2.シート保護解除」→「3.貼り付け」→「4.シート保護」なのですが、下記マクロを作成して試してみたところ、2.のシート保護解除を行なった時点でクリップボードが空になるようで、「実行時エラー'1004':RangeクラスのPasteSpecialメソッドが失敗しました。」と表示され貼り付けができません。 これについて何か回避策はないでしょうか? Range("A1:C3").Select Selection.Copy Sheets("貼り付け先シート").Select ActiveSheet.Unprotect Range("A1").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 以上、よろしくお願いします。

  • EXCELメニューのツールにある操作をVBAで行わせたい

    EXCEL 2003のマクロ(VBA)ですが、プログラミングですので、こちらに投稿いたします。 以下の2点をVBAで実行させたく、ネットでくまなく調べているのですが、サンプルソースすら見つけられませんでした。 どなたか、ご存知の方がいらっしゃいましたら、ご教授くださいませ。 よろしくお願い致します。 ------------ ツール⇒オプション⇒セキュリティ⇒□読み取り専用を推奨する のチェックON or OFFさせた後、[OK]を実行したときと同じ操作をさせたい。 ツール⇒ブックの共有⇒□複数のユーザーによる同時編集とブックの統合を許可する のチェックを外した後、 「このファイルの保護を解除してもよろしいですか?」のメッセージを無視し、 [はい]を実行したときと同じ操作をさせたい。

  • EXCEL VBAを使ってマクロを組んだのですが、消えてしまいます。

    VBAを使ってマクロをEXCELに組んだのですが、貼り付け先のデータをダブルクリックするとデータが消えてしまいます。 組んでいるマクロは (前提) ファイルA・・コピー元データ ファイルB・・貼り付け先データ (内容) Aファイルでマクロを実行すると、Aファイルの内容がBファイルにコピーされるというものです。 Aファイルの元データは数式のため、Aファイル内でいったん値として貼り付けてから再度コピーして、Bファイルに貼りつけています。 Aファイルは自分で作成したものですが、Bファイルは他社作成のため、もろもろ変更ができません。 Aファイルにもロックが必要のため、保護をかけています。(ロック、表示ともに) マクロ実行後、Bファイルの貼りつけされたデータをダブルクリックすると、ダブルクリックしたセル内容が消えてしまいます。 まったく原因がわからず困っています。すみませんがどなたかわかるかたお願いいたします。

  • Excel VBAについて

    Excel VBAについて ExcelのセルA1に日付データ(yyyy/mm/dd hh:mm)が入っています。 このエクセルファイルを開いている間、セルA1の日付(時分)が更新されたらマクロを実行するようにしたいのですが、どのようにしたらよいのでしょうか。 セルA1の日付データが更新されるタイミングは決まっていません。 セルA1の日付データが更新されたらマクロ実行というのが難しいのであれば、 10秒おきにマクロを実行というようなことができないでしょうか。 ご教授願います。

専門家に質問してみよう