powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Excel :)
25 сообщений из 25, страница 1 из 1
Excel :)
    #32246325
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос по екцелю, в наш форум как межгалактический мегаресурс

Возможно ли открыть книгу екцеля, без загрузки туевой тучи надстроек?
Я тут в обмарок давеча упал, когда поставил PromtXP SmartTool on Excel - книга стала открываться по 20-40 секунд. Вот и хотелось бы убрать нахрен все то что не нужно (а мне ничего не нужно :) ?
==
Тема по Excel навеяна mahoune :), а чем я хуже
...
Рейтинг: 0 / 0
Excel :)
    #32246432
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот че я тебе накопал (из справки Excel'a, введи в строку поиска - "личная книга макросов" и вторая тема - "Настройка запуска Microsoft Ecxel"... короче не мог описать :-) ):



Использование ключей автозагрузки при запуске Microsoft Excel

В главном меню (кнопка Пуск) выберите команды Программы, Стандартные и Проводник.
В проводнике Windows перейдите к папке «\Program Files\Microsoft Office\Office10\Shortcut Bar\Office» и удалите ярлык для Microsoft Excel.
В проводнике Windows перейдите к папке «\Program Files\Microsoft Office\Office10», щелкните правой кнопкой мыши файл EXCEL.exe и выберите Создать ярлык.
Правой кнопкой мыши щелкните созданный ярлык, выберите Свойства и измените путь в поле Объект, используя значения из таблицы.
Например, для открытия книги «Страховые списки.xls» введите пробел после пути в поле Объект, а затем введите:

C:\Reference Data\Страховые списки.xls Чтобы запустить Microsoft Excel и Введите
Открыть определенную книгу путь к книге/имя файла
Открыть определенную книгу только для чтения /r путь к книге/имя файла
Не отображать загрузочный экран и пустую новую книгу /e
Указать рабочую папку
Примечание. Папка, определенная в ключе автозагрузки, используется вместо папки, указанной в поле Рабочий каталог вкладки Общие диалогового окна Параметры (меню Сервис).
/p путь к папке/имя папки
Указать безопасный режим Microsoft Office /safe


Нажмите кнопку OK.
Переместите ярлык в «\Windows\Documents and Settings\Главное меню».
Примечание. Пользовательский ярлык может быть заменен ярлыком Windows Installer, если он называется «Microsoft Excel», а также выполнены следующие условия.

Используется команда Microsoft Office «Найти и восстановить» и установлен флажок Восстановить ярлыки.
В режиме поддержки выбран параметр Восстановление Microsoft Office, выполнена команда Исправить ошибки в установке Office и установлен флажок Восстановить ярлыки.
Если пользовательский ярлык заменен ярлыком Windows Installer, пользовательский ярлык необходимо создать заново.


Так вот, если поиграть этими ключами, то можно кой-чего добиться:
1. Запускаешь ярлык с ключом "/safe" - AddIns не грузятся, хотя галка в Надстройках остаются.
2. Personal.xls (и все другие автомат. загр. книги) грузятся в safe, но для них есть другой ключик :-) - "/p" указываем другой каталог и все они обламываются...

Вроде все, а так там есть еще Application.AddIns - но только для чтения, а коллекция AddIns только позволяет смотреть и добавлять addins, но не удалять.
...
Рейтинг: 0 / 0
Excel :)
    #32246440
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдаа... скопированный текст из справки хорошо перекорежило при таком форматировании.... :-) лучше в справке посмотри.
...
Рейтинг: 0 / 0
Excel :)
    #32246493
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. Спаcибо
Только теперь не понятно как запустить сие чудо средствами OLE

Set xwrb = xlsa.Workbooks.Open(filename:=strT, ReadOnly:=True)
если в strT добавить "/s" То "умный" екцель добавляет окончание .xls
В МСДН полно инфы, но только про ярлыки...
...
Рейтинг: 0 / 0
Excel :)
    #32246541
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как мысль:
запустить ХЛ как ярлык через Shell()
взять API и найти окно, а затем к нему DDE-шиться
насчет как в коде - абсолютно не знаю..
...
Рейтинг: 0 / 0
Excel :)
    #32246547
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, так, собака, он брать не хочет.. :-(
Получается только если открывать ярлык с ключом. Т.е. получается надо сначала создать ярлык на файл с ключом, а потом его уже открывать... немного геморойно, но я пока другого выхода не вижу...
...
Рейтинг: 0 / 0
Excel :)
    #32246555
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C Shell конечно все понятно, но думаю это крайний вариант. Если уж мы опустились до API, тогда проще ярлык создать на файл и потом спокойно юзай в программе объекты Excel'a
...
Рейтинг: 0 / 0
Excel :)
    #32246559
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чтобы создать ярлык надо знать:
1. Версию екцеля
2. Путь к екцелю

Мобуть что другое надыблю...
...
Рейтинг: 0 / 0
Excel :)
    #32246572
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C путем и версией проблем нет, как xlApp = CreateObject("Excel.Application") сделал, спокойно все нужное смотришь в свойствах, оно там...


По поводу создания ярлыка, вот один из примерчиков, с какого-то сайта (уж не помню) надыбыл:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Option Explicit

' ВНИМАНИЕ!
' Для использования этой процедуры необходимо
' сделать ссылку на Windows Scripting host object model
' Для этого выберите в редакторе VBA пункт меню
' Tools -> References...
Public Sub vbaShortcut(MyPath As String, strName As String)
  Dim WSHShell As Object
  Dim objShortCut As IWshShortcut_Class
  Dim strDesktop As String
  
  'create an instance of the scripting host
  Set WSHShell = CreateObject( "WScript.Shell" )
  'Get the desktop folder path
  strDesktop = WSHShell.SpecialFolders("Desktop")
  'Make the shortcut in the desktop folder
  Set objShortCut = WSHShell.CreateShortcut(strDesktop &  "\"  & strName &  ".lnk" )
  'The target is the file or folder the shortcut activates
  objShortCut.TargetPath = MyPath
  'Give the shortcut an icon from an exe dll or icon file.
  'if you use an exe or dll you must specify the index of the icon like this:
  'objShortCut.IconLocation =  "C:\Program Files\AutoCAD\acad.exe, 0 "
  objShortCut.IconLocation =  "Moricons.dll, 40 "
  'Set a hot key combo
  objShortCut.Hotkey = "ALT+CTRL+F"
  'Add a description
  objShortCut.Description =  "Sample short cut." 
  'You have to save it, its a file
  objShortCut.Save
End Sub

'And here is a fast test:
Public Sub TEST_vbaShortcut()
  vbaShortcut  "C:\WINDOWS\TEMP" ,  "Temp Folder" 
End Sub
'End code block

...
Рейтинг: 0 / 0
Excel :)
    #32246609
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Create не катит. Мне нужно Get. Хотя это и не важно
2. Твой пример не с сайта, а из МСДН (HOWTO: Use Windows Script Host to Create Shortcut with Parameters). Для этого нужно WScript, а он не везде есть, да и глупо ради одной строчки навязывать юзерам 5 Мб установщик. Лучше на VB: HOWTO: Create Shortcuts (Shell Links) within Windows (ms-help://MS.MSDNQTR.2003APR.1033/enu_kbvbwin/vbwin/155303.htm)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 'NOTE: In Visual Basic 5.0, change Stkit432.dll in the following
      'statement to Vb5stkit.dll. 
      'для VB6 - Vb6stkit.dll
      Private Declare Function fCreateShellLink Lib "STKIT432.DLL" (ByVal _
       lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal _
       lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As Long
      Sub Command1_Click()
        Dim lReturn As Long
        'Add to Desktop
        lReturn = fCreateShellLink( "..\..\Desktop" , _
         "Shortcut to Calculator" ,  "c:\Winnt\system32\calc.exe" ,  "")
        'Add to Program Menu Group
        lReturn = fCreateShellLink("", "Shortcut to Calculator", _
        "c:\Winnt\system32\calc.exe", "")
        'Add to Startup Group
        'Note that on Windows NT, the shortcut will not actually appear
        'in the Startup group until your next reboot.
        lReturn = fCreateShellLink(" \Startup ", " Shortcut to Calculator ", _
        " c:\Winnt\system32\calc.exe ", " ")
      End Sub


Сам этот пример не проверял.
По видимому другого выхода нет -сначала ярлык с ключом /s, а и только потом - танцы :)
...
Рейтинг: 0 / 0
Excel :)
    #32246674
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А чтобы создать ярлык надо знать:
>1. Версию екцеля
>2. Путь к екцелю

В винде раньше была хорошая штука (для запуска из DOS):
start filename.ext
запускала приложение, связанное с файлом, и открывало файл
Попробуй, вдруг поможет ВМЕСТО ПУТЕЙ...
...
Рейтинг: 0 / 0
Excel :)
    #32246683
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>В винде раньше была хорошая штука (для запуска из DOS):

Зачем Дос? Есть и для виньдоуса. Но это не подойдет в моем случае.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
Option Compare Database
Option Explicit

'************ Code Start **********



Private Declare Function apiShellExecute Lib "shell32.dll" _
                                         Alias "ShellExecuteA" _
                                         (ByVal hWnd As Long, _
                                          ByVal lpOperation As String, _
                                          ByVal lpFile As String, _
                                          ByVal lpParameters As String, _
                                          ByVal lpDirectory As String, _
                                          ByVal nShowCmd As Long) _
                                         As Long

'***App Window Constants***
Public Const WIN_NORMAL =  1     'Open Normal
Public Const WIN_MAX = 2    'Open Maximized
Public Const WIN_MIN =  3     'Open Minimized

'***Error Codes***
Private Const ERROR_SUCCESS =  32 &
Private Const ERROR_NO_ASSOC =  31 &
Private Const ERROR_OUT_OF_MEM =  0 &
Private Const ERROR_FILE_NOT_FOUND =  2 &
Private Const ERROR_PATH_NOT_FOUND =  3 &
Private Const ERROR_BAD_FORMAT =  11 &

'***************Usage Examples***********************
'Open a folder: ?ShellExecuteMy( "C:\TEMP\" ,WIN_NORMAL)
'Call Email app: ?ShellExecuteMy("mailto:dash10@hotmail.com",WIN_NORMAL)
'Open URL: ?ShellExecuteMy( "http://home.att.net/~dashish" , WIN_NORMAL)
'Handle Unknown extensions (call Open With Dialog):
' ?ShellExecuteMy( "C:\TEMP\TestThis" ,Win_Normal)
'Start Access instance:
' ?ShellExecuteMy( "I:\mdbs\CodeNStuff.mdb" , Win_NORMAL)
'****************************************************

Function ShellExecuteMy(stFile As String, lShowHow As Long)
    Dim lRet As Long, varTaskID    As Variant
    Dim stRet                      As String
    'First try ShellExecute
    lRet = apiShellExecute(hWndAccessApp, vbNullString, _
                           stFile, vbNullString, vbNullString, lShowHow)

    If lRet > ERROR_SUCCESS Then
        stRet = vbNullString
        lRet = - 1 
    Else
        Select Case lRet
            Case ERROR_NO_ASSOC:
                'Try the OpenWith dialog
                varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
                                & stFile, WIN_NORMAL)
                lRet = (varTaskID <> 0)
            Case ERROR_OUT_OF_MEM:
                stRet = "Error: Out of Memory/Resources. Couldn't Execute! "
            Case ERROR_FILE_NOT_FOUND:
                stRet = " Error: File not found. Couldn't Execute!"
            Case ERROR_PATH_NOT_FOUND:
                stRet = "Error: Path not found. Couldn't Execute! "
            Case ERROR_BAD_FORMAT:
                stRet = " Error: Bad File Format. Couldn't Execute!"
            Case Else:
        End Select
    End If
    ShellExecuteMy = lRet & _
                     IIf(stRet = "", vbNullString, ", " & stRet)
End Function
'************ Code End **********


По видимому алгоритм прийдется строить так:
1. Пытаемся законектиться к открытому екцелю с помощью GetObject
Если ошибка - значит екцел не открыт (идем к п2), если открыт - по фиг на Надстройки - работаем с текущей ссылкой. Но: а вдруг кто екцел открыл - тот его и закроет? Прийдеться скрыть его , что ли.
2. Создаем ярлык с ключем для безопасного запуска. Запускаем, получаем ссылку. Работаем.
...
Рейтинг: 0 / 0
Excel :)
    #32246697
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой пример создания ярлыка от 16:59 у меня работать не хочет :(
Инсnрукция не может быть Read/write ...
...
Рейтинг: 0 / 0
Excel :)
    #32246704
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a) к сокрытию:
там глюк встречается по чтению ячеек на спрятанном листе -
наткнешься если, попробуй minimize вместо hide.

б) естественно, и у винды есть, тока опять АПИ ;)))

в) пример из справки по определению открытости
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
GetObject Function Example
This example uses the GetObject function to get a reference to a specific Microsoft Excel worksheet (MyXL). It uses the worksheet's Application property to make Microsoft Excel visible, to close it, and so on. Using two API calls, the DetectExcel Sub procedure looks for Microsoft Excel, and if it is running, enters it in the Running Object Table. The first call to GetObject causes an error if Microsoft Excel isn't already running. In the example, the error causes the ExcelWasNotRunning flag to be set to True. The second call to GetObject specifies a file to open. If Microsoft Excel isn't already running, the second call starts it and returns a reference to the worksheet represented by the specified file, mytest.xls. The file must exist in the specified location; otherwise, the Visual Basic error Automation error is generated. Next the example code makes both Microsoft Excel and the window containing the specified worksheet visible. Finally, if there was no previous version of Microsoft Excel running, the code uses the Application object's Quit method to close Microsoft Excel. If the application was already running, no attempt is made to close it. The reference itself is released by setting it to Nothing.

' Declare necessary API routines:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
                    ByVal lpWindowName As Long) As Long

Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
                    ByVal wParam as Long, _
                    ByVal lParam As Long) As Long

Sub GetExcel()
    Dim MyXL As Object    ' Variable to hold reference
                                ' to Microsoft Excel.
    Dim ExcelWasNotRunning As Boolean    ' Flag for final release.

' Test to see if there is a copy of Microsoft Excel already running.
    On Error Resume Next    ' Defer error trapping.
' Getobject function called without the first argument returns a 
' reference to an instance of the application. If the application isn't
' running, an error occurs.
    Set MyXL = Getobject(,  "Excel.Application" )
    If Err.Number <>  0  Then ExcelWasNotRunning = True
    Err.Clear    ' Clear Err object in case error occurred.

' Check for Microsoft Excel. If Microsoft Excel is running,
' enter it into the Running Object table.
    DetectExcel

' Set the object variable to reference the file you want to see.
    Set MyXL = Getobject( "c:\vb4\MYTEST.XLS" )

' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.
    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
     Do manipulations of your  file here.
    ' ...
' If this copy of Microsoft Excel was not running when you
' started, close it using the Application property's Quit method.
' Note that when you try to quit Microsoft Excel, the
' title bar blinks and a message is displayed asking if you
' want to save any loaded files.
    If ExcelWasNotRunning = True Then 
        MyXL.Application.Quit
    End IF

    Set MyXL = Nothing    ' Release reference to the
                                ' application and spreadsheet.
End Sub

Sub DetectExcel()
' Procedure dectects a running Excel and registers it.
    Const WM_USER = 1024
    Dim hWnd As Long
' If Excel is running this API call returns its handle.
    hWnd = FindWindow( "XLMAIN" ,  0 )
    If hWnd =  0  Then    ' 0 means Excel not running.
        Exit Sub
    Else                
    ' Excel is running so use the SendMessage API 
    ' function to enter it in the Running Object Table.
        SendMessage hWnd, WM_USER +  18 ,  0 ,  0 
    End If
End Sub

...
Рейтинг: 0 / 0
Excel :)
    #32246711
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдаа, написать что-ли в Майкрософт, чтобы изменили работу метода Open, чтоб он не мудрил и xls в конец не добавлял, а сделали бы нормальный запуск (в смысде открытие) с ключами.
...
Рейтинг: 0 / 0
Excel :)
    #32246713
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функцию DetectExcel можно упростить если используеться версия 2000 и выше
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function IsLoadedExcel() As Boolean
' Dectects a running Excel '
    Dim hWnd                       As Long
    hWnd = FindWindow( "XLMAIN" ,  0 )
    If hWnd =  0  Then
        IsLoadedExcel = False
    Else
        IsLoadedExcel = True
    End If
End Function


Шняга с SendMessage hWnd, WM_USER + 18, 0, 0
нужна для глюка екцеля 95 (7.0) (Microsoft Excel 95 fails to correctly register itself in the Running Object Table. The GetObject function can be used with the correct syntax to obtain a currently running instance of Microsoft Excel 95 for use with OLE automation.
)
Подробности:
FIX: Microsoft Excel 95 Doesn't Respond Correctly to GetObject (ms-help://MS.MSDNQTR.2003APR.1033/enu_kbvbwin/vbwin/153025.htm)


>a) к сокрытию:
там глюк встречается по чтению ячеек на спрятанном листе -
наткнешься если, попробуй minimize вместо hide.

Скрываю-то я екцел целиком. А что за глюк (для общего развития)?
...
Рейтинг: 0 / 0
Excel :)
    #32246714
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор, а у тебя пользователь не офигеет от количества ярлычков? Или ты их за собой удалять будешь? Тож прикольно. Твоя программа будет выглядеть как сошедший с ума суперинсталятор экселя. I like to move it move it.
Или можно еще одну проверку ввести. Т.е. сначала пытаемся найти открытый эксель, если не нашли - пытаемся найти нужный ярлык , если нашли - то его юзаем, иначе создаем новый.
Только это... когда мы ярлык найдем - его кто-нибудь удалить может случайно... Придется его покрасить под цвет рабочего стола...
...
Рейтинг: 0 / 0
Excel :)
    #32246716
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Мдаа, написать что-ли в Майкрософт, чтобы изменили работу метода Open, чтоб он не мудрил и xls в конец не добавлял, а сделали бы нормальный запуск (в смысде открытие) с ключами.

Для запуска с ключами нужен не Open (для Книги), а нечто во время создания объекта New Excel.Application (CreateObject ("Excel.Application"). Именно в этот момент и создаеться нормальный/не нормальный екцел. Получаеться только через ярлык... :(
...
Рейтинг: 0 / 0
Excel :)
    #32246718
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП

Что-ты ты сегодня не в настроении - бурчишь ... а, блин, у тебя отпуск же кончился :(

По поводу ярлыков: не очень мне и хочеться их делать. Верней со всем не хочеться. Но если и делать - то:
1. Делать только 1 ярлык
2. И не на рабочем столе, а в каталоге с программой
3. И пусть ярлык удаляют (если найдут), его и заново создать можно.

Только все равно даже если и получиться - вылезет еще какая нибудь гадость, типа сообЧения "Вы работаете в безопасном режиме", которое нельзя отменить, или еще что-нить (типа, при первом запуске, предложение ввести инициалы). AcSex с Excel'ем - одним словом.
...
Рейтинг: 0 / 0
Excel :)
    #32246721
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, что будет если на сайте sql.ru открыть форум по экселю?
Сори за оффтоп
...
Рейтинг: 0 / 0
Excel :)
    #32246723
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Скрываю-то я екцел целиком. А что за глюк (для общего развития)?

Если откомментируешь две последние строки
и закомментируешь три первые - будет App defined error

' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.

MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
MyXL.Application.WindowState = -4140 'xlMinimized

'НЕ ВЫКЛЮЧАТЬ ПОКАЗ ОКОН
'ИНАЧЕ НЕ РАБОТАЕТ .CELLS(
'ХОТЯ RANGE(" РАБОТАЕТ...
'
' MyXL.Application.Visible = False
' MyXL.Parent.Windows(1).Visible = False
...
Рейтинг: 0 / 0
Excel :)
    #32246841
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
>Интересно, что будет если на сайте sql.ru открыть форум по экселю?

Будет тоже самое, что и с форумом по VB - т.е там ничего не будет :)

2Alexus12
Надо будет попробовать...
...
Рейтинг: 0 / 0
Excel :)
    #32247751
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Порылся я на MSDN. Вот чего там наковырял.

Эти AddIns суть COM-объекты, т.е. явл. подгружаемыми dll'ками. Когда сохраняешь книгу как xla - Надстройка, то Excel ее скрывает с глаз долой, хотя в VBE проект виден. Я так понял, что твои файлы Надстроек (xla), так же как и сторонних программистов в VBE будут видны, а вот свои файлы AddIns Excel после закрытия-открытия из VBE убирает, прячет (например Lookup.xla - мастер подстановок).
В процессе работы к коллекции AddIns можно получить доступ и управлять ими программно, а вот как при загрузке запретить подгружать AddIns я не нашел. Отыскал список всех ключей при загрузке (там есть ключ указыв. на подгружание указанного AddIns), но не по теме.

Единственное решение какое откапал, это:
При установке AddIns, Excel прописывает пути к этим xla в реестре, по которым при загрузке их и загружает:

HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
Ключ: OPEN = "/R "C:\Program Files\Microsoft Office\Office10\Library\Analysis\ANALYS32.XLL"

P.S. но опять же, что интересно, сюда попадают только сторонние AddIns, т.е. если отметишь AddIns - "мастер подстановок" (Lookup.xla ) ключа в реестре вы на него не найдете. Вообщем маскируется дядя Билл по полной программе (а может на самом деле эти файлы и так все время автоматом подгружаются). В статьях по разработке AddIns было написано, что разработчик может указать когда подгружать свой addins: в момент загрузки Excel, обращения к функции и т.д. так что все на совести разработчика AddIns'a.


Так что, если удалить, временно, ключи из реестра, то можно Excel и в облегченном варианте загрузить. Правда, кому надо стоко гемороя на свою ... :-(
...
Рейтинг: 0 / 0
Excel :)
    #32248248
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, столько гемору нам не нужно. Пусть это будет документированная фича - чем больше надьстроек в екцеле - тем дольше юзер будет ждать отчета.
...
Рейтинг: 0 / 0
Excel :)
    #32248254
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слова не мальчика а мужа. Аднака.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Excel :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]