• ベストアンサー

Excelで別シートを見られないようにしたい

Excel XP を使っています。 ・sheet1は見れるけど、sheet2はパスワードかなんかがないと見れないという風にはできないでしょうか? ・逆にどのsheetも個別のパスワードがないと開けない。という風にはできないでしょうか? 1つのファイルで、Aさんはsheet1は見れるけど、その他を見れない。          Bさんはsheet2は見れるけど、sheet1は見れない。          といった風にという意味です。 ・ファイルにパスワードを設定する方法は知っています。 宜しくお願いします。

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

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

こんばんは。 >1つのファイルで、Aさんはsheet1は見れるけど、その他を見れない。 >         Bさんはsheet2は見れるけど、sheet1は見れない。 基本的には、出来ないと考えたほうがよいと思います。マクロ自体に依存する方法だと、マクロを不可にした場合のことも考えなくてはなりません。ただし、クラッカーの使用は、論外だから、考慮には入れません。 ブックにシートをひとつ入れておいて、それぞれのブックに対してパスワードをつけて配布したほうが安全で確実だと思います。 そうでなければ、ひとつのブックで、パスワードをつけて呼び出しをして、再び、開けるときに、パスワードを聞くようなマクロを作って、元のブックには基本的には、ブックの呼び出しのマクロだけで、他にも何も入れないようにすることですね。(ただし、後者の方法は、掲示板では非公開です。)

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

・sheet1は見れるけど、sheet2はパスワードかなんかがないと見れないという風にはできないでしょうか? こたえ:各シートの表示/非表示は、Visibleプロパティの設定により切り替えることができます。(VBAで可能です。)    Trueでシートを表示、Falseでシートを非表示にします。なお、全てのシート を非表示にすることはできません。  構文 Object.Visible 取得/設定  設定項目 内容 Object Worksheet,Chart,Worksheetsオブジェクトコレクション, Sheetsコレクションオブジェクト,Chartsコレクションオブジェクト  次のサンプル1はVisibleプロパティの値を反転させることで、シートの表示と 非表示を切り替えます。 ●サンプル1● Sub VisibleSamp1() With Worksheets(1)       '---1枚目のシートを対象 .Visible = Not .Visible '---表示/非表示を切り替え End With End Sub  TrueとFalseの値を使用するプロパティでは、このような記述で値の切り替えが できるので、覚えておくと便利です。  また、定数xlVeryHiddenを設定した場合には、マクロかVBEのプロパティウィン ドウでVisibleプロパティの値を変更しない限り、ユーザーの操作でシートを再表 示することはできなくなります。 ・逆にどのsheetも個別のパスワードがないと開けない。という風にはできないでしょうか? こたえ:Bookにパスワードを設定すれば、同様のことは、出来ます。 例: VBA が、解らないと無理でしょう。 'Excelファイルにパスワードを設定する Dim objXL Dim f Dim m Dim ws Dim sPassword '======================================= ' パスワード '======================================= sPassword = "7777777" If WScript.Arguments.Count<1 Then m="Excelファイルをドロップするとパスワード『" & sPassword & "』を設定します" MsgBox m WScript.Quit End If Set objXL=CreateObject("Excel.Application") 'objXL.Visible=False objXL.DisplayAlerts=False ' ドロップされたファイル数分ループ For Each f In WScript.Arguments 'ファイルを開く objXL.WorkBooks.Open f,,,,sPassword 'ファイルをパスワードをつけて保存 objXL.ActiveWorkBook.SaveAs f,,sPassword 'ファイルを閉じる objXL.ActiveWorkBook.Close ' m="ファイルにパスワード『" & sPassword & "』を設定しました" MsgBox m Next objXL.Quit WScript.Quit 'Excelファイルのパスワードを解除 Dim objXL Dim f Dim m Dim ws Dim sPassword '======================================= ' 解除するパスワード '======================================= sPassword = "7777777" If WScript.Arguments.Count<1 Then m="Excelファイルをドロップするとパスワード『" & sPassword & "』を解除します" MsgBox m WScript.Quit End If Set objXL=CreateObject("Excel.Application") 'objXL.Visible=False objXL.DisplayAlerts=False ' ドロップされたファイル数分ループ For Each f In WScript.Arguments 'ファイルを開く objXL.WorkBooks.Open f,,,,sPassword 'ファイルをパスワードをつけて保存 objXL.ActiveWorkBook.SaveAs f,,"" 'ファイルを閉じる objXL.ActiveWorkBook.Close ' m="ファイルのパスワード『" & sPassword & "』を解除しました" MsgBox m Next objXL.Quit WScript.Quit 1つのファイルで、Aさんはsheet1は見れるけど、その他を見れない。          Bさんはsheet2は見れるけど、sheet1は見れない。          といった風にという意味です。 ☆☆☆ VBAで、Aさん、Bさんのパスワードを設定して置き(難しいことは、ここでは省略します。) Aさん、Bさんにそれぞれのパスワードを教えておけば、可能でしょうね。 でも、こんな面倒なことを考えるより 見られたくないシートを削除して、それぞれに配布したらどうでしょうか??。 見られたくないシートを選択して、書式→シート→表示しない で非表示にして、Bookの保護をする 方法もあります。

すると、全ての回答が全文表示されます。
  • 134
  • ベストアンサー率27% (162/600)
回答No.1

sheet2を選択して、書式→シート→表示しない で非表示にできますけど

すると、全ての回答が全文表示されます。

関連するQ&A