ワークブックには、それぞれにコラボレータ名(Windowsログインユーザー名)のワークシートがあります。VBAを使用してExcelワークシートを非表示にする
VBAを使用して、すべてのワークシートをループして、実際のWindowsログオンユーザー名と一致するワークシートを照合しました。一致が完了すると、そのワークシートのみが表示されます(他のすべてが隠されています)。
私はこれを部分的に行うことができましたが、一致するワークシートが見つかるまでそれを行うことができます。たとえば、一致するユーザー名が3番目のワークシート(たとえば合計10個)である場合、コードはそこで停止します。私はそれがすべてのワークシートを通過するようにし、一致していないワークシートを隠すだけです。
まず私は、次のモジュールがあります。これを達成することができる方法上の任意のヒント
Option Explicit
Dim WS As Worksheet
Private Sub Workbook_Open()
For Each WS In ActiveWorkbook.Worksheets
WorksheetFilter
Next
End Sub
:次に
Sub WorksheetFilter()
Dim Username As String
Dim Worksheetname As String
Worksheetname = ActiveWorkbook.ActiveSheet.Name
Username = Environ("Username")
If Worksheetname <> Username Then
ActiveSheet.Visible = False
End If
End Sub
を、私はのWorkbook_Open()イベントの前のモジュールを呼び出しますか?
おかげで、 ビトー
コードは特定のワークシートにリンクされていますか? – FDavidov