Как посмотреть код надстройки excel

Есть excell файл (.xlsm) в котором срабатывает программа: генерация случайных чисел в определенных ячейках при сохранении документа. Возникла необходимость внести изменения в программу. Но не могу никак вывести код. Вкладка Разработчик есть, параметр «Включить все макросы (не рекомендуется, возможен запуск опасной программы)» выбран. Но в окне макросов пусто. И при Alt F11 тоже пустое окно открывается. Подскажите, пожалуйста, как открыть код?
Знания экселя на самом примитивном уровне.


  • Вопрос задан

    более трёх лет назад

  • 5509 просмотров

117 / 74 / 6

Регистрация: 23.01.2012

Сообщений: 186

1

02.05.2012, 10:51. Показов 5554. Ответов 7


Студворк — интернет-сервис помощи студентам

Добрый день. Никогда не программировал VBA, но тут обстоятельства сложились, что пришлось. Поэтому не судите строго за вопрос.
Собственно сам вопрос:
Есть надстройка над Excel которая содержит доработку стандартного интерфейса Excel и некоторое количество функций пользователя. Как их вызывать из надстройки в любой ячейке листа Excel, как если бы я написал их на VBA.
Как мне их увидеть в Функциях пользователя????



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

02.05.2012, 10:51

7

5590 / 1580 / 406

Регистрация: 23.12.2010

Сообщений: 2,366

Записей в блоге: 1

02.05.2012, 15:55

2

Если Офис 2007, то:
Параметры Excel Надстройки внизу рядом с текстом «Управление», выбрать в списке «Надстройки Excel» нажать кнопку «Перейти» в Новом окне под именем «Надстройки» поставить галочку напротив нужной.
В более старых Офисах, действия аналогичные, только порядок меню другой.
После этого функции из надстройки становятся видны.



1



117 / 74 / 6

Регистрация: 23.01.2012

Сообщений: 186

02.05.2012, 16:54

 [ТС]

3

Надстройке есть класс содержащий функции пользователя, надстройку подключаю как вы написали, но функций не вижу, то есть Excel не видит функции VSTO.

Надстройку пишу в Visual 2010.



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

02.05.2012, 17:44

4

Класс — это классно , но ведь кто-то должен создать экземпляр этого класса, чтобы использовать функции. Значит, должна быть функция в обычном модуле, которая будет вызываться с листа, создавать экземпляр класса и вызывать функцию из него. Тогда вопрос — почему класс, а не обычный модуль? Его можно создать в Visual 2010 (я никогда с этим не работал)?



0



5590 / 1580 / 406

Регистрация: 23.12.2010

Сообщений: 2,366

Записей в блоге: 1

02.05.2012, 17:51

5

Я отвечал про стандартные надстройки Excel , файлы с расширениями .xla , xlax , написанные на VBA.
VBA может не понимать львиную часть синтаксиса VB.Net (Visual Studio 2010).
Если это не стандартная надстройка — наверное она криво приклеена к Excel.



0



117 / 74 / 6

Регистрация: 23.01.2012

Сообщений: 186

02.05.2012, 17:52

 [ТС]

6

Был бы признателен за пример кода регистрации класса в модуле. Обычный модуль не пробовал однако. Замучился с классом.



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

02.05.2012, 18:50

7

Пробуйте — но это все на VBA



2



117 / 74 / 6

Регистрация: 23.01.2012

Сообщений: 186

03.05.2012, 09:51

 [ТС]

8

Спасибо за пример. Насколько я понимаю надстройку VSTO надо регистрировать в каждом файле Excel где я собираюсь ее использовать. Но это не удобно. Я распространяю надстройку различным пользователям к примеру. Пользователь ее открывает и получается может воспользоваться только улучшениями которые я добавил в штатный екселевский ribbon? Что бы воспользоваться моими функциями ему придется в VBA инициализировать мой класс. Бред какой то. Тогда мне проще функции передавать пользователю в виде xlsm файла с макросами а ленту как Com надстройку. Зачем тогда VSTO? Только для украшательств.



0




Download Article

An easy-to-use guide to find and manage macros in your Excel workbook


Download Article

This wikiHow teaches you how to see a list of macros in your Excel workbook, as well as how to view each macro’s details in the Visual Basic Editor. Before you can work with macros, you’ll need to enable the Developer tab in Excel—fortunately, this is super easy to do.

Steps

  1. Image titled View Macros in Excel Step 1

    1

    Open a workbook in Excel. You can double-click the name of the workbook to open it in Excel. Alternatively, open Excel first from the Windows Start menu or your Mac’s Applications folder, click Open, and then double-click the file.

  2. Image titled View Macros in Excel Step 2

    2

    Enable the Developer tab. If the Developer tab is enabled, it’ll be in the menu bar at the top of Excel. If you don’t see it, here’s how to enable it:

    • Windows:

      • Click the File menu and select Options.
      • Click Customize Ribbon.
      • Select Main Tabs from the «Customize the ribbon» drop-down menu.[1]
      • Check the box next to Developer and click OK.
    • macOS:

      • Click the Excel menu and select Preferences.[2]
      • Select Main Tabs under «Customize the Ribbon.»
      • Check the box next to Developer.
      • Click Save.

    Advertisement

  3. Image titled View Macros in Excel Step 3

    3

    Click the Developer tab. It’s at the top of Excel.

  4. Image titled View Macros in Excel Step 4

    4

    Click Macros. It’s on the left side of the toolbar. This displays a list of macros in all open workbooks by default.

    • To see macros in a particular workbook only, select that workbook’s name from the «Macros in» menu.
  5. Image titled View Macros in Excel Step 5

    5

    Select a macro and click Edit. This displays the macro in the Visual Basic Editor.

  6. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

1. Open a workbook.
2. Click the Developer tab.
3. Click Macros.
4. Select a Macro.
5. Click Edit.

Did this summary help you?

Thanks to all authors for creating a page that has been read 41,480 times.

Is this article up to date?

В Excel нет встроенной команды для отображения всех настроек содержимого / формулы / форматирования ячейки.

Это сложная тема, и есть несколько способов предоставить информацию о ячейке или листе или рабочей книге.

Формулы. В Excel 2013 и более поздних версиях существует функция FormulaText(), которую можно использовать для отображения формулы, используемой конкретной ячейкой.

Ctrl-`(это клавиша слева от клавиши 1 на клавиатуре США) — это переключит отображение листа в режим просмотра формул, поэтому вместо РЕЗУЛЬТАТА формул вы увидите фактические формулы внутри ячеек.

Доступен ряд инструментов аудита электронных таблиц. Некоторые из них являются коммерческими, некоторые бесплатными.

Excel MVP Дэйв Бретт является автором Mappit, который является бесплатным

Excel 2013 и выше имеет встроенную надстройку «Запрос», которую необходимо активировать с помощью надстроек Com Options Excel, прежде чем она сможет работать, и она предоставит больше информации о вашей электронной таблице, чем вы когда-либо захотите узнать. Если вы хотите знать «все возможные варианты для Microsoft Excel», то это ваша отправная точка.

 

john22255

Пользователь

Сообщений: 225
Регистрация: 31.10.2013

#1

02.08.2017 13:09:56

Доброго дня!
Вот есть на форуме старая тема:

http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=2578

И в этой теме приложен файл уважаемым

Юрий М

.
Вот ссылка на этот файл:

http://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=9188&action=download

Подскажите пожалуйста, как посмотреть код этих штуковин.
Потому что я включаю «режим конструктора», выделяю кнопку на экране, жму «просмотр кода» и вижу только:

Код
Sub Form()
   UserForm1.Show
End Sub

Как то не густо…. Я наверно что то не так делаю. Подскажите как увидеть весь код целиком.
Спасибо.

 

Logistic

Пользователь

Сообщений: 741
Регистрация: 03.01.2013

Смотрите свойство комбобокса

 

kuklp

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Для кнопки это и есть весь код. Код самой формы находится в модуле формы, там его и смотрите.

Что такое модуль? Какие бывают модули?

Я сам — дурнее всякого примера! …

 

john22255

Пользователь

Сообщений: 225
Регистрация: 31.10.2013

#4

02.08.2017 13:21:24

Цитата
Logistic написал:
Смотрите свойство комбобокса

А как его посмотреть, если после нажатия на кнопку появляется UserForm1 (наверно это и есть комбобокс), и больше ничего нельзя сделать? Т.е. свойства не посмотреть уже. Нельзя ничего нажать или включить контекстное меню, т.к. форма ждет ввода данных.

Вот все что можно увидеть через редактор vba:

Код
Private Sub ComboBox1_Change()

End Sub

Private Sub CommandButton1_Click()
   Range("D1") = ComboBox1.Value
   Unload UserForm1
End Sub

Private Sub UserForm_Click()

End Sub

Изменено: john2225502.08.2017 13:23:41

 

Logistic

Пользователь

Сообщений: 741
Регистрация: 03.01.2013

 

john22255

Пользователь

Сообщений: 225
Регистрация: 31.10.2013

#6

02.08.2017 13:42:52

Цитата
Logistic написал:
Протестируйте так

У вас так же малоинформативный код:

Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
 

Logistic

Пользователь

Сообщений: 741
Регистрация: 03.01.2013

А какую Вам надо информацию? :(  

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#8

02.08.2017 13:45:26

Смотрите

Код
Private Sub CommandButton1_Click()
   Range("D1") = ComboBox1.Value
   Unload UserForm1
End Sub

Согласие есть продукт при полном непротивлении сторон.

 

john22255

Пользователь

Сообщений: 225
Регистрация: 31.10.2013

#9

02.08.2017 13:48:50

Цитата
Logistic написал:
А какую Вам надо информацию?

Я бы хотел приспособить этот способ (диалоговое окно с выпадающим списком) для собственных нужд. И хотел бы понять как мне это сделать. Но понять не могу. Например непонятно где поменять диапазон списка. Ведь в искомом файле он B2:B11, а мне нужен другой диапазон.

Изменено: john2225502.08.2017 13:51:19

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#10

02.08.2017 13:50:35

Цитата
все что можно увидеть через редактор vba

Alt + F11
Forms —> UserForm1 кликните мышкой и выбирайте нужные вам элементы

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#11

02.08.2017 13:54:31

Цитата
john22255 написал:
Нельзя ничего нажать или включить контекстное меню

а Вы отожмите кнопку режима конструктора, ознакомьтесь с азами работы в VBA(где модули, как попасть) и все у Вас получится. Вам надо всего-то нажать Alt+F11, Ctrl+R(для отображения окна проектов) — найти там свой файл, раскрыть и поискать там везде эту самую UserForm. Вот в ней весь код и найдете.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

john22255

Пользователь

Сообщений: 225
Регистрация: 31.10.2013

Спасибо,всем откликнувшимся! Я кажется нашел в частности где поменять диапазон списка:

 

Logistic

Пользователь

Сообщений: 741
Регистрация: 03.01.2013

Я ведь Вам писал ,смотрите свойства комбобокса :)  

 

john22255

Пользователь

Сообщений: 225
Регистрация: 31.10.2013

#14

02.08.2017 14:13:18

Цитата
Logistic написал:
Я ведь Вам писал

Извините, но до меня сразу не дошло, что вы имеете ввиду

 

kuklp

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

#15

02.08.2017 14:19:40

Цитата
john22255 написал:
где поменять диапазон списка

Вот это и надо было спросить в топике, а не ходить вокруг, да около. Конспиратор.. 15 пост в теме!

Цитата
The_Prist написал:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

Я сам — дурнее всякого примера! …

Понравилась статья? Поделить с друзьями:
  • Как посмотреть код макроса excel
  • Как посмотреть код макрос в excel
  • Как посмотреть код excel файла
  • Как посмотреть когда создан файл word
  • Как посмотреть все скрытые строки в excel