Запуск Excel-файла с параметрами

Программирование на Visual Basic for Applications
bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Запуск Excel-файла с параметрами

Сообщение bdaa » 15.12.2004 (Ср) 15:02

Можно ли запустить Excel-файл с параметром? Если да, то как узнать значение этого параметра через VBA.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 15.12.2004 (Ср) 19:32

В каком смысле с параметрами, с паролем, только для чтения, и т.п.?

Тогда набираешь Open, выделяеши и ctrl+f1

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.12.2004 (Чт) 8:35

Нет, с параметром Command$(). Не сделать тебе этого; параметры передаются не твоему листу, а Excel. Используй другие способы передачи параметров.
Lasciate ogni speranza, voi ch'entrate.

bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Сообщение bdaa » 16.12.2004 (Чт) 8:50

Надо запустить, что-то типа:
Мой_файл.xls /0 или Мой_файл.xls /1.
Параметры будут указываться через разные ярлыки.
Т.е. надо сделать так, чтобы файл открывался с разными параметрами.
А потом в VBA-проекте как-нибудь сделать нечто подобное:
значение Параметра1=0, значит сделать то-то...
значение Параметра1=1, значит сделать что-то другое...
Если можно поподробнее про Command(), если это, конечно, имеет отношение к данной теме

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.12.2004 (Чт) 9:19

Не сделать тебе так.
Используй другие способы передачи параметров (дополнительный файл, реестр, переменные среды).
Lasciate ogni speranza, voi ch'entrate.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 16.12.2004 (Чт) 13:40

А если ему передавать параметр в ячейку какого нибудь листа, или передавать параметр в кэпшен excel или в подпись проекта и т.п. :?

bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Сообщение bdaa » 16.12.2004 (Чт) 16:45

Vitaly1 писал(а):А если ему передавать параметр в ячейку какого нибудь листа, или передавать параметр в кэпшен excel или в подпись проекта и т.п. :?


А как туда запихать значение? В одном случае одно, а в другом - другое

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 18.12.2004 (Сб) 16:22

Ну, например для кэпшена:

'Перед запуском книги
Application.Caption = параметр1

'в событие Open книги
параметр1 = Application.Caption

bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Сообщение bdaa » 20.12.2004 (Пн) 10:21

Vitaly1 писал(а):Ну, например для кэпшена:

'Перед запуском книги
Application.Caption = параметр1

'в событие Open книги
параметр1 = Application.Caption

так и вся проблема в том, чтобы проект был один, а значение параметра было разным, и это значение могло браться из, например, ярлыка.
Например, один ярлык MyFile.xls /1 - значение параметра1 равно 1, другой ярлык MyFile /2, значение этого параметра соответственно 2.
Но вот как считать в программе значение этого параметра? Как я понял, в VBA это невозможно. Значит нужен какой-то альтернативный вариант

bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Сообщение bdaa » 20.12.2004 (Пн) 10:23

Можно, конечно, создать два одинаковых файла, отличающихся только значением этого параметра. Но тогда, если нужно будет исправить проект, придется править 2 файла вместо одного

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 20.12.2004 (Пн) 13:03

Но вот как считать в программе значение этого параметра? Как я понял, в VBA это невозможно. Значит нужен какой-то альтернативный вариант

Возможно, так же как в VB, сейчас не помню, могу посмотреть дома.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 27.12.2004 (Пн) 17:58

Содержимое ярлыка:
Код: Выделить всё
Dim myFSO As Object
Dim myFL, a, b, c, d, e, f
Set myFSO = CreateObject("WScript.Shell")
Set myFL = myFSO.CreateShortCut("Полный путь к ярлыку.lnk")
a = "Путь к родительскому объекту: " & myFL.TargetPath & vbCrLf
b = "Горячая клавиша: " & myFL.Hotkey & vbCrLf
c = "WindowStyle: " & myFL.WindowStyle & vbCrLf
d = "№Иконки в род. файле: " & myFL.IconLocation & vbCrLf
e = "Комментарий иконки: " & myFL.Description & vbCrLf
f = "Рабочая папка род. объ.: " & myFL.WorkingDirectory

Set myFSO = Nothing
Set myFL = Nothing
MsgBox a & b & c & d & e & f


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList