в чем разница между VB и VBA?

#vba #excel

#vba #excel

Вопрос:

Я работаю над этим проектом (надстройкой) для Excel 2007. Для этой цели используются ячейки aspose, а также C #. Я не писал код, а перенял проект у кого-то другого. Итак, я все еще изучаю часть Excel, поскольку знаю только C #. Я заметил, что есть некоторый код для создания рабочей книги / worksheet. Как мне узнать, написано ли это на VB или VBA, чтобы я мог его изучить?Расширения файлов похожи на .cls, .frm, .bas и т.д. Я использую Visual Studio 2010.

Также рабочая книга / листы защищены паролем после создания.Когда я пытался изменить пароль с помощью кода VB / VBA (каким бы он ни был), во время сборки возникают ошибки, такие как ожидаемый идентификатор, ожидаемое объявление и т.д.Но когда я отменил изменения, все ошибки исчезли. Единственное изменение, которое я внес, — это изменение строки, в которой хранился пароль. (строка «пароль» была изменена на «password1») и внезапно другие строки кода начали выдавать ошибки.Ошибки — ожидаемый идентификатор, ожидаемое объявление и т.д. И это не имеет смысла для меня. Итак, мне пришлось сменить пароль через C # после того, как он был защищен паролем через VB / VBA. Кроме того, как мне отладить код VB / VBA. Я пытался установить точки останова через VS2010, но при запуске проекта они не достигают их.Я уверен, что рабочие листы создаются с использованием VB / VBA, и поэтому они попадают в эти коды, но не могут отлаживаться.

Я открываю надстройку с помощью Visual Studio2010, и вот как работать с кодом, как на C #, так и на VB / VBA. Я ничего не изменяю с помощью Alt F11.

Комментарии:

1. Я заметил, что вы никогда не принимали ответ. Для этого нажмите на стрелку в верхнем левом углу ответа, который, по вашему мнению, является лучшим. Это даст признание пользователю, который это написал, и поможет другим найти наилучший ответ при ссылке. ваш вопрос.

2. Этот вопрос близок к тому, чтобы быть одним из тех открытых вопросов, которые закрываются.

Ответ №1:

.cls, .frm и .bas являются файлами VBA. Я предлагаю вам попробовать отладить код в Excel с помощью VBE (эквивалент Visual Studio для VBA). Отлаживать в этой среде довольно легко.

Разница между VB (VB.Net ) и VBA довольно большой. При этом VBA — довольно простой язык, поэтому, если вам удалось освоить C #, я уверен, вы сможете изучить VBA, немного почитав и поэкспериментировав.

Если у вас есть вопрос о самом коде, я предлагаю вам опубликовать его как отдельный вопрос. 🙂

Комментарии:

1. Чтобы было понятно, разница между VB. Net и VBA довольно большие. Разница между VB6 и VBA очень мала. К сожалению, Microsoft играет быстро и вольно с использованием термина «Visual Basic», излишне запутывая вещи. Я полагаю, что «Visual Basic» официально относится к VB.Net итак, ваше утверждение о том, что VB и VBA сильно отличаются, верно.

2. Извините — да, я имел в виду VB.Net . 🙂

3. Это неправда! — .cls, .frm и .bas также являются файлами VB.

4. Просто чтобы уточнить, есть разница между VB и VB.NET

5. да, именно поэтому я поставил (VB.NET ) в круглых скобках, чтобы было понятно, о чем я говорил, но без использования другого слова, отличного от используемого OP. Спасибо за дальнейшие разъяснения.

Ответ №2:

Как вы добираетесь до кода? Если через Excel с помощью VBE, например, нажав Alt F11, то это VBA. Если вы открываете проект, то, вероятно, это VB (VB6). Обратите внимание, что VB.NET используйте расширение .vb. Более того, поскольку VBA является подмножеством VB, то при экспорте VBA из проекта VBE экспортируемые файлы по умолчанию имеют расширения их двоюродного брата VB.

Нам действительно нужно знать, как вы добираетесь до кода.

Как я уже сказал, VBA (6.x) является подмножеством VB6. Часть Excel — это просто объектная модель, использующая VBA. VB.NET отличается и не соответствует действительности, потому что расширения файлов неверны.

Поэтому сосредоточьтесь на изучении объектной модели VBA и Excel 2007

Поиск VBA в MSDN осуществляется по http://social.msdn.microsoft.com/Search/en-US ?запрос = VBA amp; ac =8.

Создание макросов VBA для работы с листами в Excel 2007 в http://msdn.microsoft.com/en-us/library/dd553655 (v=office.12).aspx.

Эта статья о совместимости VBA с инструментами Visual Studio для системы Office (3.0) на http://msdn.microsoft.com/en-us/library/bb931201 (v = office.12).aspx должен помочь.

Комментарии:

1. Я открываю надстройку с помощью Visual Studio2010, и вот как работать с кодом, как на C #, так и на VB / VBA.

2. Вы не можете открыть код VB / VBA через Visual Studio 2010, если проект выполнен на C #. Вы открываете книгу Excel через VS, а затем переходите к коду?

3. Кроме того, как я уже сказал, VBA (6.x) является подмножеством VB6. Часть Excel — это просто объектная модель, использующая VBA. VB.NET отличается и не соответствует действительности, потому что расширения файлов неверны.

4. это проект на C #. Я открываю его в VS2010, и когда я запускаю его, он открывает электронную таблицу в качестве выходных данных. По сути, проект просто создает дополнительный плагин для Excel 2007. Я открываю проект в VS2010. Он содержит много папок, и в одной из них содержится код VB / VBA. Большая часть кода — C #. VB / VBA используется только для создания рабочей книги / worksheets.