Четверг, 18.10.2018, 10:03
Поиск
Никнэйм
Сертификат на никнейм Olelucoye, зарегистрирован на Тимофеев Константин Михайлович
Зарегистрируй свой никнейм
Обратная связь
olelucoye.tk@yandex.ru
Реклама AdSense
Реклама
Друзья сайта
  • Лига медицинского права
  • Гостиница "Зай"
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Excel

    Как сделать полноценное приложение на основе Excel (часть 3)

    Продолжаем тему прошлых двух статей. Как скрыть от пользователя, что используется Excel?

    Как запустить программу с помощью скрипта, так чтобы пользователь мог не задумываться о включении низкого уровня безопасности макросов, я писал в одной из прошлых статей. Будем использовать этот скрипт и для запуска нашей программы. В этом скрипте есть такая строка:

    objExcel.Visible = False

    Она отключает видимость запускаемой Рабочей Книги. Если на рабочий стол вынести ярлык на этот скрипт и назначить ему иконку, то пользователь, запуская программу с помощью ярлыка, увидит только окна форм программы.

    Кстати, вот здесь представлен отличный онлайн сервис по созданию иконок.

    Для запуска файлов обновлений, тоже можно использовать этот скрипт, но для того чтобы пользователю не нужно было включать доступ к объектной модели VBA, код скрипта нужно дополнить. И для того чтобы скрыть от пользователя факт использования Excel, изменим расширение файла обновления на *.upg.

    Код скрипта запуска обновления будет такой.

    Dim objFSO, objExcel, ExcelPath, wb, strExcelVer, nValue
    sub objVBA()
    On Error Resume Next
    Dim strComputer, strKeyPath
    Const HKEY_CURRENT_USER = &H80000001
    strComputer = "."
    Set objReg = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}\\" & strComputer & _
    "\root\default:StdRegProv")
    strKeyPath = "Software\Microsoft\Office\" & strExcelVer & "\Excel\Security"
    objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, _
    "AccessVBOM", nValue
    end sub
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName)
    WScript.Echo "Выберите файл обновления"
    Set objDialog = CreateObject("UserAccounts.CommonDialog")
    intResult = objDialog.ShowOpen
    If intResult = 0 Then
    Wscript.Quit
    Else
    objFSO.CopyFile objDialog.FileName, ExcelPath & "\", True
    Set objExcel = CreateObject("Excel.Application")
    strExcelVer = objExcel.Version
    nValue = 1
    call objVBA()
    Set wb = objExcel.Workbooks.Open (ExcelPath & "\Up 1-0.upg")
    objExcel.Visible = False
    Set objExcel = Nothing
    nValue = 0
    call objVBA()
    end if

    В коде добавлена подпрограмма objVBA, которая вносит изменения в реестр в параметр отвечающий за доступ к объектной модели. Причем вызывается она дважды - сначала разрешая доступ, а по окончании процедуры обновления запрещая. Также добавлен диалог выбора файла обновления, что бы пользователю не было необходимости самостоятельно помещать файл обновления строго в рабочую папку программы. Для этого скрипта также можно создать ярлык и иконку.

    Итак, у нас получилось 5 файлов: собственно сам файл Excel, два скрипта запуска программы и обновления и две иконки к ярлыкам. Теперь нужно упаковать их в инсталяционный пакет. Для этого существуют специальные программы. Я пользуюсь SmallInstallMaker.

    При создании инсталлятора указываем какие ярлыки нужно создать на рабочем столе и/или в меню Пуск. Если в программе используются какие-нибудь специфические элементы управления, не забываем включать их в инсталлятор. Настраиваем интерфейс, диалоги и другие параметры инсталлятора, компилируем и получаем на выходе готовый дистрибутив.

    Вот какой инсталлятор получился у меня.

    А так выглядит меню программы.

    Делаем полноценное приложение на VBA часть1

    Делаем полноценное приложение на VBA часть2

    Параметры безопасности макросов

    Интерфейс VBA редактора

    Многопользовательский режим работы в Excel

    Категория: Excel | Добавил: Olelucoye (04.11.2013)
    Просмотров: 2843
    | Теги: vba, Excel, полноценное приложение | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Меню сайта
    Категории раздела
    Андроид разработка [23]
    libGDX [24]
    Мои андроид проекты [6]
    Excel [7]
    Железяки [5]
    Скрипты в блокноте [4]
    Разное [1]
    Форма входа
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Яндекс Метрика
    Яндекс.Метрика