powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Из Ворда запустить *.exe скомпилированный в ВБ6
25 сообщений из 98, страница 2 из 4
Из Ворда запустить *.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
25 сообщений из 98, страница 2 из 4
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Из Ворда запустить *.exe скомпилированный в ВБ6
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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