• ベストアンサー

《エクセル2000》特定のセルだけ上書き禁止にしたい

タイトルの通りですが、任意のシートの特定のセルのみ、変更禁止にしたいです。(数にして1シートあたり30くらい) ただし、「特定のセル」以外のセルは文字色やセルの色など、書式を変える必要があるので、「シートの保護」は使えません。 「セルのロック解除」+「シートの保護」以外の方法で、特定のセルのみを保護する方法はあるでしょうか。

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

  • ベストアンサー
回答No.2

> 書式貼付けだと複数ある転送元のファイルのVBAを書き換えなくてはなりません。 VBAの内容を書き換えなくても、別シートのセルに任意の書式を設定し、その書式を VBAとは別にコピーすればよいと思うのですが、ご主旨を理解できていないせいで でしょうか。 一応、マクロの件です。 実は私もマクロは得意ではないのですが。。。。。  ^_^; とりあえず、3枚のシートそれぞれに複数個の「特定のセル」があるとします。 まず、名前を3つ(シートの数分)定義します。 1.Sheet1の特定のセルすべてを選択して、名前ボックスで名前をつけます。    とりあえず、DAME という名前にしましょう。 2.Sheet2の特定セルすべてを選択して QQQ という名前をつけてから、[挿入]-  [名前]-[定義] で QQQ を選択し、名前欄を Sheet2!DAME に書き換えて  [追加]をクリックします。  QQQ は[削除]します。 3.Sheet3の特定セルすべてを選択して QQQ という名前をつけてから、[挿入]-  [名前]-[定義] で QQQ を選択し、名前欄を Sheet3!DAME に書き換えて  [追加]をクリックします。(QQQ は[削除]します) 次にマクロを記述します。 1.[Alt]を押しながら[F11]を押して、Visual Basic Editor を起動します。 2.画面左側のツリー内にある ThisWorkbook をダブルクリックし、開いた画面に  以下をコピペします。  '--- コピーは次行から  Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _     ByVal Target As Range)    Dim RNG As Range    Application.ScreenUpdating = False    For Each RNG In Range("DAME")  '※      If Target.Address = RNG.Address Then        Range("AZ1").Select      End If    Next    Application.ScreenUpdating = True  End Sub  '--- コピーは前行まで。 <マクロの処理内容> ※の行を含めた以下5行で、選択セルが DAME に含まれている(特定セル)か どうか判断します。 含まれない場合は何もしないで処理を終了し、特定セルならセルAZ1を選択します。 ここではAZ1にしましたが、実際には、どのシートでも"特定のセル"に含まれて いないセルのアドレスを指定してください。(特定セルのアドレスを指定すると、 マクロがループしてしまいます。) なお、複数セル範囲が選択された場合の処理はしていません。 選択範囲が特定セルを含むかどうかチェックする処理を加えますと、特定セルが 含まれない列全体が選択されたときなど、検査にかなりの時間がかかってしまう からです。

bari_saku
質問者

お礼

ありがとうございます! 概要を教えて頂ければ、と思ったのですが、懇切丁寧に解説していただいて、本当に助かりました。 あとでゆっくり試してみたいと思います。

その他の回答 (1)

回答No.1

シートを保護しても、ロックを外してあるセルにつきましては、文字色やセル色 などの書式は「コピー・形式を"書式"にして貼り付け」で変更できます。 マクロで、特定のセルが選択されたら強制的に特定のセル以外のセルにアクティブ 位置を移してしまうことも考えられますが、シートを保護されるほうが簡単だと 思います。

bari_saku
質問者

お礼

ご回答ありがとうございます。 実は、保護したいセルがあるシートに、他ファイルからVBAでデータを転送するという処理がしてあります。 「書式貼り付け」だと、複数ある転送元のファイルのVBAを書き換えなくてはなりません。 もしよろしければ、強制的にアクティブセル位置を移すVBAの概要を教えて頂けませんでしょうか。 (VBA初心者なもので、コードの仕様が想像つきません…)

関連するQ&A

  • エクセル・セルの結合ができない…

    WindowsXPのExcel2003を使用してます。 御回答の程宜しくお願い申し上げます。宜しくお願いします。 ★計算式の入ったセルを保護したい。 (計算式の変更や、削除を防ぐため) ↓ まずはシート全体の セルの書式設定内の保護「ロック」のチェックをはずす。 ↓ 特定の箇所のセルを「ロック」する。 ↓ シートの保護  許可する操作=「ロックされたセル範囲の選択」以外全て許可 ↓ ロックした場所はクリックできない。 ロックしていない場所は数字の入力や色の変更などできる。 ここまでは良いのですが、問題は「セルの結合」ができないことです。 セルの書式設定の中でも「セルの結合」だけグレーになっていて どうしても結合が出来ません・・・。 計算式を消してしまわないよう保護しつつ、他の計算式のないセルは 結合したり左寄せを必要としてます。 解決策をお願い致します!

  • エクセル表の特定のセルを書き込み禁止にする方法

    XPで、エクセル2007を使っております。シート1のデータを、VLOOKUP関数でシート2のフォーマットに書き込むように作りました。このシート2のフォーマットは全体的には書込み禁止にして、特定のセルだけ書き込み許可としたいのです。エクセルヘルプの解説を読んでも、特定のセルの保護の方法が分かりません。よろしくお願いします。

  • excel セルの保護について 教えてください。

    セルをロックしたいのですが, 記入した部分だけロックしたいと考えています。 同じシートですでにロックしたセルがある場合,一度保護を解除しなくてはならないようですが, 同じシートで保護したものを解除せずに,(できれば,別のパスワードを書けて)新たに保護をかける方法はありませんでしょうか。 よろしくお願いいたします。

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

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

  • エクセル 特定のセルを残して一括削除

    エクセル2003で勤務シフト表を作成します。 表内のセルには、色(複数色)のついたセルや数字、記号などが入ります。 この表を何度も使いまわすのですが、 範囲を選択し、データをクリア(表はのこして白の空白)する時に一定のセル、たとえばピンクの色のついた数値または記号のセルだけを残して一括クリアしたいのです。 セルのロック書式設定とシートの保護は何度も試してみましたが上手くいきません。削除するとみな消えます。保護中はロック以外のセルもエラー表示で何も出来なくなります。 マクロ機能だと出来るのですが、これはピンクのセルが固定されている場合のみです。 ピンク(数値・記号)がどのセルに変わろうと、残る方法が知りたいのです。何か良い方法があれば教えて下さい。 よろしくお願いします。

  • EXCELで特定のセルのみ移動するには?

    EXCELでセルの保護の解除を行います。 そしてシート全体の保護をします。 そうすると保護の解除をしたところしか上書きできなくなります。 ここまでは分かるのですが、ロックの解除を行ったセルのみENTERキーで順番に移動させるような設定は出来ますか? なおかつ移動の順番などを指定したり出来ますか? もしも出来るようであれば、そのやり方を教えてください。

  • EXCELで特定のセルのみ移動するには?パート2

    EXCELでセルの保護の解除を行います。 そしてシート全体の保護をします。 そうすると保護の解除をしたところしか上書きできなくなります。 ここまでは分かるのですが、ロックの解除を行ったセルのみENTERキーで順番に移動させるような設定は出来ますか? なおかつ移動の順番などを指定したり出来ますか? もしも出来るようであれば、そのやり方を教えてください。 前回と同じ質問なのですが、検証せずに評価をつけてしまったので、再度質問します。 バージョンは2003ではなく、2000でした。 シートの保護時に「ロックされたセル範囲の選択」という項目はありませんでした。

  • エクセルの特定のセルを書き込み禁止にする方法

    EXCEL2007、XPです。 セルの保護を次の手順でやりました。 1)保護するセルを範囲選択して、校閲~変更を許可する~ウィザードで範囲名と範囲を入力。 2)書式で「シートの保護」 **************** ところが、やってみると、保護されるセルと、保護されないセルの両方がランダム的に表れます。 つまり、危なっかしくて、セルの保護はできないことになります。 なにか間違っているのでしょうか。教えてください。お願いします。

  • エクセル2000でのVBAについて

    エクセル2000のマクロで下記のことをやりたい。 保護がかかっているシートのあるセルに、オブジェクトの挿入したファイル を貼り付けたい。 あるセルの書式の保護のロックを解除しても貼り付けができない。 シートの保護を外さないとできないのでしょうか。 シートの保護を外さないでできる方法はありますか? あれば教えてください。                       以上

  • エクセルのセルのロックができません

    すいませんが教えてください。エクセルで資料作りしていますが色々と作業したシートだけがシートの保護、セルのロックが出来来ません・ なぜでしょうか?2007を使用しています。ちなみ新しいシートで試すと出来ます。 A1~A3をドラッグしてセルの書式設定でセルのロックのクリックしてレ点を削除し シートの保護でロックされていないセル範囲の選択にチェックするとA1~A3以外は何も触ることができないので良いのですが 作業しているシートだけできません。考えられる可能性は何でしょうか? 関数など使用していますが問題ありませんよね?わけがわからなくて困っています。 至急ご回答お願いいたします。

専門家に質問してみよう