Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обращение к Word из VB 
V
    Опции темы
kminas
Дата 9.2.2006, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Я написал макросы в Worde. Создал форму в VB. Вставил туда один макрос. Но Basic не понимает объект Selection.
Как сделать, чтобы:
1. Basic понимал объект Selection и др. объекты VBA?
2. В VBA обратиться к процедурам из модуля в текущем проекте?
PM MAIL   Вверх
Akina
Дата 9.2.2006, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



1) Как выполнено обращение к Ворду из Бэйсика? код пожалуйста.
2) По имени smile только процедура должна быть описана как Public.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kminas
Дата 9.2.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Как именно выполнено обращение еще не могу конкретизировать, только недавно начал изучать, приведу код формы frmSpec1, который открывает файл Ворда с таблицей, которую надо заполнять Вордовскими макросами.

Код

Dim oapp As Object

Private Sub cmdSave_Click()
On Error GoTo errr
Set oapp = CreateObject("Word.Application")
oapp.Visible = True
oapp.ChangeFileOpenDirectory "c:\WINDOWS\Application Data\Microsoft\Templates\"
oapp.Documents.Open FileName:="Спецификация.doc"
oapp.ActiveDocument.SaveAs FileName:="\Мои документы\Спецификации\Задай ИМЯ файла", _
                           FileFormat:=wdFormatDocument, _
                           LockComments:=False, _
                           Password:="", _
                           AddToRecentFiles:=True, _
                           WritePassword:="", _
                           ReadOnlyRecommended:=False, _
                           EmbedTrueTypeFonts:=False, _
                           SaveNativePictureFormat:=False, _
                           SaveFormsData:=False, _
                           SaveAsAOCELetter:= False
oapp.Selection.MoveDown Unit:=wdLine, Count:=3
Dialogs(wdDialogFileSaveAs).Show
Dim ent As String
ient$ = InputBox(Prompt:="Уверенно мышкой иконку нажав," & Chr(10) & _
                         " Вы тотчас попали в программу" & Chr(13) & _
                         "                    ЗаСПав." & Chr(13) & _
                         "А теперь представьтесь ВЫ", _
                 Title:="Сообщение от ЗаСПав:", 
                 Default:="Константин")
If ient$ = "Алла" Then
      MsgBox ("Аллочка, солнышко, будь любезна, " & Chr(10) & _
              "поставь, ПОЖАЛУЙСТА, курсор " & Chr(10) & _
              "в левую нижнюю ячейку. Спасибо!"), _
              Title:="Сообщение от ЗаСПав:", _
              Buttons:=vbInformation
ElseIf ient$ = "Александра" Then
      MsgBox ("Уважаемая Александра Павловна, ИЗВИНИ," & Chr(10) & _
              "но у руководителя группы много более серьезной работы," & Chr(10) & _
              "чем заполнение спецификаций " & Chr(10) & _
              "Попроси девушек ее заполнить. Спасибо!"), _
              Title:="Сообщение от ЗаСПав:", _
              Buttons:=vbExclamation
ActiveWindow.Close
Else
      MsgBox ("  ПРЕКРАСНАЯ НЕЗНАКОМКА, " & ient$ & _
              ", ИЗВИНИТЕ," & Chr(10) & _
              "   произошла какая-то ошибка." & Chr(10) & _
              "     ВЫ :" & Chr(10) & _
              "1. Не работаете в нашем отделе." & Chr(10) & _
              "2. Раньше не заполняли спецификации." & Chr(10) & _
              "3. Ваш интеллектуальный потенциал востребован" & Chr(10) & _
              "   на более квалифицированных работах." & Chr(10) & _
              "4. Вы помните не все буквы Вашего имени"), _
              Title:="Сообщение от ЗаСПав:"
      ActiveWindow.Close
End If
frmSpec1.Hide
frmTransp.Show
Exit Sub

   
errr:
n = Err.Number
If n = 4248 Then
MsgBox "Вы ошиблись мадмуазель" & Chr(13) & _
       "поставьте ПОЖАЛУЙСТА, курсор" & Chr(13) & _
       "       в левую   НИЖНЮЮ" & Chr(13) & _
       "          ячейку таблицы!" & MyVar, _
       Title:="Информирует ЗаСПав:", _
       Buttons:=vbExclamation
Resume Next
End If
If n = 4348 Then
MsgBox ("Вы ошиблись мадмуазель")
End If
MsgBox (Err.Description)

End Sub


Это сообщение отредактировал(а) Akina - 9.2.2006, 12:43
PM MAIL   Вверх
Akina
Дата 9.2.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(kminas @ 9.2.2006, 11:55 Найти цитируемый пост)

приведу код формы frmSpec1

он никому не нужен. где НЕработающий код с Selection???

А вообще - топай в поиск и ищи Selection в форумах "MS Office", "VB" и прочих похожих. Там его есть.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kminas
Дата 9.2.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Private Sub CmdInsert1_Click()
'Sub НорияГ175()
On Error GoTo errr
' НорияГ175 Макрос

Selection.MoveRight Unit = wdCell
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Selection.TypeText Text:= _
"Нория производительностью 175 т/час, с электродвигателем "
Selection.MoveRight Unit = wdCharacter, Count:=1
Selection.TypeText Text:="У8-УН-175 по графической "
Selection.MoveRight Unit = wdCharacter, Count:=1
Selection.TypeText Text:="---"
Selection.MoveRight Unit = wdCharacter, Count:=1
и т.д.
PM MAIL   Вверх
Akina
Дата 9.2.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



А чей это, по твоему мнению, Selection? а? по коду - это так переменная какая-то обозвана, необъявленная кстати. Вот кабы ты что-то типа oapp.Selection.тра-тата...

и используй тег "код"!!!


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kminas
Дата 9.2.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



и oapp.Selection.тра-тата... было

Извини, а что такое тег "код"!!! не знаю "молодой" исчо.


Это сообщение отредактировал(а) kminas - 9.2.2006, 14:47
PM MAIL   Вверх
cardinal
Дата 9.2.2006, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99




M
cardinal
Над формой ответа есть кнопка "код"!



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
СВА
Дата 13.2.2006, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 9.1.2006

Репутация: нет
Всего: нет



kminas
твой код не совсем коректен
vb не знает такую константу как wdLine, тебе предется ее объявлять заново
Код

Const wdLine = 5

дальше код не проверял, но
Код

oapp.Selection.MoveDown Unit:=5, Count:=3

работает
PM MAIL   Вверх
kminas
Дата 13.2.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



А у меня получилось. Вот так, как говорил, Akina
Код

oapp.Selection.MoveDown Unit:=wdLine, Count:=3

Просто вначале у меня почему то не шло. Я еще "молодой" программист и взял, да и исправил name формы после того, как начинил ее элементами, а это, видно, не желательно. Теперь я создал новую форму и имя ее боюсь менять, хотя и забыл вначале и все работает.
PM MAIL   Вверх
СВА
Дата 14.2.2006, 05:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 9.1.2006

Репутация: нет
Всего: нет



В принципе имя формы не играет никакой роли просто если имя формы совпадает с какой либо переменной появляются ошибки.
И еще когда перетаскиваешь с макросов в VB желательно все таки все константы объявить заново.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1004 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.