2016-12-09 3 views
0

Я пишу сценарий в Excel VBA, где должен быть открыт Workbook с UserForm. Я хочу видеть только UserForm, а окно excel - невидимым. Таким образом, я написал следующий код для открытия Workbook:Специальная рабочая тетрадь невидимая 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-настройки, которые не зависят от книги, на которую вы смотрите. Например, вы можете минимизировать ленту при просмотре одной книги, затем закрыть книгу и выйти, а затем запустить Excel с файлом или без него. Вы увидите, что лента остается сведенной к минимуму. – FDavidov

+1

вы также можете использовать VeryHidden, см. Http://stackoverflow.com/questions/853270/hiding-an-excel-worksheet-with-vba/853327#853327, что позволяет пользователям легко добраться до него. –

+0

Иногда усилия, связанные с созданием проекта VBA в Excel, ведут себя как приложение 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

Частичный ответ: Вы можете установить свойство окна .Visible а

ThisWorkbook.Windows(1).Visible = False 

однако это не будет скрывать приложение (будет пустое окно Excel, если у вас есть только один открытый учебное пособие), поэтому вы должны проверить, что первый

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

Спасибо. Это помогает! – franciscofcosta

Смежные вопросы