powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Из Ворда запустить *.exe скомпилированный в ВБ6
98 сообщений из 98, показаны все 4 страниц
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37802868
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, если в Ворде нажму кнопку, а там будет сказано в обработчике нажатия кнопки - Шелл.... и какой именно экзешник скомпилированный в ВБ6 - так можно сделать?думаю, что можно и начал писать в ВБ6:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
 Dim ObjectWord As Object
    Set ObjectWord = GetObject(, " Word.Application")
 
    'отключаем дёргание экрана при выполнении кода
    ObjectWord.Application.ScreenUpdating = False
 
    '************************
    Dim isTable As ObjectWord.Range
    Set isTable = Selection.Range



Выёживается, выделяет isTable As ObjectWord.Range что не так?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37802902
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

Потому что нет такого типа/класса ObjectWord, а есть Word.Application
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37802908
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

И такого свойства Range там вообще нет

:0)
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803201
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConnкатастрофа,

Потому что нет такого типа/класса ObjectWord, а есть Word.ApplicationА должно быть Range.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803209
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyVladConnкатастрофа,

Потому что нет такого типа/класса ObjectWord, а есть Word.ApplicationА должно быть Range.Нету у ворда ( объект ) ни свойства, ни метода Range. Есть класс Range в библиотеке Word.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803229
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у документа, начать надо с подключения к документу, открытию или созданию нового
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803473
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас в Ворде есть поле, оно должно быть размещено в таблице, щёлкая по нему, запускается макрос на ВБА:
Код: vbnet
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.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
'защищает от некоторых, трудно уловимых ошибок
'Option - Вариант
'Explicit - Явный
Option Explicit
 
Sub Main()
 
'отключаем дёргание экрана при выполнении кода
Application.ScreenUpdating = False
 
'*********************************************************
'функция (выясняем место нахождения курсора в таблице)
Dim isTable As Word.Range
Set isTable = Selection.Range
 
'условие, если выделено более одной таблицы, тогда ...
If Selection.Tables.Count > 1 Then
MsgBox$ _
                "Программа не может быть продолжена, выделено более одной таблицы", vbOKOnly, _
                "Внимание"
GoTo Конец
'условие, если выделеное находится не в таблице, тогда ...
ElseIf Not isTable.Information(wdWithInTable) Then
MsgBox$ _
                "Программа не может быть продолжена, курсор должен находится в таблице", vbOKOnly, _
                "Внимание"
GoTo Конец
End If
 
'номер таблицы в документе, где расположен курсор
Dim NumberCursorTable As Long
'номер таблицы в документе, где расположен курсор
NumberCursorTable = ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count
 
'номер строки в таблице, в документе, где расположен курсор
Dim NumberCursorRow As Long
'номер строки в таблице, в документе, где расположен курсор, даже если таблица имеет объединённые ячейки
NumberCursorRow = Selection.Information(wdEndOfRangeRowNumber)
 
'номер столбца, а также ячейки в таблице, в документе, где расположен курсор, даже если ширина столбца, ячейки различается
Dim NumberCursorCell As Long
'номер столбца, то есть ячейки в строке таблицы, в документе где расположен курсор, даже если таблица имеет объединённые ячейки
NumberCursorCell = Selection.Information(wdEndOfRangeColumnNumber)
 
'*********
'2 вариант
 
'номер строки в таблице, в документе, где расположен курсор, даже если таблица имеет объединённые  ячейки
'IntegerCursorRow = Selection.Cells(1).RowIndex
 
'номер столбца, а также ячейки в таблице, в документе, где расположен курсор, даже если ширина столбца, ячейки различается
'IntegerCursorCell = Selection.Cells(1).ColumnIndex
'*********
 
'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
Set isTable = Nothing
'конец функции (выясняем место нахождения курсора в таблице)
'*********************************************************
    
Selection.Delete Unit:=wdCharacter, Count:=1
 
Dim Строка_таблицы_Word As String
 
'************************************************************************
'функция (считывание со строки, ячейки таблицы)
'Range со строки или ячейки таблицы Word
'абзац заменяем на пробел
'заменяем два, три, четыре и более пробелов подряд на один пробел
'удаляем концевую сноску таблицы Word
'заменяем пробел, следом идущую запятую на запятую, то есть, удаляем пробел перед запятой
'заменяем двоеточие, следом идущее двоеточие на двоеточие, то есть удаляем пробел перед двоеточием
 
'здесь при помощи Trim$ откидываем лишние пробелы в начале и в конце строки или ячейки таблицы Word
Строка_таблицы_Word = Trim$(ActiveDocument.Tables(NumberCursorTable).Rows(NumberCursorRow).Cells(NumberCursorCell).Range)
'Debug.Print Строка_таблицы_Word
 
Dim reg As Object
Set reg = CreateObject("vbscript.regexp")
'искать по всему тексту, по умолчанию False - будет найдено только первое совпадение
reg.Global = True
'Chr$(13) это абзац, заменяем его на пробел
reg.Pattern = Chr$(13)
Строка_таблицы_Word = reg.Replace$(Строка_таблицы_Word, " ")
'Debug.Print Строка_таблицы_Word
'+ означает, что заменяем два, три, четыре и более пробелов подряд на один пробел
reg.Pattern = " +"
Строка_таблицы_Word = reg.Replace$(Строка_таблицы_Word, " ")
'Debug.Print Строка_таблицы_Word
'Chr$(7) это концевая сноска таблицы Word
reg.Pattern = Chr$(7)
Строка_таблицы_Word = reg.Replace$(Строка_таблицы_Word, "")
'Debug.Print Строка_таблицы_Word
'заменяем пробел, следом идущую запятую на запятую, то есть удаляем пробел перед запятой
reg.Pattern = " ,"
Строка_таблицы_Word = reg.Replace$(Строка_таблицы_Word, ",")
'Debug.Print Строка_таблицы_Word
'заменяем пробел, следом идущее двоеточие на двоеточие, то есть удаляем пробел перед двоеточием
reg.Pattern = " :"
Строка_таблицы_Word = reg.Replace$(Строка_таблицы_Word, ":")
'Debug.Print Строка_таблицы_Word
Строка_таблицы_Word = Trim$(Строка_таблицы_Word)
'Debug.Print Строка_таблицы_Word
 
'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
Set reg = Nothing
'конец функции (считывание со строки, ячейки таблицы)
'************************************************************************
 
With ActiveDocument.Tables(NumberCursorTable)
 
'добавить одну строчку в таблице ниже строки где находится курсор
Selection.InsertRowsBelow 1
 
If .Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Fields.Count = 1 And _
.Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Fields(1).Type = 70 Then
.Rows(NumberCursorRow + 1).Cells(NumberCursorCell).Range.Text = "Место регистрации: " & .Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Fields(1).Result
Else
.Rows(NumberCursorRow + 1).Cells(NumberCursorCell).Range.Text = "Место регистрации: "
End If
 
.Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Text = Строка_таблицы_Word
 
'переместить курсор в конец строки
Selection.EndKey Unit:=wdLine
End With
 
Beep
 
Конец:
 
'отменяем отключенное ранее дёргание экрана при выполнении кода
Application.ScreenUpdating = True
 
End Sub



нужно этот функционал вставить в ВБ6, скомпилировать, а в Воде просто указать Shell (полный путь к екзешнику), так каков будет код в ВБ6 перед компиляцией?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803499
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Навскидку - ты тут работаешь только с объектом Selection, то есть тебе надо подключиться к Word.Application, взять у него Selection в переменную а остальное все так же.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803516
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаAntonariyпропущено...
А должно быть Range.Нету у ворда ( объект ) ни свойства, ни метода Range. Есть класс Range в библиотеке Word.Я это и имел ввиду.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803542
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНавскидку - ты тут работаешь только с объектом Selection, то есть тебе надо подключиться к Word.Application, взять у него Selection в переменную а остальное все так же.
неподъемно
жалко день победы прошёл, до Нового года далеко, к какому празднику просить, по хоккею чемпионы, ну тогда к чемпионату Европы по футболу. Поправьте пжл в коде, чтобы не запускать долгоиграющую пластинку
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37803576
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофанеподъемноЧто именно непонятно. Весь нужный код у тебя уже есть в этом топике. Еще у тебя есть "тетрадка", в которой уже мегабайты примеров работы. Но если ты не можешь уже за третий год понять, что такое объект, их метод и свойство, то ни к новому году, ни к победе нашей сборной по футболу на ЧМ, мозгов тебе добавить никто не сможет, даже доктор Майоров. Принеси уже пользу людям там, где ты сможешь.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804637
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
>надо подключиться к Word.Application
вроде так?
Код: vbnet
1.
2.
Dim ObjectWord As Object
Set ObjectWord = GetObject(, " Word.Application")


>взять у него Selection в переменную
как?
>Еще у тебя есть "тетрадка", в которой уже мегабайты примеров работы
неа, в ВБ6 я новичёк
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804648
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофанеа, в ВБ6 я новичёккакая разница, с объектами все то же самое
катастрофакак?у тебя в ObjectWord теперь находится тот же объект, что при работе с ВБА ты видишь как Application. Вот и вперед. В смысле - думай.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804669
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proу тебя в ObjectWord теперь находится тот же объект, что при работе с ВБА ты видишь как Application. Вот и вперед. В смысле - думай.
так я так делал уже давно, ещё когда не полез с вопросом на форум, но выделяет Dim isTable As Word.Range, как уладить?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804693
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофатак я так делал уже давно, ещё когда не полез с вопросом на форум, но выделяет Dim isTable As Word.Range, как уладить?Тут надо понимать, каким путем ты идешь. Либо подключаешь к проекту библиотеку Word (через References). Либо не используешь ссылки на Word и тогда все переменные объявляешь как Object.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804702
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
и каким путём идти лучше?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804716
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый удобнее для разработки - выпадают подсказки, больше ошибок можно отловить на этапе компиляции. Второй надежнее с точки зрения переноса между машинами.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804718
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, конечно выбираю второй надёжный, тогда строки кода
Код: vbnet
1.
2.
Dim ObjectWord As Object
Set ObjectWord = GetObject(, " Word.Application")


не нужны?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804725
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в этом случае как раз нужны
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804744
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, окейно, есть движение:
Код: vbnet
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.
'защищает от некоторых, трудно уловимых ошибок
'Option - Вариант
'Explicit - Явный
Option Explicit
 
Sub Main()

Dim ObjectWord As Object
Set ObjectWord = GetObject(, " Word.Application")

'отключаем дёргание экрана при выполнении кода
ObjectWord.ScreenUpdating = False
 
'*********************************************************
'функция (выясняем место нахождения курсора в таблице)
Dim isTable As Object
Set isTable = ObjectWord.Selection.Range
 
'условие, если выделено более одной таблицы, тогда ...
If ObjectWord.Selection.Tables.Count > 1 Then
MsgBox$ _
                "Программа не может быть продолжена, выделено более одной таблицы", vbOKOnly, _
                "Внимание"
GoTo Конец
'условие, если выделеное находится не в таблице, тогда ...
ElseIf Not isTable.Information(wdWithInTable) Then


теперь выделяет wdWithInTable - переменная не определена, как определить?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804752
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но в ВБА wdWithInTable с Option Explicit идёт и не спотыкается
и что же делать в ВБ6?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804831
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофаНо в ВБА wdWithInTable с Option Explicit идёт и не спотыкается
и что же делать в ВБ6?А что такое это wdWithInTable ?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804856
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофатеперь выделяет wdWithInTable - переменная не определена, как определить?надо нажать в ВБА F2 и посмотреть чему равна эта константа
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804974
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, ухты, нажал Эф2 - и понеслось, короче сделал, спасибо!!!!!!!!!!!!!
>победе нашей сборной по футболу на ЧМ
а это уже за Вами
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37804979
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, радость пока не полная, скомпилировал, запускаю с Ворда экзешник
Код: vbnet
1.
2.
3.
4.
5.
Sub Ссылка()

Shell ("J:\MACROBUTTON'ы\MACROBUTTON1.exe")

End Sub



выёживается, говорит ошибка 429 АктивХ компонент cant create object, как лечится?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805070
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если не с ворда запускать?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805151
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа если не с ворда запускать?
то же самое
2 но ведь оно заточено именно из него любимого
что делать??
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805218
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если из среды запускать?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805323
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
на этой строке
Код: vbnet
1.
Set ObjectWord = GetObject(, " Word.Application")


ошибка 429 - Компонент АктивХ не может создать объект
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805597
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофаShocker.Pro,
на этой строке
Код: vbnet
1.
Set ObjectWord = GetObject(, " Word.Application")


ошибка 429 - Компонент АктивХ не может создать объектЭндрю, а давайте Вас забаним.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805601
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эндрю, а ты в названии объекта ничего странного не видишь?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805602
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаЭндрю, а давайте Вас забаним.Дюк уже забанил - вишь, не помогает
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37805932
vasatka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа, не слушай их, они плохие дяди. Убери пробел перед Word. И будь повнимательней.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806592
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasatkaкатастрофа, не слушай их, они плохие дяди. Убери пробел перед Word. И будь повнимательней.спасибо!!!!!!, попробую, не взлечу, отпишусь
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806633
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот напасть, не взлетает получаю ошибка 438 - объект doesn't support this property or method
как лечить?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806650
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой-то объект не поддерживает какое-то свойство или метод
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806654
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, хорошо, что я не успел десяток книг прочесть, чтобы в оконцовке узнать это сказанное Вами, подскажите пжл как излечить?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806656
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исправить неправильное свойство или метод на правильное
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806662
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proисправить неправильное свойство или метод на правильное
согласен, как узнать где неправильное и что является правильным, код:
Код: vbnet
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.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
'защищает от некоторых, трудно уловимых ошибок
'Option - Вариант
'Explicit - Явный
Option Explicit

'в VBA нажимаем F2, выясняем чему равно значение констант
Const wdCharacter = 1
Const wdLine = 5
'

Sub Main()

    Dim ObjectWord As Object
    Set ObjectWord = GetObject(, "Word.Application")

    'отключаем дёргание экрана при выполнении кода
    ObjectWord.ScreenUpdating = False

    '*********************************************************
    'функция (выясняем место нахождения курсора в таблице)

    'в VBA нажимаем F2, выясняем чему равно значение констант
    Const wdWithInTable = 12
    Const wdEndOfRangeRowNumber = 14
    Const wdEndOfRangeColumnNumber = 17

    Dim isTable As Object
    Set isTable = ObjectWord.Selection.Range

    'условие, если выделено более одной таблицы, тогда ...
    If ObjectWord.Selection.Tables.Count > 1 Then
        MsgBox$ _
                "Программа не может быть продолжена, выделено более одной таблицы", vbOKOnly, _
                "Внимание"
        GoTo Конец
        'условие, если выделеное находится не в таблице, тогда ...
    ElseIf Not isTable.Information(wdWithInTable) Then
        MsgBox$ _
                "Программа не может быть продолжена, курсор должен находится в таблице", vbOKOnly, _
                "Внимание"
        GoTo Конец
    End If

    'номер таблицы в документе, где расположен курсор
    Dim NumberCursorTable As Long
    'номер таблицы в документе, где расположен курсор
    NumberCursorTable = ObjectWord.Range(0, ObjectWord.Selection.Tables(1).Range.End).Tables.Count

    'номер строки в таблице, в документе, где расположен курсор
    Dim NumberCursorRow As Long
    'номер строки в таблице, в документе, где расположен курсор, даже если таблица имеет объединённые ячейки
    NumberCursorRow = ObjectWord.Selection.Information(wdEndOfRangeRowNumber)

    'номер столбца, а также ячейки в таблице, в документе, где расположен курсор, даже если ширина столбца, ячейки различается
    Dim NumberCursorCell As Long
    'номер столбца, то есть ячейки в строке таблицы, в документе где расположен курсор, даже если таблица имеет объединённые ячейки
    NumberCursorCell = ObjectWord.Selection.Information(wdEndOfRangeColumnNumber)

    '*********
    '2 вариант

    'номер строки в таблице, в документе, где расположен курсор, даже если таблица имеет объединённые  ячейки
    'IntegerCursorRow = Selection.Cells(1).RowIndex

    'номер столбца, а также ячейки в таблице, в документе, где расположен курсор, даже если ширина столбца, ячейки различается
    'IntegerCursorCell = Selection.Cells(1).ColumnIndex
    '*********

    'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
    Set isTable = Nothing
    'конец функции (выясняем место нахождения курсора в таблице)
    '*********************************************************

    ObjectWord.Selection.Delete Unit:=wdCharacter, Count:=1

    Dim StrokaInVbscriptRegexp As String
    'здесь при помощи Trim$ откидываем лишние пробелы в начале и в конце строки или ячейки таблицы Word
    StrokaInVbscriptRegexp = Trim$(ObjectWord.Tables(NumberCursorTable).Rows(NumberCursorRow).Cells(NumberCursorCell).Range)
    'Debug.Print StrokaInVbscriptRegexp

    'выполнить функцию с именем ...
    FunctionStrokaInVbscriptRegexp StrokaInVbscriptRegexp

    With ObjectWord.Tables(NumberCursorTable)
        'записать данные ... в ячейку таблицы
        .Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Text = StrokaInVbscriptRegexp
        'добавить одну строчку в таблице ниже строки где находится курсор
        ObjectWord.Selection.InsertRowsBelow 1

        'условие, если в ячейке таблицы имеется поле и оно текстовое поле, имеет тип № 70, тогда ...
        If .Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Fields.Count = 1 And _
           .Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Fields(1).Type = 70 Then
            'здесь при помощи Trim$ откидываем лишние пробелы в начале и в конце строки или ячейки таблицы Word
            StrokaInVbscriptRegexp = .Rows(NumberCursorRow).Cells(NumberCursorCell).Range.Fields(1).Result

            'выполнить функцию с именем ...
            FunctionStrokaInVbscriptRegexp StrokaInVbscriptRegexp

            .Rows(NumberCursorRow + 1).Cells(NumberCursorCell).Range.Text = "Место регистрации: " & StrokaInVbscriptRegexp
        Else
            .Rows(NumberCursorRow + 1).Cells(NumberCursorCell).Range.Text = "Место регистрации: "
        End If

        'переместить курсор в конец строки
        ObjectWord.Selection.EndKey Unit:=wdLine
    End With

    Beep

Конец:

    'отменяем отключенное ранее дёргание экрана при выполнении кода
    ObjectWord.ScreenUpdating = True

End Sub

Function FunctionStrokaInVbscriptRegexp(StrokaInVbscriptRegexp)

'************************************************************************
'функция (считывание со строки, ячейки таблицы)
'Range со строки или ячейки таблицы Word
'абзац заменяем на пробел
'заменяем два, три, четыре и более пробелов подряд на один пробел
'удаляем концевую сноску таблицы Word
'заменяем пробел, следом идущую запятую на запятую, то есть, удаляем пробел перед запятой
'заменяем двоеточие, следом идущее двоеточие на двоеточие, то есть удаляем пробел перед двоеточием

    Dim reg As Object
    Set reg = CreateObject("vbscript.regexp")
    'искать по всему тексту, по умолчанию False - будет найдено только первое совпадение
    reg.Global = True
    'Chr$(13) это абзац, заменяем его на пробел
    reg.Pattern = Chr$(13)
    StrokaInVbscriptRegexp = reg.Replace$(StrokaInVbscriptRegexp, " ")
    'Debug.Print StrokaInVbscriptRegexp
    '+ означает, что заменяем два, три, четыре и более пробелов подряд на один пробел
    reg.Pattern = " +"
    StrokaInVbscriptRegexp = reg.Replace$(StrokaInVbscriptRegexp, " ")
    'Debug.Print StrokaInVbscriptRegexp
    'Chr$(7) это концевая сноска таблицы Word
    reg.Pattern = Chr$(7)
    StrokaInVbscriptRegexp = reg.Replace$(StrokaInVbscriptRegexp, "")
    'Debug.Print StrokaInVbscriptRegexp
    'заменяем пробел, следом идущую запятую на запятую, то есть удаляем пробел перед запятой
    reg.Pattern = " ,"
    StrokaInVbscriptRegexp = reg.Replace$(StrokaInVbscriptRegexp, ",")
    'Debug.Print StrokaInVbscriptRegexp
    'заменяем пробел, следом идущее двоеточие на двоеточие, то есть удаляем пробел перед двоеточием
    reg.Pattern = " :"
    StrokaInVbscriptRegexp = reg.Replace$(StrokaInVbscriptRegexp, ":")
    'Debug.Print StrokaInVbscriptRegexp
    StrokaInVbscriptRegexp = Trim$(StrokaInVbscriptRegexp)
    'Debug.Print StrokaInVbscriptRegexp

    'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
    Set reg = Nothing
    'конец функции (считывание со строки, ячейки таблицы)
    '***********************************************************************

End Function
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806693
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофасогласен, как узнать где неправильное и что является правильным, код:ну интересно, ты сам не указываешь строку, на которой возникает ошибка, а вместо этого приводишь простыню.

ЗЫ: Впрочем, навскидку я вижу строку, где пытаешься применить Range к Application - нет у Application такого свойства
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806696
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tables тоже нет.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806698
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И тебе уже об этом говорили 12586028 12586148 , только ты плевал
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806703
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа,
> как узнать где неправильное и что является правильным, код:
> { многабукаф }

По первой половине вопроса:
Запустить программу в отладчике, можно пошагово.
На какой строке обшыбку выдаст, - там и есть "где неправильное".

ЗЫ: а постить код без спойлера в данном, конкрэтном, "простыня на три экрана" ,случае - моветон. ИМХО.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806715
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProTables тоже нет.
пойдём пошагово, хотя уму не поддаётся Экспликит есть, скомпилировалось и выёживается, первая ошибка здесь:

Код: vbnet
1.
 NumberCursorTable = ObjectWord.Range(0, ObjectWord.Selection.Tables(1).Range.End).Tables.Count


объект не поддерживает это свойство или метод, как надо?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806761
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа,
> объект не поддерживает это свойство или метод, как надо?

Надо:
-открыть WORD с новым документом
-перейти в редактор VBA
-нажать F2 ( откроется просмотрщик объектов )
-в окне поиска набрать "range" ( без кавычек ), тыцнуть Enter
-в окне результатов поиска в столбце Member найти Range
-в соответствующей строке, если в столбце Library написано Word, в столбце Class будет искомое

НЕ НАДО: постить сюда скриншот результатов поиска.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806790
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаЭкспликит есть, скомпилировалось и выёживаетсяа я ведь предупреждал 12591085 , но ты сам выбрал сложный путь 12591092

В остальном - ведь у тебя был код, который работал, а ты взял и сам его испоганил. К примеру ты разве к Range через Application обращался? Посмотри свой первоначальный код.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806904
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наш мембер катастрофа тоже быстро приближается к своему пределу - на 13(sic!) неделе, доставшего выяснениями подробностей, Шокер снова для начала забанит на месяц
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806925
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMНаш мембер катастрофа тоже быстро приближается к своему пределу - на 13(sic!) неделе, доставшего выяснениями подробностей, Шокер снова для начала забанит на месяц
ну почему же... в своем же топике
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37806964
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, да... Извиняюсь, не задумался
Пушшай буде филиал ПТ для отдельно взятого почётного мембера
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37807000
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что это значит в ВБА Эф2
библиотека-ворд, класс-Tables, а в мембере-пусто??

>-в окне поиска набрать "range" ( без кавычек ), тыцнуть Enter
>-в окне результатов поиска в столбце Member найти Range
>-в соответствующей строке, если в столбце Library написано Word, в столбце Class будет искомое

сделал там есть
Bookmark - закладки
Break - вообще не знакомый зверь?????
CanvasChapes - - вообще не знакомый зверь????? и что за фигня у него зелёный ластик????Cell
Comment
Document - и что за фигня у него зелёный ластик???? и главное их, Document два подряд????
Editor - вообще не знакомый зверь?????
Endnote - вообще не знакомый зверь?????
Footnote - вообще не знакомый зверь?????
FormField
Frame
GroupShapes - вообще не знакомый зверь?????? и что за фигня у него зелёный ластик????
HeaderFooter - вообще не знакомый зверь??????
HTMLDivision - вообще не знакомый зверь?????? армией попахивает
Hyperlink
Index - вообще не знакомый зверь??????
InlineShape
Line
List
ParagraphRectangle - вообще не знакомый зверь??????
Revision - вообще не знакомый зверь??????
Row
Section - вообще не знакомый зверь??????
Selection - ну есть же, а мне твердят нет его??????????????????????????????
Shapes и что за фигня у него зелёный ластик????
SmartTag
Subdocument - вообще не знакомый зверь??????
Table - то есть не Tables и что делать?????????????????????????????????????
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37807041
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> сделал ...

А теперь на все, ну почти на все, вопросы Вам ответит.... встроенная справка WORD VBA.
В результатах поиска выбираете строку с непонятным для Вас зверем и нажимаете, чо бы Вы думали, - F1.

Удачи.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37808564
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, ага,сенкс, разобраааааааааался
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37812694
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю, а как быть когда нужно на кнопку, которая в документе Ворд повесить код типа этого
Код: vbnet
1.
 Shell "D:\РабочаяПапка\MACROBUTTON1.exe", vbNormalFocus


имеется ввиду когда кнопок много, а плодить MACROBUTTON1.exe ....MACROBUTTON100.exe
не хочется, а хочется чтобы был один MACROBUTTON1.exe и обрабатывал все кнопки
что-то типа параметров с Shell передать можно??
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37812716
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эндрю, идите в ... GOOGLE
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37813247
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаЭндрю, идите в ... GOOGLE сходил, не нашёл нужно, скажите пжл односложно да или нет
То что я хочу сделать сделать можно?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37813534
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

Эндрю, сложно написать
Код: vbnet
1.
2.
nButton = 10
Shell "D:\РабочаяПапка\MACROBUTTON.exe " & nButton, vbNormalFocus

а в программе сделать анализ первого параметра %1 ?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37813536
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, Вы мне подарили надежду...
>в программе сделать анализ первого параметра - не знаю как?
это "%1" вообще не понял
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37813563
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда повторю за
скукотищаЭндрю, идите в ... GOOGLE
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37814402
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,
краткость сестра таланта, одна строка: MsgBox$ Command$ а какой смысл
не подскажите я запускаю с ВБА строкой
Код: vbnet
1.
Shell "D:\РабочаяПапка\VB6.0.exe", vbNormalFocus


экзешник VB6.0.exe скомпилированный в ВБ6 получаю мессагу

Run-time error -2147417581(80010105)
Automation Error
С чего бы это?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37814966
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что никто не знает??
время прожитое с начала этого топика 20 май 12, 16:40 по сие время выходит зря, что толку что научился если ошибка выскакивает и главное ошибка есть потом нет, не понятно что её приводит, помогите неучуууууууу
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37814990
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты прежде чем экзешник-то лепить - отладь его сперва.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37815030
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> Ты прежде чем экзешник-то лепить - отладь его сперва.

«Ничто так не ограничивает полет мысли начинающего программиста, как компилятор» (с) Народ, но взято
отсюда

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37815337
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТы прежде чем экзешник-то лепить - отладь его сперва.
1 я думал, раз скомпилировался, значет всё нормально будет, да я его вручную опробывал, не было сбоев
2 как он себя ведёт странно в одной и той же ситуации то есть ошибка то нет сначала мне показалось, что только с утра, хотя я никогда комп не выключаю
3 >отладь его сперва - то есть пошагово пройти? так вроде проходил
4 и как действовать? реанимационные мероприятия какие?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37815351
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТы прежде чем экзешник-то лепить - отладь его сперва.
как там: http://visualprogs.medyal.ru/lesson/16.html
указано у меня нет этих заветных клавиш
End - завершить приложение
Debug - показать место возникновения ошибки, чтобы мы смогли от неё избавиться
Help - вызвать справку о возникшей ошибке
он же скомпилирован, а когда не скомпилирован ошибки нет
как быть??
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37815367
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЦЭТипа, привести вам готовый примерчик?
Эндрю, не наглей...
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37815579
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, а там же по этой указанной мною ссылке сказано
Запустите программу у меня на русской Старт, у Вас видимо Run я конечно попробую но здаётся мне чтобы ошибка вылезла надо создать условия, как узнать какие условия?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37816364
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял вчера работало, сегодня нет
????
то есть я в ВБА передаю

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Option Explicit
Sub dsgf()
Dim nButton As String
nButton = "jdfg"
Shell "D:\РабочаяПапка\MACROBUTTON.exe " & nButton, vbNormalFocus
End Sub

'а в проекте ВБ6 принимаю
Option Explicit
Dim nButton As String
Sub Main()
MsgBox$ nButton
End Sub


вроде так понял, в ответ пустая мессага, как надо????
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37816371
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем 12619049
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37816387
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Msgbox VBA.Command$
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37816831
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One, долой объявление, в ВБ6 строка Dim Command As String лишняя, вау
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37816856
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> Konst_One, долой объявление, в ВБ6 строка Dim Command As String лишняя, вау

Почему лишняя??? Если ты хочешь объявить такую переменную, то эта строка обязательна. А если хочешь воспользоватся
функцией получания аргументов командной строки, тогда действительно, это объявление ни к чему.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37817026
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос, ладно проехали
итого, я правильно понял отладка - запускаю в проекте Пуск, сделал нет ошибки и теперь я не получу никогда
Run-time error -2147417581(80010105)
Automation Error
???
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37817107
Обрюзгший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа,

Никогда не говори никогда.
А вообще не твоё это. Бросай!
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37817133
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обрюзгшийкатастрофа,

Никогда не говори никогда.
А вообще не твоё это. Бросай!
>Никогда не говори никогда.
согласен
>А вообще не твоё это. Бросай!
не согласен
и я не устану Вам повторять, людей моей профессии в 200тыс. городе примерно 100 чел.
и ещё никто не написал, то что нужно для этой профессии, написали бы бросил
А про отладку можете из опыта пояснить???
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37817140
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаи я не устану Вам повторять, людей моей профессии в 200тыс. городе примерно 100 чел.
и ещё никто не написал, то что нужно для этой профессии, написали бы бросилИ что? За то время и усилия, которые ты потратил, можно было нанять программера, который за месяц все бы сделал еще три года назад, и это УЖЕ СТО РАЗ ОКУПИЛОСЬ БЫ. Ты за это время на другом поприще гораздо больше денег бы заработал, чтобы окупить прогу. Ты тратишь недели на то, на что опытному программисту требуется час.

Так что "Бросай" - самый верный совет
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37817151
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем тут мелкие вопросы? Ты носишь воду в решете, когда для этого есть насосы.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37818596
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где то вычитал - Run-time error -2147417581(80010105), это скорей всего ошибка в создании объектов - CreateObject или еще в чем-то подобном.
а можно где то точно узнать? у меня есть список ошибок, но там нет такой ошибки
у меня так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Option Explicit
Dim ObjectWord As Object
Dim NoYesTables As Boolean

Sub Main()
'параметр в Shell, считывается посылаемый извне параметр
CommandShell = Command$
'MsgBox$ CommandShell
Set ObjectWord = GetObject(, "Word.Application")
..........................................................


может тут быть ошибка?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819032
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо один раз лучше увидеть чем сто раз услышать не посмотрите по поводу ошибки, заранее спасибо
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819164
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня ошибка не возникает.
Попробуй отказаться от постоянного обращения к ActiveDocument
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819286
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, спасибо, я про это же и говорю, что хрен поймёш когда она возникает, по поводу Вашего совета
1 ActiveDocument - что вместо этого?
2 тупо выбросить?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819299
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменить на объектную переменную
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819661
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЗаменить на объектную переменную

Код: vbnet
1.
2.
3.
4.
Dim ObjectWord As Object
Set ObjectWord = GetObject(, "Word.Application")
Dim ObjectOpenWord As Object
Set ObjectOpenWord = ObjectWord.ActiveDocument 



а далее вместо ActiveDocument пишем ObjectOpenWord, так?
если так, то я конечно игнорировать не буду попробую, но это я бы назвал что от перемены слогаемых сумма не менятся, хотя может я и не прав
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819701
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаа далее вместо ActiveDocument пишем ObjectOpenWord, так?Так
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819740
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> ... от перемены слогаемых сумма не менятся, хотя может я и не прав

Не смотря на одинаковый результат, в данном случае это не сумма. Со всеми вытекающими.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819760
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос> Автор: катастрофа
> ... от перемены слогаемых сумма не менятся, хотя может я и не прав

Не смотря на одинаковый результат, в данном случае это не сумма. Со всеми вытекающими.
Нас не учили складывать и преумножать. Нас учили отнимать и делить (с)
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819876
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, сделал с первого раза напоролся на ошибку
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819892
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
раньше то в пощаговом режиме никогда не было ошибок, а тут уже на строке
Код: vbnet
1.
2.
3.
If ObjectWord.ObjectOpenWord.Range( _
       Start:=0, _
       End:=ObjectWord.Selection.Start).Tables.Count = 0 Then


объект не поддерживает это свойство или метод
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819914
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаобъект не поддерживает это свойство или методразумеется, откуда у ObjectWord возьмется метод ObjectOpenWord?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819927
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proкатастрофаа далее вместо ActiveDocument пишем ObjectOpenWord, так?Так
значит не канает, а как нужно?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819938
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаShocker.Proпропущено...
Так
значит не канает, а как нужно?Значит надо понимать, что такое объект, объектная переменная, метод, свойство... Я тебе сто раз говорил - разберись в основах ООП, а не действуй методом тыка. ты потратишь часы, а сэкономишь месяцы.
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37819966
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offtop:
чукча - не читатель(ц)народная мудрость
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37822026
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разобрался
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37822489
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здравствуйте
1
когда созданы объекты:
Set ObjectWord = GetObject(, "Word.Application")
Set ObjectOpenWord = ObjectWord.ActiveDocument
на строке:
ObjectWord.Selection.TypeText Text:=Command1.Caption
получаю ошибку 91 что это такое?
2
странно в ВБ6 жму кнопку в пошаговом режиме на кнопке и сразу идёт выполняться код кнопки
а как же UserForm_Initialize формы? (в ВБА до кода кнопки идёт UserForm_Initialize формы) и как этот код UserForm_Initialize формы сделать пошагово?
или может в ВБ6 UserForm_Initialize - чуток по другому зовётся?
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37822528
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по второму вопросу разобрался, чуток по другому зовётся: Private Sub Form_Load()
первый вопрос не решён, нуждаюсь в помощи
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37822532
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
91 Object variable or With block variable not set Переменная объекта или переменная блока With не задана
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37822568
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

С помощью Is Nothing поверь, какого именно объекта не существует
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37822579
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, проверил
Код: vbnet
1.
2.
If ObjectWord Is Nothing Then Beep
If Command1 Is Nothing Then Beep


первого - ObjectWord, почему понял, я ж его убил (в ВБА по другому)
Код: vbnet
1.
2.
 'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
     Set ObjectOpenWord = Nothing


получается в форме снова создавать??
...
Рейтинг: 0 / 0
Из Ворда запустить *.exe скомпилированный в ВБ6
    #37828469
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из той же оперы
катастрофакогда созданы объекты:
Set ObjectWord = GetObject(, "Word.Application")
Set ObjectOpenWord = ObjectWord.ActiveDocument
на строке:

когда делаю пошагово, на строке

Код: vbnet
1.
ObjectOpenWordPath = ObjectOpenWord.Path


получаю мессагу
во время выполнения программы -2147417851 (80010105)
Ошибка автоматизации
Эф 8 жму и код пошёл дальше, строка кода дающая ошибку ведь плёвая
подчёркиваю, что даже пошагово выдаёт ошибку
...
Рейтинг: 0 / 0
98 сообщений из 98, показаны все 4 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Из Ворда запустить *.exe скомпилированный в ВБ6
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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