アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel XP を使っています。

・sheet1は見れるけど、sheet2はパスワードかなんかがないと見れないという風にはできないでしょうか?

・逆にどのsheetも個別のパスワードがないと開けない。という風にはできないでしょうか?

1つのファイルで、Aさんはsheet1は見れるけど、その他を見れない。
         Bさんはsheet2は見れるけど、sheet1は見れない。
         といった風にという意味です。

・ファイルにパスワードを設定する方法は知っています。

宜しくお願いします。

A 回答 (3件)

こんばんは。



>1つのファイルで、Aさんはsheet1は見れるけど、その他を見れない。
>         Bさんはsheet2は見れるけど、sheet1は見れない。

基本的には、出来ないと考えたほうがよいと思います。マクロ自体に依存する方法だと、マクロを不可にした場合のことも考えなくてはなりません。ただし、クラッカーの使用は、論外だから、考慮には入れません。

ブックにシートをひとつ入れておいて、それぞれのブックに対してパスワードをつけて配布したほうが安全で確実だと思います。

そうでなければ、ひとつのブックで、パスワードをつけて呼び出しをして、再び、開けるときに、パスワードを聞くようなマクロを作って、元のブックには基本的には、ブックの呼び出しのマクロだけで、他にも何も入れないようにすることですね。(ただし、後者の方法は、掲示板では非公開です。)
    • good
    • 0

・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の保護をする 方法もあります。
    • good
    • 0

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

    • good
    • 1

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