• 締切済み

Exel 一部のセルにのみ、閲覧制限をかけたい

EXELの一部のセルにのみ、閲覧制限をかけるようなことは可能でしょうか?    A B   C  D 1 いち ◆   ご ☆ 2  に ◇  ろく ★ 3 さん @  なな & 4 よん ◎  はち ◇ パスワードを知っている管理者の人だけが全て見ることができて、 パスワードを知らない一般の人は、BとDの行だけが見えないようにしたいのです。 現在は、管理者と一般の人で、別々でコピーしたファイルを使用しているのですが、 例えば、 一般の人が「さん」の部分を編集したら、 管理者のものも「さん」の部分も編集されるようにしたいのです。 管理者が5という列を挿入したら、 一般の人のものも、5という列が挿入されるようにしたいのです。 わかりづらくて申し訳ありません。 エクセルでやることが難しければ、プロのシステム開発屋さんに頼んで開発してもらうことも検討しています。 縦が800まであるような膨大な量のデータを扱っているので、 連携をとるのが非常に大変です。 何か良い方法はないでしょうか? 宜しくお願い致します。

noname#253879
noname#253879

みんなの回答

回答No.3

こんにちは。 パスワードの解析の話は、それを言い始めるとなんでもありになってしまいますから、一応、この場では、Out of Topic にしますが、最後の方で、すこし触れます。 >パスワードを知っている管理者の人だけが全て見ることができて、 >パスワードを知らない一般の人は、BとDの行だけが見えないようにしたいのです。 今、その種のマクロを思い出しました。かなり昔のもので、私のオリジナルではありません。 ただ、正確には思い出せませんが、こんな内容だったと思います。 まず、「隠しシート」を作ります。 その「隠しシート」に、どこか、とんでもない所に、B列データとD列データを置きます。[便宜的に、隠しシートのB1 とD1からにしました] 次に、どこか、適当(なるべく下の方に)に、True とでも、入れます。[便宜的に、$G$1にします] 実際は、Excelの'イースターエッグ'のような分からない所に置きます。 また、「隠しシート」の名称は、なるべく類推しにくいものや最初に空白を入れるとがよいと思います。 そうしたら、「閲覧シート」のB1から、 =IF(隠しシート!$G$1,"",隠しシート!B1) で、データのある分だけ、フィルハンドル・コピーをします。 D列も同様で、 =IF(隠しシート!$G$1,"",隠しシート!D1) 同じようにします。 次に、書式設定-保護タブ で、ロックと表示しない、両方にチェックを入れてください。 次に、VBEditor 画面を開きます。 「隠しシート」のプロジェクト・ウィンドウで選び、プロパティの中の、 Visibleの項目で、:-2 - xlSheetVeryHidden に変更し、 プロジェクト・ウィンドウを右クリックなどして、 プロジェクト・プロパティを出し、[保護タブ]をクリック、 プロジェクトのロックにチェックを入れ、パスワードを入れます。 こうして出来上がったら、今度は、変更履歴はオンにしておいて、校閲でパスワード付きシートの保護と、ブックの保護をします。 これで出来上がりです。 昔、私が出会ったプロテクトの一種です。 >管理者が5という列を挿入したら、 >一般の人のものも、5という列が挿入されるようにしたいのです。 これは、ちょっと違う話です。というのは、管理者側が、基本的に、ブックやシートを加工中の部分を見せるなら、もうセキュリティなどないに等しいのです。 以前にも経験があるけれども、この手の内容の記事は、他人から煽られることがあります。それに乗って、セキュリティに関してのノウハウを書きすぎたりする人間がいます。逆に、それを別の解除に利用する輩が出ることがあります。私は、見かけた記事は、OkWaveに頼んで、削除依頼することがあります。 ただ、常識的な機能で使う限り、そのプロテクトを破る人間などは、おおよそ見当が付きますから、後は、それなりの編集や閲覧記録を取れば、誰がやったかはすぐに分かってしまいます。 もちろん、マクロを使いこなせる人なら、この程度のものは、そのデータを抜き出すことなど、たやすいことです。ただ、一般の人は分かりません。また、シートを、VeryHiddenにしてあると、どこにも、その名称は出てきません。むろん、暗号化されていないブックでは、解析ツールなどでは簡単です。 この程度でも、プロテクト破りは、衆人環視の会社ではできるとは思えません。それができるような会社なら、情報は垂れ流しのはずです。それゆえに、またデータの持ち出しに気をつけるべきなのです。 それに対する単純な防衛方法もいくつかあります。例えば、別のブックを作り「隠しシート」に、隠しデータを移し、ブックをアドイン型に変更してしまってしまうのです。他にも、ありますが、この手の内容は、中途のままで後は、ご自身が考えてもらうようにします。 とは言え、いわゆる「頭の黒いネズミ」は、会社の気風にもよるものだと思います。 今は、セキュリティに関しては、「デジタル署名付き」、「パワード付き暗号化」、「最終版」、「IRM」などの選択もあります。それらを組み合わせてもよいかと思います。

noname#212058
noname#212058
回答No.2

EXCELのパスワードは、「解除ツール」が普通に出回っているほど 脆弱なものなのであまりお勧めはできません。例えば↓ http://www.vector.co.jp/soft/win95/business/se482922.html 『問題のEXCELファイルを見る人には、そんなツールを使うような 悪人は絶対にいないと断言できるなら、使ってもいいかな』程度の ものです。 もし、問題の場所を権限のない人には絶対に見せたくない、という ことであれば、最初から「権限のない人用」の、その列を削除した ファイルを作るほうが確実です。ファイルを保存するときに「問題 の列を削除したファイルも一緒に保存する」ようなマクロを作ると 良いかもしれません。

  • weboner
  • ベストアンサー率45% (111/244)
回答No.1

>パスワードを知っている管理者の人だけが全て見ることができて、 >パスワードを知らない一般の人は、BとDの行だけが見えないようにしたいのです B,D列を非表示にしてシートに保護をかけると、PW入力して保護を解除しないとシートの再表示は選択できなくなります Bookを閉じるときにB,D列の状態を見て表示状態なら非表示にするマクロを組めば、開いた時に非表示状態で開かれるようになります

関連するQ&A

  • EXELでの文字列の一部抽出

    WinXP、Office2003です。 http://aaa.com/abcd.html http://bbb.com/user/efgh.html http://ccc.com/link/ijkl.html 上記のようにURLのリストがA列に並んでいます。 この中の最後の部分「abcd.html」「efgh.html」 「ijkl.html」だけをB列にコピーしたいのですが、 どうすればよいでしょうか? EXELの機能の「置き換え」で最後の部分のみを指定することはできますか? よろしくお願いします。

  • EXELで条件抽出をしたい…

    教えて下さい。EXELで作った下のような表(データ)がありその条件に合う人を抽出したいんですが…       A   B   C   D 1 Aさん 1234  2345  3456  4567 2 Bさん 6788  1234  5556  7778 3 Cさん 7788  7778  5443  7789 A~Dのセルにランダムに並んだ数字を入力している(ここでは、番号(1234)と入力している)人を関数を使い一発表示したいんですが。  A列だけに1234という数字を入力している人を抽出し、条件にあえば「○」という表示をできるようにはIF関数を使いできましたが、 AさんのA列、B列、C列全てを検索範囲に入れた、(たとえば「1234」と入力しているなら「○」等で表示(抽出)したいんですが…それができる関数を教えて下さい。列ごとしかできないのか…??? 分かりにくいですか? (^_^; 宜敷お願いします。

  • ExelのVBAでダブルクォートをセルに埋めるには?

    文字列の中にダブルクォートを入れるにはどうするのでしょうか? C言語であれば、\" と書くところですが。 ダブルクォートを2つ続けると、Exel上で見ると期待どおりに表示されますが、 テキスト形式に保存してからファイルをみると、ダブルクォート2つ入ってます。 エクセルでデータベース管理をし、VBAでそれを編集して、 HTMLを自動生成するようなツールを作成したいのですが、 ダブルクォートをテキストに吐き出せなくて困っています。

  • EXELの質問です。例えば、EXELのシートABCDの列にAの列は、番

    EXELの質問です。例えば、EXELのシートABCDの列にAの列は、番号が順不同で縦列に数字のデータが入っているとします。Bのシートには、タイトルデータが縦に入っているとします。Cの列には、Aの列と違ったデータが縦列に数字のデータが入っているとします。Dには、項目のデータが縦に入っているとします。以上のデータをCのデータを順に並び変えたとします。ここで初歩的なご質問ですが、Cだけでなく他のA B D のデータも一緒にCとの結びつけたデータを並び変える方法は、どのようにすればいいのでしょうか? 教えてください。

  • ExelのVBAでダブルクォートをセルに埋めるには?

    文字列の中にダブルクォートを入れるにはどうするのでしょうか? C言語であれば、\" と書くところですが。 Range("A1") = "<img src=""" & DataName & "."">" 、のように、 ダブルクォートを2つ続けると、Exel上で見ると期待どおりに表示されますが、 テキスト形式に保存してからファイルをみると、ダブルクォート2つ入ってます。 エクセルでデータベース管理をし、VBAでそれを編集して、 HTMLを自動生成するようなツールを作成したいのですが、 ダブルクォートをテキストに吐き出せなくて困っています。

  • 複数のセルに合致するデータを全て表示する

    表1で1ヶ月分、日にちごとに誰が何を発注しているのかをまとめてあります。 (個人単位で1ヶ月のデータがでるようになっています。) 表2に1日単位で発注品毎に誰が頼んでいるか名前が出るように したいのですが関数で出来ますか? 表1    A列       B列  C列    D列            注文名 1行  氏 名 11 12 13 2行       日 日 日 3行  ああ  A B 4行  かか B A        5行  ささ  B C C 6行  たた  A A B 7行  なな  C B 8行  はは  A A 表2(11日の注文)     注文名  A     B     C           ああ  ささ    なな           たた     注文者  はは

  • エクセルVBAで、一部のセルの結合をしたい

    エクセルの表で、同じ内容の行を結合したいのですが、一か所の列のみ結合をせずそのままにしておく必要があります。どなたかVBAを教えていただけないでしょうか? イメージとしては次のようになります。 a b c d e 1 g a b c d e 2 g a b c d e 3 g これを下記のようにしたい a b c d e 1 g       2       3 社内システムに入力されているデータをCSVにて抽出しそれをエクセルで加工しているのですが、 aを物件番号とするとb~e,gは物件1件につき一個の項目が入っているのに対し、数字の部分のみ1件につき複数の内容が選択されているのです。そのため、データを抽出すると数字のセル部分以外もすべての行でデータが落ちてくるのです。 そこで、見やすくするために、1~3の内容以外の部分はセルを結合させたいのです。 ここでは3行にしていますが、1行のときもあれば7行くらいになっていることもあります。 列はすべて同じ数になりますが現段階では何列か覚えておりません。すみません。 説明が下手で申し訳ないのですが、わかっていただけるでしょうか? 私はVBAを習い始めたばかりでまったくわからず、自分で作成することができませんでした。ネットで探したものをコピペしてみたりしたのですが、どうもうまくいかず・・・ でもなんとかしたいのです! みなさんのお力をお借りしたいと思います。よろしくお願いします。

  • word xp の差込印刷

    exelの表では0の数字が入っていないのに、差込すると入ってしまうのはなぜでしょうか? 具体的には、A3に数字があり、その他行には数字はありません。この状態でA列部分は数字がないところは0が入ります。で、B列にはどの行にも数字が入っていません。で、フィールド挿入すると0は入らず、空欄です。 0が入らないようにしたいのですがどうしたらいいのでしょうか?

  • 重複した(?)セルの内容を一部削除し残りを取り出す

    何時も勉強させて頂いております。 現在、エクセルで困っておりお力を借りたく質問させて頂きたいと 思います。 エクセルで帳票などを作成しているのですが、   A  |     B    |  C  |    D     リーダー|    メンバー  | 欠席者 |  最終参加者  佐藤  |鈴木、齋藤、小林 |     |佐藤、鈴木、齋藤、小林 見づらいと思いますが、こんな感じで入力しています。 A列にはリーダー(必ず1名)、B列にはメンバー(2~4名程度)、 C列には当日欠席する人がいた場合その人の名前を記入し、D列には A列とB列をあわせた人の名前が入っています(A&"、"&Bという感じで)。 今回分らないのは、C列に【小林】と入った場合、 AとBは変更せずにD列には【小林】を抜いた、 【佐藤、鈴木、齋藤】とだけ表示させたいのです。 ※C列に【佐藤】と【小林】が入った場合は、D列には【佐藤】と 【小林】を抜いた【鈴木、齋藤】とだけ表示させたいと思っています。 重複したデータがあった場合、行単位で消す方法は分るのですが、 【セルの中のデータから同じ名前(重複と考えて)だけを抜き出した 残りのデータだけを取り出す】方法が分からないのです。 このExcelデータを使用する人はパソコンに詳しくなく、 データの入力、削除(セルの内容全て)をするのが精一杯な年配の方で(変更はできない)私としては、ただ入力するだけでOKというデータを 作っているのですが、こういった事はできますでしょうか? データを全部入れなおせば簡単なのですが、 A列とB列はSeet2で使用し、D列はSeet3で使用しており、更に この上のような行が数十行あるのです。。。 どうぞお力をお貸し下さい><

  • エクセルのセル右下のダブルクリック

    sheet1のD1に、 「IF(ISERROR(VLOOKUP($B1,sheet2!$A:$F,6,FALSE)),"",VLOOKUP($B1,sheet2!$A:$F,6,FALSE))」 という式を入れています。 D列全てのセルにこの式を入れたかったので、D1のセル右下部分をドラッグしてペーストしましたが 行を挿入するとその行のD列には式が入っていませんよね。 これを解消する為にD1のセル右下をダブルクリックしてみるのですが、D2以降のセルにはペーストされません。 なぜですか? 行を挿入する個所が複数の為、いちいちその行のD列に式をペーストしなくても良い方法はありませんでしょうか。 この機能(セルの右下ダブルクリック)を使わないにしても、D列全てを範囲指定して式を入れるには、この式のどこを修正すればよろしいでしょうか? よろしくお願いします。