Задать вопрос
@OSBoy

Как в VBA открыть книгу EXCEL полностью скрытно от пользователя?

Имеем подобный код, который должен открыть файл (книгу EXCEL) в режиме только чтение, скопировать из неё данные в массив, и затем закрыть книгу:
Public Const VBAPath As String = "D:\path\to\file\"
Public Const DevDBFileName As String = "Файл.xlsx"
Sub Prof_DevDB()
    If Len(Dir(VBAPath & DevDBFileName)) > 0 Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        Workbooks.Open VBAPath & DevDBFileName, ReadOnly:=True
        ' Здесь копируем данные из файла в массив
        Workbooks(DevDBFileName).Close 'Savechanges:=False
        Application.ScreenUpdating = True
        Application.EnableEvents = True
    Else
        MsgBox "Файл не найден!"
    End If
End Sub

При этом окно открываемой книги не отображается (Application.ScreenUpdating = False), но на короткое время отображается его вкладка в панели задач. Так вот, как сделать, чтобы эта вкладка не отображалась, то есть чтобы файл открывался полностью скрытно для пользователя?
Как вариант, работает следующее: открываем нужный файл и в панели вид->окно нажимаем "Скрыть", и сохраняем. При этом файл открывается скриптом полностью скрытно, но такой вариант не очень удобен, так как каждый раз, чтобы отредактировать данный файл, нужно вручную отображать его окно а затем снова скрывать. Как можно это сделать средствами VBA?
  • Вопрос задан
  • 132 просмотра
Подписаться 2 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Excel: от основ до анализа данных
    2 месяца
    Далее
  • Яндекс Практикум
    Основы Excel для работы
    1 неделя
    Далее
  • Skillbox
    Excel + Google Таблицы с нуля до PRO
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
master_z
@master_z
Программист
На мой взгляд VBA для этого как раз и не предназначен, его суть и заключается в том, что вначале запускается Excel, который будет виден. Но фактически это можно сделать отдельным приложением или скриптом для обработки, запустив Excel целиком без отображения.
Вариант Excel нужен Полностью скрыто Простота
VBScript (WSH) Да Да Просто
PowerShell + COM Да Да Очень удобно
PowerShell + ImportExcel Нет Да Очень удобно
Python + pywin32 Да Да Гибко
Python + openpyxl Нет Да Гибко
AutoIt / AHK Да Да Средне


Более развитые, с которым обычно я чаще сталкивался, это сделать через C#, VB.NET, Delphi
Работают через COM Automation. Excel можно полностью скрыть (Application.Visible = false).
Подходит для корпоративных приложений, где нужен строгий контроль над процессом.

Если нужно реализовать твою задачу тем или иным методом, пиши @tlgmess
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы