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