2016-09-28 7 views
0

私はBattleshipsゲームでブックを作成しました。全体の "プログラム"は素晴らしい作品です。 2つのワークシートと各自のバトルグラウンドを持つ共有ブック。その無作為な船を作成し、ヒット/ミスをマークし、ヒット/ミスを計算する。ほぼ完成しましたが、もっと改善したいと思います。私の目標は、他のプレイヤーが私の戦場を見て船を見ることを許さないコードを作ることです。 DeactivateモジュールとApplication.ScreenUpdate = Falseを使用しようとしましたが、別のワークシートをクリックするか、それを保持すると、船が表示されます。VBAスイッチングワークシートを無効にしました

代替手段またはアイデアはありますか?

答えて

2

xlSheetVeryHiddenプロパティを使用することができます。これは、シートタブで通常の右クリック(VBAコードのみ)を使用して非表示にすることはできません。

次のサンプルコードでは、ユーザー名がブックを開いていることを確認し、それに応じて関連するシートを非表示または表示します。

Private Sub Workbook_Open() 

Select Case Environ("Username") 
    Case "Me" ' modify to your PC username 
     Worksheets("Sheet1").Visible = True 
     Worksheets("Sheet2").Visible = xlSheetVeryHidden 

    Case "Player" ' modify to your opponent PC username 
     Worksheets("Sheet1").Visible = xlSheetVeryHidden 
     Worksheets("Sheet2").Visible = True 
End Select 

End Sub 
+0

私のニーズに少し修正する必要があったが、 'xlSheetVeryHidden'はうまく動作します。ありがとう! –

0

問題のワークシートを非表示にしましたか? Application.ScreenUpdate = Falseは、ワークシートによるセルの更新を禁止します。

関連する問題