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

このQ&Aに関連する最新のQ&A

A 回答 (7件)

>マクロを有効にする方法を教えて下さい。



補足のメッセージからすると、Excel2000でしょうか。今、Excel2000がないので100%確かではないですが、

 ツール→マクロ→セキュリティ→セキュリティレベル

のセキュリティレベルが『高』になっていませんか?


『中』にすればブックを開くと確認のダイアログボックスがでるので『はい(?もしかしたらYes)』でマクロを有効にします。

『低』にすれば無条件にマクロが有効になると思いますが、マクロウイルスが流行っていますし余りおすすめできません。

うまくいけばいいですが・・・では。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/01/23 11:15

>例えば一色しか指定出来ないようにする方法はないでしょうか



'==================================最初の回答をアレンジ===
'シートの保護、非保護にかかわらず塗りつぶし可能にする
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)作ったツールバーを既存のツールバーが並んだ箇所の空いた所にドラッグ&ドロップ。
この作ったツールバーを表示したくない時は、表示→ツールバーでチェックをはずします。

この回答への補足

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

補足日時:2002/01/22 14:07
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/08 15:43

シートの保護・非保護に関係なく色を塗るマクロ例です。

パスワードは考慮していません。やっていることは単純ですのでコメントを見てもらえばと思います。


ツール→マクロ→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

この回答への補足

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

補足日時:2002/01/21 09:59
    • good
    • 0

そうですね。


私も今試してみたんですが、塗りつぶし機能は出来ませんでした。
もし加工したいなら、やはりNo.1の方の言うとおり、解除して加工してから再び保護設定するか、VBA設定するしかなさそうです。

#「オブジェクトの保護」を外せば出来たような記憶があったので、大変失礼しました(-_-;)
    • good
    • 0

再びです。


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

#当たり前ですが(^^;)

この回答への補足

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

補足日時:2002/01/17 11:57
    • good
    • 0

基本的なことを言うようですが、「シートの保護」設定は、「セルの書式設定」→「保護」タブの”ロック”にチェックされていてはじめて機能します。


ですから、シート保護を設定した後、一部のセルを加工したいのなら、そのセルの”ロック”を外せばいいんです。
試してみて下さい。
    • good
    • 0

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

    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELで特定のセル以外を保護するのには?

完成したブックの特定のセル(年と月を入れるとそのカレンダーが表示されるなどの場合年とか月を入れるセル)だけ入力できてそれ以外のセルは入力や編集や上書きが出来ないように保護をかけるにはどうしたらいいのでしょう?
シートの保護にすると全部のセルが入力不可になりますし、データのチェックをはずすと全部のセルの入力編集上書きが出来てしまいます。
読み取り専用とか書き込み禁止のパスワードを設定しても上書き保存がされないというだけで、入力編集上書きが操作上できなくなるというわけではないのですよね?
上書き保存は出来てもOKなのですが、関数などが入ってるセルを誤って消したりしないように操作上特定のセルだけしか入力編集上書きができないようにするにはどうしたら一番よいのでしょうか?
よい方法をご存知の方がいらしたら是非教えて下さいm(__)m

Aベストアンサー

保護をかけたくないセル範囲を指定し、セルの書式設定で『保護』タグの“ロック”のチェックを外して下さい。
そうすれば、ブック・シートに保護をかけても、上記のセルだけは保護対象外となりますよ。

QExcel2003 書式→セル書式設定→パターンと塗りつぶしの色について

Excel2003で、異なるブックを左右に並べて配置し、セルの色を付けたい場合に、書式メニュー→セルの書式設定→パターンタブで色付けしようとすると、色パレットのローズの色が片方は名前の通りピンク色ですが、片方は見た目がどうしても紫色になってしまいます。

色番号がどうなっているのか、マクロで記録し確認すると両方色番号が38番になり、同じなのに見た目が違ってきます。

やり方をツールバーの「塗りつぶしの色」に変えると色パレットの色自体がピンク色の元々のピンク系で上手くいきますが、理由を知りたいのです。

Aベストアンサー

EXCELではブックごとに色の設定を帰ることが出来ます。
そのために色がずれているのだと思います。
同じ色の設定をしたいのであれば両方のブックを開き
変更したいほうのブックのツールメニューのオプションの色のタブを開き
コピー元のファイル名の欄に、元になるブックを指定してはどうでしょうか。

Qエクセルの「入力規則」→「リスト」の機能を、あるセルに使った時に、そのセルにリスト以外の文字も入力出来るようにするには?

エクセルの「入力規則」→「入力値の値」の
「リスト」の機能は便利な機能だと思いますが、
急遽、リスト以外の文字も入れなければいけない事態が
あった場合に、他の文字が入力できなかったりします。
私がファイルを全て管理す分にはリストの範囲を
広げたり修正したりできるのでいいのですが、
他の(あまりエクセルを使った事がない)人が
使う場合に、他の文字をいれたい場合に、入れれないで
戸惑ってしまうかもしれません。
ドロップダウンで文字を選択する機能も残しつつ、
手入力も出来るように機能を追加する事はできますでしょうか?

Aベストアンサー

実は私も同じことで以前なやんだのですが、実は単純に
リストを設定する際に、「エラーメッセージ」タブをクリック⇒「不正なデータが入力されたらエラーメッセージを表示する」に入ってるチェックをはずす、これで、リストから選ぶまた、リストにない値を入力するということができるようになります。

QExcel セルの塗りつぶし

セルの数値によって別のセルの塗りつぶしをしたいのですが
たとえば数値を参照するセル(A1)が「4」のとき左から4つセル(B1,C1,D1,E1)塗りつぶしたいです
こういったことは可能ですか?
可能ならセル(A2)に数値を入れたときA1の数値によって塗りつぶした次のセルから数値分のセルを塗りつぶしたいのですが
また複数の条件指定をして塗りつぶしを行う色を変更することはできますか?

Aベストアンサー

>1つ目のセルで色を決定して2つ目のセルで塗る数を決めたい
>図の通りのことを色を変えてやりたいと思っています
図とは当方が添付した図ですか?そうなら出来ているのに何が違うのでしょう??

何故あいまいで抽象的な説明をなさるのでしょうか。
1つ目とか2つ目でなくA1、A2ときちんとセルアドレスで書いてくれればイメージが掴めるのにと思います。

画像をつけてくれれば一番わかるのですが、文章でも今回の内容なら
A1セルに4を入力 → B1~E1が赤になる。
A2を2にする → F1とG1 が赤になる
このように書いて頂きたいです。

なお、A1の色で、というのは条件付き書式では出来ませんよ。
それをしたいならマクロです。
固定の色で設定するしかないです。

やりたい事が複雑なので、と言いますが、こんなに何度もやり取りしてお互い通じないのですから、最初から実際にやりたい事をやりたいアドレスで説明した方がいいと思います。

Qexcel マクロのセルの塗りつぶしについて

曜日によって特定のセルを自動で塗りつぶしたいのですが
マクロでの方法を教えてください。

例として、
G3からAL3までひと月の曜日のデータがあるのですが、
土=水色 日=赤色 祝=黄色 (これ以外は、塗りつぶしなし)
のように一致する縦列の2から51の背景塗りつぶしが自動で出来ないでしょうか?

Aベストアンサー

私は、読み違えをしていましたね。

>2***年**月を入力するとG3:AL3に曜日(祝日も)が直接全角漢字で割振られます。
その行は、シリアル値の行が、G1 や G2 にあって、それを、「=TEXT(G1,"aaa")」 などとしてあるということですか? 例えば、 「= G1」 として、書式側で、「aaa」としてもよいのですが。私のマクロは、シリアル値に沿って、色を変更していきますから、祭日などは、コードを変えない限りはとても不可能ですね。

具体的に(式などやセルの番地)、その日付と曜日のデータの内容を教えてくださいませんか?


人気Q&Aランキング

おすすめ情報