• ベストアンサー

excelのセルの保護をした後で・・・

excelでセルの保護をしたあとに、保護したところ以外のセルで塗りつぶしの機能を使いたいのですが、どうやら出来ないようです。何か良い方法はないでしょうか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.7

>マクロを有効にする方法を教えて下さい。 補足のメッセージからすると、Excel2000でしょうか。今、Excel2000がないので100%確かではないですが、  ツール→マクロ→セキュリティ→セキュリティレベル のセキュリティレベルが『高』になっていませんか? 『中』にすればブックを開くと確認のダイアログボックスがでるので『はい(?もしかしたらYes)』でマクロを有効にします。 『低』にすれば無条件にマクロが有効になると思いますが、マクロウイルスが流行っていますし余りおすすめできません。 うまくいけばいいですが・・・では。

pinkymomorin
質問者

お礼

今までどうもありがとうございました。 VBのプログラムまで作っていただいてしまって本当に助かりました&勉強になりました。

その他の回答 (6)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.6

>例えば一色しか指定出来ないようにする方法はないでしょうか '==================================最初の回答をアレンジ=== 'シートの保護、非保護にかかわらず塗りつぶし可能にする Public Sub PatternSet()   With ActiveSheet     If .ProtectContents Then       .Unprotect       PatternSetSub 'パターン色を指定する       .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True     Else       PatternSetSub 'パターン色を指定する     End If   End With End Sub 'パターン色を指定する(Sub)<赤=3のみ使える例> 'ColorIndexの意味はVBE画面のHELPで、ColorIndex→ColorIndexプロパティで分かるでしょう Public Sub PatternSetSub()   Dim curPattern As Integer '現在のパターン色   With ActiveCell.Interior     curPattern = .ColorIndex '現在の色を待避     Application.Dialogs(xlDialogPatterns).Show '色を指定する     '指定色か色なし以外は再度入力する。     While Not (.ColorIndex = 3 Or .ColorIndex = xlNone)       MsgBox "赤しか使えません。", vbOKOnly + vbExclamation, "禁止の色"       .ColorIndex = curPattern '元の色に戻す       Application.Dialogs(xlDialogPatterns).Show '再度設定する     Wend   End With End Sub '==================================================別法=== '1色しか使えないならダイアログを出す必要はないかも '下記は、赤色を塗るマクロと色を消すマクロ。セットで使います。 Public Sub 色を塗る()   With ActiveSheet     If .ProtectContents Then       .Unprotect       Selection.Interior.ColorIndex = 3       .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True     Else       ActiveCell.Interior.ColorIndex = 3     End If   End With End Sub Public Sub 色を消す()   With ActiveSheet     If .ProtectContents Then       .Unprotect       Selection.Interior.ColorIndex = xlNone       .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True     Else       ActiveCell.Interior.ColorIndex = xlNone     End If   End With End Sub >ツールバーにあるボタンの様なものを作ることは出来ないでしょうか まず、新しいツールバーを作成します。 (1)表示→ツールバー→ユーザー設定。 (2)→新規作成ボタンを押して自分で名前を入力します。    これで小さなツールバーができます。 (3)ユーザー設定ダイアログでコマンドタブをクリック。 (4)分類の枠内でマクロをクリック。 (5)コマンド欄の『ユーザー設定ボタン』をクリックして、(2)のツールバーにドラッグ&ドロップ。 (6)ドロップしたアイコンを右クリックしてマクロの登録を選択。   ボタンイメージの変更もできます。 (7)マクロを選択してok。ユーザー設定ダイアログを閉じます。 (8)作ったツールバーを既存のツールバーが並んだ箇所の空いた所にドラッグ&ドロップ。 この作ったツールバーを表示したくない時は、表示→ツールバーでチェックをはずします。

pinkymomorin
質問者

お礼

先日マクロのプログラムを作成していただきましたが、ユーザ設定のボタンを作った際にこのボタンが全てのファイルで有効になってしまうため、このファイルの場合だけ表示させるようにしたいのですが、どのようにしたらよいのでしょうか。

pinkymomorin
質問者

補足

たびたびすみません。 上記の別法をコピーして使うことは出来たのですが、excelを閉じて再度このマクロ機能を使おうとすると次のエラーが出てしまいます。 ”このプロジェクトのマクロは無効に設定されています。”というウィンドウが表示されてしまうのですが、マクロを有効にする方法を教えて下さい。 よろしくお願いいたします。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

シートの保護・非保護に関係なく色を塗るマクロ例です。パスワードは考慮していません。やっていることは単純ですのでコメントを見てもらえばと思います。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。出てきたコードウインドウに下記マクロを貼り付けます。 頻繁に使う場合は、ツール→マクロ→マクロ でこのマクロを選択し、オプシュンからショートカットキーを割り当てておくと便利かと思います。 ↓ここから Public Sub PatternSet()   With ActiveSheet     If .ProtectContents Then      '/// シートが保護されている場合 ///       '保護を解除       .Unprotect       'パターンを設定するダイアログボックスを表示する       Application.Dialogs(xlDialogPatterns).Show       '再度保護する       .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True     Else       '/// シートが保護されていない場合 ///       Application.Dialogs(xlDialogPatterns).Show     End If   End With End Sub

pinkymomorin
質問者

補足

どうもありがとうございました。とっても助かりました。 VBのことが全く分からないので教えていただきたいのですが、例えば一色しか指定出来ないようにする方法はないでしょうか。 また、ショートカットキーを割り当てておくと便利と言うことですが、ツールバーにあるボタンの様なものを作ることは出来ないでしょうか?

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.4

そうですね。 私も今試してみたんですが、塗りつぶし機能は出来ませんでした。 もし加工したいなら、やはりNo.1の方の言うとおり、解除して加工してから再び保護設定するか、VBA設定するしかなさそうです。 #「オブジェクトの保護」を外せば出来たような記憶があったので、大変失礼しました(-_-;)

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.3

再びです。 一つ付け加えますが、「シートの保護」設定をする前に、加工したいセルの”ロック”を外してから保護設定するようにしましょう。 でないとセルじたい触れないですよ。 #当たり前ですが(^^;)

pinkymomorin
質問者

補足

もちろんNo.2,3に書いてある方法でシートの保護をしました。 その後保護をしていないセルを塗りつぶそうとすると、ツールバーに塗りつぶしのボタンは表示されているのですが、色の種類がグレーになっていて選択できない状態になっています。ということは出来ないということなのでしょうか?

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.2

基本的なことを言うようですが、「シートの保護」設定は、「セルの書式設定」→「保護」タブの”ロック”にチェックされていてはじめて機能します。 ですから、シート保護を設定した後、一部のセルを加工したいのなら、そのセルの”ロック”を外せばいいんです。 試してみて下さい。

  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

保護を解除してからもう一度保護するしか無いのではないでしょうか。

関連するQ&A

  • エクセル2000でセルの完全保護ッテできるのですか

    エクセル2000です(^。^;)  色々しらべて、検索してもわからなかったので質問させてください。 セルの保護をしようと、色んな質問サイトなどをみましたが 回答はあるけど、試してみてもセルのデータが簡単に変更できます。 もしかしてエクセル2000ではそんな機能がないのかな(^。^;) まずは、シートの保護を取り消して、次に保護したいセルを選択していきました。 (青色反転になってる) だったかな? 色々やって混乱しています。 しかし、なにをやっても、保護したいセルの文字は消えるし、書き足せるし、計算式のは行ったセルも 消えちゃうし。。。 指定したセルの文句や数字など、またセルの大きさなどの変更がでいないように出来るのでしょうか? 難しいことはわからないのですが(^。^;) そういえば、やっていた方法でセルのおおきさなどの変更はできなかったです。 でもデータが変わってしまうのです

  • エクセルの1つのセルだけを保護したい

    エクセル2010でシートの保護と編集可能なセルの指定方法(セルのロックを外してシート全体を保護する)は知っているのですが、計算式の入った数個のセルだけを保護したいのですが。 一応、セルの書式設定で1つのセルだけロックを外して、シート全体を保護してみたのですが、この方法では駄目でした。 簡単に目的の(飛び飛び)のセルだけを保護する方法を教えてください。

  • エクセル、セルの保護

    エクセルで、シートの保護、ブックの保護は出来ますが、 セルの保護の方法がわからないので、 ご存知の方、教えて下さい

  • Excelのセルの保護

    Excelで自治会の会計処理する表を作成しています。 表はフィルタを使ってサブトータルで科目別に集計出来るようにしています。 また、報告書作成時に必要のない列と行を非表示にして印刷します。 大勢の人が使うために数式、他シートの参照いているセルなどを保護し変更できないようにしたいのですが、セルの書式設定⇒保護⇒ロック してシート保護をかけるとフィルタ機能や列、行の非表示などができなくなります。 特定のセルだけ変更できないようにして、フィルタや列、行の非表示などは可能なセルの保護方法があったら教えてください。

  • Excelのセル保護について

    エクセルでシートの保護ではなくセルだけを保護したいのですが、どうしたらよいのでしょうか?

  • エクセルでセルの保護方法はありますか?

    エクセルで計算式等を入れているセルのみを保護する方法は ありますか?(個人で使用している場合は、問題ないが、共有していると、計算式のセルへ入力してたりして、式が消えてしまう為、各セルごとに保護する方法がありませんか?)

  • セル保護してしない部分のみ、エンターキーを押して移動するようにする方法は?

    エクセル2003の保護の機能について、セルの書式設定から保護タブでロックしてからシートの保護を行いましたが、セルの保護していないセル以外にセル保護した箇所にもエンターキーを押したら移動してしまいます。セル保護していないセルにのみカーソルを移動させる方法ないでしょうか? それとセルの書式設定から保護タブでロック下に表示しないにチェックするとどういう影響があるのでしょうか?

  • エクセルの保護について

    エクセルの保護に付いて教えて下さい。 あるSheetを入力テンプレートとして使用しています。(多数の人が使用します。) sheet中の特定のセルのみに入力してもらい、それ以外のセルはいじられたくないのでシートの保護をかけました。 ただ、要件上、行がものすごく多いのである単位でグループ化をしています。 この設定を行ったところ、シートの保護をするとグループ化の+、-ボタンも保護対象となってしまい行を展開したり圧縮したりする事が出来なくなってしまいました。 この問題を解決する事は出来ますでしょうか?? 出来ればエクセルの標準機能で対応したいのですが、、、 もし、マクロでしか出来ないのであればそれでも結構です。 よろしくお願いします。

  • セルの保護について

    Excelで範囲指定したセルの保護は出来るのでしょうか?シートやブックの保護は出来るのですが、セルの保護の方法がどうしてもわからなくて・・・。例えば、共有しているファイルの関数やデータが入っているセルを、他の人に書き換えや削除が出来ないようにしたいのですが。シートやブックの保護では、他の人に入力して欲しいセルまでが保護されてしまいますので。以上、御教授お願いします。

  • エクセルで指定したセルを保護することはできますか?

    エクセルなんですが、指定したセル内の数字が変えられないように、保護というか変更できないように固定できますか? ファイルやシートの保護というのはありますが、指定したセルの保護というものができたら助かります。 エクセルの達人の方、ご存知でしたら是非教えていただけませんでしょうか。 お願いします。

専門家に質問してみよう