• ベストアンサー

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

関数が入っているセルに保護を掛けました。 B10からには「氏名」を入力します。(セルの保護は掛かっていません) C10からには「金額」を入力します。(セルの保護は掛かっていません) そして、B10:C600で「並べ替え」をしたいのですが、シートに保護が掛かっているのでできません。 このような状態で並べ替えは無理なのでしょうか。 もし、VBAででも出来るのでしたら、教えていただけないでしょうか。

noname#153814
noname#153814

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

  • ベストアンサー
  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

VBAでするとすれば、 1.シート保護解除 2.並べ替え 3.シート保護 という手順になるでしょう。

noname#153814
質問者

お礼

まさにその通りでした。 VBAで「並べ替え」を設定しておきながら、トンマな質問をしてしまいました。 ありがとうございました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 ご質問の、「並べ替え」というのは奇妙だなって思います。 それは、シートをプロテクトしておいて、「並べ替え」はしても、昇順・降順で、通常は一回キリのはずです。並べ替えたら、それ以上はしませんね。 「オートフィルタ」の間違いではありませんか? 「オートフィルタ」の場合は、Excel2000 でも、保護の時のオートフィルタ可動のオプションはありますから、抽出は可能です。もし、「オートフィルタ」でしたら、補足をお付けください。そうでないなら、すでに解答はありますから、無視して構いません。

noname#153814
質問者

お礼

ありがとうございます。 実はこういうのを作ったのですよ。 http://oshiete1.goo.ne.jp/qa2926009.html 祝儀の額はそれぞれですから、後になって高額が入ってくる可能性があります。その金額を降順に並べ替えて印刷するのです。 神輿は13時に出て、20時に収めます。その間祝儀はランダムに入ってきますが、21時にはベニヤ板で張り出したいのです。終盤は時間との勝負です。 A4紙に5人分並べます。ですから、たとえば1万円の人が5人そろえば、そのページは印刷できるのです。後でまとめて印刷するのでは時間が掛かります。ですから、並べ替えは随時行いたいのです。 スキーバスに40人乗った時点で、バスは出発します。後の人は後続のバスに乗ります。そのような感覚です。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

エクセル2000の場合でも、仮にシート保護のパスワードが merlion だったら、 ActiveSheet.Protect Password:="merlion", UserInterfaceonly:=True のコードでVBAでの、並べ替えを含めた各種のシートへの操作が可能になります。 一例です。 Sub Macro1() ActiveSheet.Protect Password:="merlion", UserInterfaceonly:=True Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin End Sub

noname#153814
質問者

お礼

いやぁ私には難しすぎます。 今回は、No1の方の回答を採用させていただきます。 ありがとうございました。

  • otagundan
  • ベストアンサー率60% (6/10)
回答No.2

こんにちは ご質問の内容からするとExcel2000以前のバージョンをご使用かと思われます。 2002以降では、シートの保護を設定するときに「ユーザに許可する動作」として「並べ替え」や「オートフィルタ」の使用が可能となります。 ご参考までに。。。

noname#153814
質問者

お礼

ありがとうございました。 「範囲の編集を許可する」で出来るのですね。勉強になりました。覚えておきます。 ちなみに2003を使っております。

関連するQ&A

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

    エクセルで関数をがっつり組んだ表を作成しました。 入力をする箇所があったり保護したい箇所があるのでその設定をかまってみましたが、上手くいきませんでした。 ちなみに、やったことは・・・ ・ツール → 保護 → 「シートの保護」と「編集許可の範囲」  です。 例でいうと列Aと列Cは入力できるようにし、列Bは保護をかけたいということです。 あと、欲を言えば、列Aの1セルに入力後[Enter]キーを押すと列Cの1セルに移動できる(列Bの1セルをとばす)ように設定したいのですが、こちらに限ってはツール等を開いてみても全く分かりませんでした。 この二つを教えてください。よろしく御願いします。

  • シートを保護した時でも並べ替えをするには?〔Excel〕

    関数がたくさん入っているのでシートを保護しています。しかし、シートを保護してしまうと並べ替えができなくなってしまいます。 ツール→保護→シートの保護→並べ替え にチェックを入れてみましたが、保護されたシートはやはり並べ替えができません。(保護されてないセルは並べ替えができます) セル内の関数を保護しつつも並べ替えだけは可能にする方法はないものでしょうか?

  • Excel - シート保護と並べ替え

    シート保護をかけたExcelのブックで、並べ替えだけは行いたいのですが、保護の時点で「並べ替え」の許可にチェックを入れても、「読み取り専用です」の旨のポップアップが表示され、並べ替えができません。 セルの書式設定で「ロック」のチェックを外せば並べ替えはできましたが、これだと編集も可能となるので、シート保護の意味がありません。 シート保護をかけた状態で、並べ替えだけ可能となるような設定の組み合わせが、他にありますでしょうか。 宜しくお願いいたします。

  • エクセルの保護についてお伺いいたします。

    エクセルの保護についてお伺いいたします。 シートA1からA5は入力用として使うため、ロックを外してシートを保護しました。しかしA1のセルをクリックしてドラッグすると下の方に移動ができてしまいます。ここに入力したデータはC1からC5の横方向へ順番にリンクさせて、VBAでarray関数の配列として使いたいと思っています。間違えてA1セルを移動させてしまうとデータの配列順も変わるため困っています。セルの移動ができないようにする保護の方法はないでしょうか。エクセルまたはVBAどちらでも構いませんのであればよろしくご教授お願いいたします。

  • エクセルの保護されたシート内のデータの編集について

    エクセルでC~E列のみロックをはずしてシートの保護を行いました。この状態でC~E列のデータを含むすべてのデータの「並べ替え」や、列を「表示しない」などの操作を行いたいのですが、シート全体が保護されているためできません。うまく操作する方法はありますか?セルの値のみが保護される状態が理想です。

  • ExcelでVBAにおけるシートの保護に関して・・・

    ユーザーフォームで入力した値がシートのセルに入力 されるというものを作っています。 そこで、シートの列挿入及び列削除を禁止しておきたい のですが、そのままシートを保護してしまうとユーザー フォームが開かなくなるので、VBAにてユーザーフォーム が開く前に保護を解除し、閉じるときに再び保護をかける ようにしました。 ただ、この方法だと、シート保護の項目全て(初期設定) に対して保護されてしまうため、例えば行挿入や行削除、 あるいはオートフィルタや並べ替えといったことまでが 出来なくなってしまいます。(手動で保護を解除すれば できるのですが、一々解除しなければならないのは面倒 なので何とか避けたいのです。) 禁止したいのは、列削除及び列挿入のみなのですが、 他によい方法はないでしょうか。

  • EXCEL保護シートで、Σを使いたい。

    EXCEL2002のシートに保護をかけた時に、Σがグレーアウトして表示されません。 表示させるには、どのようにすればよいでしょうか? Σを入力するセルは、ロックをかけておらず、タテ(列)の合計を計算させます。 保護されたシートのすべてのユーザーに許可する操作は 「ロックされたセル範囲の選択」「ロックされていないセル範囲の選択」「セルの書式設定」「列の書式設定」「行の書式設定」「行の挿入」「行の削除」「並べ替え」にチェックをいれています。

  • エクセル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のシートの保護について

    Excelのシートの保護について教えてください。 シートのセルごとに保護をかけました。 セルの書式設定→保護→ロックのチェックをつけて ツール→保護→シートの保護 というふうにしました。 セルの書式設定の保護のロックのチェックを 外したところは入力ができるようになり、 ロックのチェックをつけて保護をしたところには 入力しようとすると「変更しようとしているセルまたは・・・」と メッセージが出るようになると思うのですが、 一部のセルだけ入力しようとすると上記のメッセージが出て、 OKをクリックしてもずっとメッセージが出続けて、 タスクマネージャで終了しないと作業できなくなってしまいます。 原因がわからず困っています。なにか設定が悪いのでしょうか? 教えてください。よろしくお願いします。

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

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

専門家に質問してみよう