![]() |
|
Модераторы: mihanik |
![]()
|
|
| Гость_lana |
|
|||
|
Unregistered |
есть макрос, который я назначила пункту меню.
как сделать так, чтобы мой макрос срабатывал для этого пункта меню на любом другом компьютере где запускается созданный мной excel файл (этот икселевский файл у меня создается в результате приложения написанного на java). |
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
при открытии файла присваивай программно макрос пункту меню
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
хх - это название пункта меню?
а что такое yy? Получается что код моего макроса нужно все время перетаскивать на другой компьютер? а код макроса можно хранить в текстовом файле? |
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
хх - переменные, подставляй реальный № (имя) элемента
например, назначаешь макрос пункту меню "файл->закрыть"
код макроса держишь в соотв. модуле документа/шаблона/надстройки Это сообщение отредактировал(а) likhobory - 21.6.2005, 15:40 |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
спасибо. теперь программно макрос присваивается пункту меню.
но мне почему то еще не особо ясно, где я возьму эти макросы на другом компе |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
Их засовываешь в сам xls-файл.
|
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
в этом же модуле, где расположен Sub Auto_Open, можешь хранить и макрос Это сообщение отредактировал(а) likhobory - 21.6.2005, 20:25 |
|||
|
||||
| Гость_lana |
|
|||
|
Unregistered |
в какой файл? тот, что лежит в личной книге макросов или в конкретный файл, который у меня создается? и где вообще хранится модуль, в котором лежат макросы? |
|||
|
||||
| likhobory |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
а где ж ты прописывала код CommandBars.ActiveMenuBar.Controls(1)... ????????????? |
||||
|
|||||
| Гость_lana |
|
|||
|
Unregistered |
ну правильно, там я его и прописала, в редакторе visual Basic создала модуль и т.д.
а возможны еще какие то варианты написания макросов? я это спрашиваю потому, что я не совсем понимаю как я буду создавать этот модуль программно из своего приложения, написанного на java. И что означает написать макрос в шаблоне? |
|||
|
||||
| likhobory |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
Возможные варианты:
1. экспортируй код из bas-файла Допустим, есть текстовый файл "c:\1.bas" с содержимым:
тогда в коде своего приложения пропиши
2. Создавай модуля "с нуля"
только Application замени на свою объекную переменую Это сообщение отредактировал(а) likhobory - 22.6.2005, 15:29 |
||||||
|
|||||||
| Гость_lana |
|
|||
|
Unregistered |
спасибо большое за объяснения.
теперь я привязываю свои макросы к конкретному файлу. только вот при открытии данного файла постоянно срабатывает система безопасности. какие есть методы борьбы с этим? чтобы система не ругалась на мои макросы и пользователь даже не подозревал, что они есть? |
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
на время работы Excel-приложения меняй значения реестра
для officeXP [HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Security] "Level"=dword:00000001 для office2003 - .....\Office\11.0\Excel............. для office2000 - .....\Office\Excel............. |
|||
|
||||
| Гость_lana |
|
|||
|
Unregistered |
по ходу у меня возникли еще вопросы
мои макросы должны срабатывать только один раз, когда создается иксел файл. если это файл сохранить под другим названием, то макросы остаются, а этого мне как раз не надо. Как можно убить эти макросы при закрытии начального файла? И если их убить, то пункт меню, для которого писался макрос, не будет работать. Как вернуть этому пункту меню его начальное действие? |
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
недопонял, зачем присваивать кнопке макрос, который никогда не будет использоваться ??
если надо изменить некие параметы создаваемого EXCEL-файла (в т.ч. и св-ва пунктов меню), то делай это сразу из родительского приложения |
|||
|
||||
| Гость_lana |
|
|||
|
Unregistered |
не, макрос работает один раз, когда у меня создается иксел файл.
после того как я его сохраняю под другим именем, то в нем уже не должно быть никаких макросов. вот я вроде нашла способ, чтобы при закрытии макросы исчезали Sub Aut0_Close() With ActiveWorkbook.VBProject.VBComponents .Remove .Item(5) End With Sub end Как будто здесь удаляется модуль и макросы исчезают. Но вместе с тем в новом документе при использовании пункта меню(где раньше работал макрос) появляется предупреждение что такового макроса нет ( |
|||
|
||||
| Guest |
|
||||||
|
Unregistered |
хм, покажи код "одноразового" макроса и зачем его присваивать пункту меню ?? |
||||||
|
|||||||
| Гость_lana |
|
|||
|
Unregistered |
это я делаю для меню "сохранить как". каким - то чудом при создании иксел файла в данном пункте по умолчанию типом файла является "веб архив", а мне нужно - "книга excel". вот с этой целью и было написано два макроса: Sub SaveAs() Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogSaveAs) With fd If .Show = -1 Then .Execute Else End If End With Set fd = Nothing End Sub Sub Auto_Open() CommandBars.ActiveMenuBar.Controls(1).CommandBar.Controls(5).OnAction = "SaveAs" End Sub. И пусть бы работал этот макрос и дальше, но постоянно влезает предупреждение системы безопасности. Вот я и пытаюсь с этим как-то бороться. Пусть бы она хоть один раз предупреждала, но этот файл будет сохранен еще в n-ом количестве вариантов, и каждый раз при их открытии будет появляться это предупреждение. Вот почему я решила чтобы макрос работал только в первый раз. Но это решение конечно кривое. Но другое мне в голову не приходит |
|||
|
||||
| likhobory |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
а не проще открыть EXCEL и поменять формат по умолчанию:сервис-параметры-переход-сохранять как.... или программно - при создании/сохранении файла
|
||||
|
|||||
| Гость_lana |
|
|||
|
Unregistered |
это было бы значительно удобнее
а этот код тоже написать в макрос auto_open или можно как нить без макросов обойтись? я сейчас написала такой единственный макрос, но в менюшке все равно отображается вебархив |
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
вариантов - туча, смотри по ситуации, можно так:
|
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 13 Всего: 27 |
Вот например есть несколько открытых книг. Одна из них отчет. В отчете выбираешь из списка и попадаешь в нужную книгу-нужный лист.Там вносишь изменения,получаешь результат и его надо кинуть в отчет.Что на каждом листе кнопку рисовать? Вот и нужна одна на панели инстументов. У меня тоже такая ситуация возникла. Sub написала, кнопка на панели работает. И вот встал вопрос как сделать ,что бы кнопка при открытии документов загружалась,а при закрытии -тю-тю.Тогда и на другом компе будет грузиться. -------------------- Возмездие настигнет |
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
трудно не согласиться, но я все же имел в виду данный конкретный случай
|
|||
|
||||
| krb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 25.5.2008 Репутация: -1 Всего: -3 |
У меня вопрос!!!
Есть Excel таблица с данными(информация о клиенте, даты, суммы и пр.). Нужно вытащить эти данные и поместить их Word документы. Расположение этих данных в Worde различаются. Как это сделать??? --------------------
|
|||
|
||||
| kuler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 14.5.2010 Репутация: нет Всего: нет |
Помогите пожалуйста решить задачи.
Нужно составить макросы в Экселе. 1 Перераспределить значения переменных x и y так, чтобы в x оказалось большее из этих значений, а в y — меньшее 2 Пусть элементами равностороннего треугольника являются: 1) сторона a; 2) площадь S; 3) высота h; 4) радиус вписанной окружности r; 5) радиус описанной окружности R. Составить программу, которая по заданному номеру и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника. Буду очень благодарна, если сможете решить! |
|||
|
||||
| Dmitry0212 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 19.5.2014 Репутация: нет Всего: нет |
Здраствуйте. Помогите поправить задание в контрольной работе по информатике.
Создан макрос, который считает количество телефонов по введенной марке телефона. Sub zada4a2() Sheets("База_данных").Select Range("A10").Select Selection.Copy Sheets("Задача2").Select Range("J4").Select ActiveSheet.Paste Selection.Copy Sheets("Задача2").Select Range("J3").Select ActiveSheet.Paste Application.CutCopyMode = False фирма = InputBox("Введите название фирмы:") Range("J4").FormulaR1C1 = фирма Range("D7").Value = "Kоличество телефонов фирмы " & фирма End Sub Преподаватель хочет, чтобы название фирмы вводить не вручную, а выбирать из списка уже имеющихся в базе данных. Не могу сделать такого. |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |