Excel vba windows visible

Свойство листа. Visible (Excel) Worksheet.Visible property (Excel)

Возвращает или задает значение кслшитвисибилити , определяющее, является ли объект видимым. Returns or sets an XlSheetVisibility value that determines whether the object is visible.

Синтаксис Syntax

Expression. Отображается expression.Visible

Expression (выражение ) Переменная, представляющая объект листа . expression A variable that represents a Worksheet object.

Пример Example

В этом примере показано, как скрыть Лист1. This example hides Sheet1.

В этом примере показано, как сделать лист Sheet1 видимым. This example makes Sheet1 visible.

В этом примере показано, как сделать каждый лист в активной книге видимым. This example makes every sheet in the active workbook visible.

В этом примере создается новый лист, а затем для его свойства Visible задается значение кслшитверихидден. This example creates a new worksheet and then sets its Visible property to xlSheetVeryHidden. Чтобы сослаться на лист, используйте его объектную newSheet переменную, как показано в последней строке примера. To refer to the sheet, use its object variable, newSheet , as shown in the last line of the example. Чтобы использовать newSheet объектную переменную в другой процедуре, необходимо объявить ее в качестве общедоступной переменной ( Public newSheet As Object ) в первой строке модуля перед любой процедурой Sub или Function . To use the newSheet object variable in another procedure, you must declare it as a public variable ( Public newSheet As Object ) in the first line of the module preceding any Sub or Function procedure.

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Windows(ThisWorkbook.Name).Visible = True causes error on Excel’s auto-recovered files

Thanks to @YowE3K he referred me to Workbook_Open event as the problem was occurring when I try to recover(re-open) the file. Today I deeply focused on it and found that the reason I was getting:

I don’t know how it became False but, when I try to open auto-recover file, I realize that file is opening normally, my form is opening normally, but when form disappears, the error comes through, the name of the file changes to Microsoft Excel, everything disappear from screen, all of the Excel ribbon freeze, I can only go to Developer tab, nothing changes the situation.

So I think that,excel somehow can’t turn Windows(ThisWorkbook.Name).Visible to True after Form (my Excel Splash Screen) disappears.

How can I avoid this? I don’t want to delete my fancy splash screen but I sometimes need to use auto-recover files as well.

Читайте также:  Windows application event log source

3 Answers 3

The code fails because when Excel recovers a file, it adds some text to the caption of the window, so that «FileName.xlsx» becomes something like «FileName.xlsx [Version last saved by user]». So use a routine like:

Windows(ThisWorkbook.Name) is a common, yet utterly wrong way to get the workbook’s window, which will give you Run-time error ‘9’ Subscript out of range sooner or later.

The right solution (I think, we’ll see how it goes) is to use the Workbook.Windows() collection.

Since Excel supports multiple windows («views» into the workbook, see an explanation here), doing it the right way requires thinking about which window or windows you need to operate on. In particular, ActiveSheet may be different in two different windows for the same workbook.

Given that most people are unaware of this functionality, I decided to always use the first window ( Workbook.Windows(1) ), like this:

To ensure this doesn’t lead to weird results, I wanted to do something when multiple windows are opened for my workbook.

Excel VBA application.visible immediately set back to True

I have set up a new, empty, modeless userform, to fix my problem with the least amount of code involved.

For when the workbook is opened, the following code is executed to hide Excel and show the userform. It’s the only code for the workbook.

I have an empty userform with one single button. The only code for this userform is:

The last thing is a button on the first worksheet, to start the same process as when the workbook is opened. Its code:

Now my problem: When I open the workbook, the userform shows up, but excel and the active window stay visible as well. However, if I click the button on the worksheet, Excel, or the window, are hidden as they should. Also, Excel, not the userform, has focus after loading everything.

The first time I ran this, it worked fine. I suspect changing the ShowModal setting in the editor screwed it up somehow, but that’s just me guessing. Anyway, it doesn’t work anymore as intended, no matter the modal setting now.

instead of the «if»-clause, Excel still stays visible and of course so does the active window.

This is driving me nuts. What am I missing?

Edit: Link to my test file: Test File on my Dropbox Might have to start it twice, because when the macros are blocked at startup and only activated after excel has completely loaded, the code works as intended.

Edit: I was able to test this on an excel 2010 pc and there the problem doesn’t exist. So it might have something to do with the way newer Office Apps handle stuff.

Как обрабатывать события для Excel с помощью Visual Basic .NET

Сводка

В этой статье приводятся пошаговые инструкции по обработке событий Microsoft Office Excel 2003 и Microsoft Office Excel 2007 из клиента автоматизации, разработанного с помощью Visual Basic .NET.

Создание обработчика событий

Обработчик событий можно создать с помощью Microsoft Visual Basic .NET 2003 или Visual Basic .NET 2002 одним из следующих способов. Способ создания обработчика событий с Visual Basic .NET зависит от того, как вы хотите связать обработчик событий с событиями:

  • Как правило, обработчик событий создается с помощью ключевого слова Handles с ключевым словом WithEvents. При объявлении переменной с помощью ключевого слова WithEvents Visual Basic .NET автоматически подключается к событиям этого объекта во время выполнения. Чтобы обработать определенное событие для этого объекта, добавьте подходящий обработчик с помощью списка классов и списка методов среды Visual Studio .NET в представлении кода.
  • С помощью ключевого слова AddHandler Visual Basic .NET предоставляет второй способ обработки событий. Ключевое слово AddHandler и ключевое слово RemoveHandler позволяют динамически запускать и останавливать обработку событий для определенного события.
Читайте также:  Dell установка windows с usb

Создание клиента автоматизации Visual Basic .NET

Ниже показано, как использовать любой способ обработки событий Excel из клиента автоматизации, разработанного с помощью Visual Basic .NET:

Запустите Visual Studio .NET 2002 или Visual Studio .NET 2003. В меню Файл выберите команду Создать, а затем выберите Проект. В разделе проекты Visual Basicвыберите приложение Windows.

По умолчанию форма Form1 создана.

Добавьте ссылку на библиотеку объектов Microsoft Excel. Для этого выполните следующие действия:

  1. On the Project menu, click Add Reference.
  2. На вкладке com найдите объектная библиотека Microsoft Excel 11,0и нажмите кнопку выбрать.
  3. Нажмите кнопку ОК в диалоговом окне Добавление ссылок , чтобы принять выбранные параметры. Если появится запрос на создание оберток для выбранных библиотек, нажмите кнопку Да.

В меню проект выберите команду Добавить модуль. В списке шаблонов выберите модульи нажмите кнопку Открыть. Вставьте следующий код в новый модуль:

Добавьте в проект еще один модуль и вставьте следующий код в модуль:

Добавьте следующий элемент в начало обеих компонентов Module1. vb и Module2. vb:

Note (Примечание ) Точное имя пространства имен Office может различаться в зависимости от версии основной сборки взаимодействия Office (PIA), зарегистрированной в глобальном кэше сборок (GAC) при добавлении ссылки в решение. Если в этом операторе отображается сообщение об ошибке построения, проверьте имя в том виде, в котором оно отображается в обозревателе решений (в разделе ссылки), а затем измените имя соответствующим образом.

В обозревателе решений дважды щелкните Form1. vb , чтобы открыть форму в режиме конструктора.

В меню вид выберите пункт панель элементов , чтобы отобразить панель элементов, а затем добавьте две кнопки в форму Form1. Измените свойство Text элемента Button1, введя команду использовать WithEvents. Затем измените свойство Text элемента Button2, введя команду использовать делегаты.

В меню вид выберите код , чтобы отобразить окно кода для формы. Добавьте следующий код в обработчики событий Click для кнопок:

Проверка кода

Нажмите клавиши CTRL + ALT + O, чтобы открыть окно вывода.

Нажмите клавишу F5 для построения и запуска программы.

В форме нажмите использовать WithEvents.

Программа запустит Excel, а затем создаст книгу с тремя листами.

Добавление данных в ячейки на одном или нескольких листах. После каждого изменения нажмите клавишу ВВОД. Изучите окно вывода в Visual Studio .NET, чтобы убедиться, что обработчики событий вызваны.

В форме щелкните использовать делегаты.

Опять же, программа запускает Excel, а затем создает книгу с несколькими листами.

Добавление данных в ячейки на одном или нескольких листах. После каждого изменения нажмите клавишу ВВОД. Изучите окно вывода в Visual Studio .NET, чтобы убедиться, что обработчики событий вызваны.

Читайте также:  Audacityteam org download windows

Закройте Excel, а затем закройте форму, чтобы завершить сеанс отладки.

Устранение неполадок

При тестировании кода может появиться следующее сообщение об ошибке:

Необработанное исключение типа System. InvalidCastException произошло в Interop. Excel. dll

Дополнительные сведения: такой интерфейс не поддерживается

Ссылки

Для получения дополнительных сведений о разработке Microsoft Office с помощью Visual Studio .NET посетите следующий веб-сайт Microsoft Developer Network (MSDN):

Чтобы получить дополнительные сведения об автоматизации Excel из Visual Basic .NET, щелкните следующий номер статьи базы знаний Майкрософт:

302094 способ: Автоматизация Excel из Visual Basic .NET для заполнения или получения данных в диапазоне с помощью массивов

Объект Window (Excel) Window object (Excel)

Представляет окно. Represents a window.

Примечания Remarks

Многие характеристики листа, такие как полосы прокрутки и линии сетки, фактически являются свойствами окна. Many worksheet characteristics, such as scroll bars and gridlines, are actually properties of the window. Объект Window является членом коллекции Windows . The Window object is a member of the Windows collection.

Коллекция Windows для объекта Application содержит все окна в приложении, а коллекция Windows для объекта Workbook содержит только окна из указанной книги. The Windows collection for the Application object contains all the windows in the application, whereas the Windows collection for the Workbook object contains only the windows in the specified workbook.

Пример Example

Используйте Windows (index), где index — это имя окна или порядковый номер, чтобы вернуть один объект окна . Use Windows (index), where index is the window name or index number, to return a single Window object. В следующем примере показано, как развернуть активное окно. The following example maximizes the active window.

Обратите внимание, что активное окно Windows(1) всегда. Note that the active window is always Windows(1) .

Заголовок окна — это текст, который отображается в строке заголовка в верхней части окна, когда окно не развернуто. The window caption is the text shown in the title bar at the top of the window when the window isn’t maximized. Кроме того, подпись отображается в списке открытых файлов в нижней части меню Windows . The caption is also shown in the list of open files on the bottom of the Windows menu. Используйте свойство Caption , чтобы задать или вернуть заголовок окна. Use the Caption property to set or return the window caption. Изменение заголовка окна не приводит к изменению имени книги. Changing the window caption doesn’t change the name of the workbook.

В следующем примере отключаются линии сетки для листа, показанного в окне book1. xls: 1. The following example turns off cell gridlines for the worksheet shown in the Book1.xls:1 window.

Методы Methods

Свойства Properties

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Оцените статью