2016-12-09 14 views
0

WorkbookUserFormで開かれるはずのExcel VBAでスクリプトを作成しています。私はUserFormだけが見えるようにし、Excelウィンドウ自体は見えないようにします。そのため、私はWorkbookのオープニングのために次のコードを書かれている:特定のワークブックinvisible Excel VBA

Private Sub Workbook_Open() 

'Application launch 

Application.Visible = False 'Hide Excel window 
EnableResize = False 
Application.DisplayFullScreen = True 'Preset fullscreeen mode 
Application.CommandBars("Full Screen").Enabled = False 'Hide command bars 
WelcomeForm.Show 'Show welcome UserForm 

End Sub 

は私が見えないように全体のExcelアプリケーションを設定していることを実現します。この意味で、今私は他のExcelワークブックを開いているときに、私はこのワークブックを開くとすぐ目に見えなくなります。この設定がこの特定のワークブックにのみ適用されるように、どうすればできますか?ありがとう

+1

私はあなたができるとは思わない。 Excelには、あなたが見ているワークブックとは独立したGLOBAL設定があります。たとえば、1つのブックを見ながらリボンを最小化し、ブックを閉じて終了してから、ファイルの有無にかかわらずExcelを実行できます。リボンが最小化されたままになることがわかります。 – FDavidov

+1

VeryHiddenも使用できます。http://stackoverflow.com/questions/853270/hiding-an-excel-worksheet-with-vba/853327#853327を参照してください。これにより、ユーザーは簡単にアクセスできなくなります。 –

+0

ExcelのVBAプロジェクトをWindowsアプリケーションのように動作させるための努力は、Windowsアプリケーションを作成するときに少し時間を費やすよりもはるかに*しばしばです。 YMMV。 –

答えて

1

をチェックする必要があります。

Sub HideSheet() 

Dim sheet As Worksheet 

    Set sheet = ActiveSheet 

    ' Hides the sheet but users will be able to unhide it using the Excel UI 
    sheet.Visible = xlSheetHidden 

    ' Hides the sheet so that it can only be made visible using VBA 
    sheet.Visible = xlSheetVeryHidden 

End Sub 

詳細はthis SO question

1

部分的な答え:あなたが唯一のオープン1つのワークブックを持っている場合あなたは(空のExcelウィンドウが存在します.Visibleが同様

ThisWorkbook.Windows(1).Visible = False 

しかし、これはアプリケーションを隠さないだろうwindowプロパティを設定することができます)ので、あなたはここで行うべき選択肢があることを最初

If Application.Workbooks.Count > 1 Then 
    ThisWorkbook.Windows(1).Visible = False 
Else 
    Application.Visible = False 
End If 
+0

ありがとうございます。これは役に立ちます! – franciscofcosta

関連する問題