powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как вывести сообщение во вновь открытом документе
24 сообщений из 49, страница 2 из 2
как вывести сообщение во вновь открытом документе
    #37242100
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюЦипихович Эндрюотображался поверх только что открытого документа

Shocker.Proотображаться поверх ворда, а не за ним

найдёте 10 отличий??
msgbox отображается поверх ворда, в том числе любого открытого в нем документа
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242101
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверил варианты противоречащие синтаксу, на всякий случай

Код: plaintext
1.
2.
'переводим фокус на его окно
WordApp.Activate
WordApp.MsgBox "fdbf"
и

Код: plaintext
1.
WordApp.MsgBox "fdbf"
WordApp.Activate

и

Код: plaintext
WordApp.Application.Run MacroName:="Р4 (" & Диск & ")"

и

Код: plaintext
WordApp.Application.Run MacroName:="Р4 ( Диск)"

не идёт нифига
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242103
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не увидел ответ:
msgbox отображается поверх ворда
не спорю
в том числе любого открытого в нём документа
вот и надо у только что открывшегося, это делаю, но ещё переменную передать
КАК?????
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242114
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюно ещё переменную передать
КАК?????
кажется мы пошли по кругу
можно через коллекцию Variables
разжевывать не буду из принципа, потому что
а) это обычная коллекция объекта Document
б) получить доступ к объекту Document ты можешь, надо просто-напросто понять свой собственный код, который ты во множестве приводил, а не просто стырить его откуда-то
в) я это тебе уже объяснял
г) в хелпе все расписано
д) работа с объектами и коллекциями - обычное дело, надо просто почитать (и понять) учебник, что ты не хочешь делать из принципа, думая, что обойдешься стыренными готовыми примерами, не пытаясь их понять. Ну и обходись, пусть тебе Скукотища разжевывает
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242193
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProНу и обходись, пусть тебе Скукотища разжевываетНе жуётся :(
Создаю два документа doc1.doc, doc2.doc.
В doc2 добавляю модуль Module1 с одной процедурой
Код: plaintext
1.
2.
Public Sub WhoOpen(s$)
    MsgBox s
End Sub
В свойствах doc2 ставлю флаг "Доверять доступ к Visual Basic Project"
Сохраняю и закрываю doc2

В doc1 выполняю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim d As Document

Set d = Application.Documents.Open("C:\temp\doc_\doc2.doc")

Application.Run "doc2.Module1.WhoOpen", ThisDocument.FullName
' разные варинты вызова пробовал...
' "doc2.WhoOpen"
' "'doc2.doc!'Module1.WhoOpen"
' "'doc2.doc!'WhoOpen"
' "Project(doc2).Module1.WhoOpen" ' самому смешно
' ... etc

Set d = Nothing
Документ doc2 открывается.
На выделенной строке получаю Run-time error '438': Object doesn't support this property or method
Пробовал описывать WhoOpen как процедуру без параметров, как функцию с параметрами/без параметров.
Пробовал переносить WhoOpen в модуль документа.
Результат во всех случаях одинаковый :(
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242206
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаНе жуётся
А у меня в свое время тоже не получалось запустить чужой макрос с параметрами, но я не стал долго разбираться. Без параметров - пожалуйста.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242218
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
в том-то и дело, что и без параметров не запускается :(
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242231
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
наврал, сорри. Без параметров запускается. Но хочется большего.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242236
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаНо хочется большего.Приходи вечером на сеновал. (с)
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242265
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
только я не одна приду(с)
Распаковать оба документа в одну папку.
В doc1 зпустить процедуру opendoc.
Получилось, но как-то ... коряво, - имя макроса с параметрами принимается с точностью до модуля. По каким правилам ворд разруливает коллизии - х.з.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242294
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажись въехал, до завтра опробовать не могу, нет Ворда

WordApp .Variables.Add "Искомое", Label1.Caption

а уже там во вновь открытом документе МсгБокс "Вы искали: " & ActiveDocument.Variables "Искомое".Value & " а его нету!!!"
Так??
А Вы до этого Шокер и Скукотища о чём разговаривали???
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242325
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища' также работает с методом .Add
работает-то работает, только это не одно и то же
Open открывает существующий документ, а Add создает новый документ, используя указанный как шаблон.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242335
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, не сказали мой способ завтра заработает, взлетим не взлетим?
если не сработает брать пример Скукотищи с методом Open??
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242337
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro, не сказали мой способ завтра заработает, взлетим не взлетим?
не заработает, ибо ни в синтаксисе, ни в принадлежности объектов разбираться ты не хочешь, а занимаешься, как обычно, гаданием.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242346
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, но ведь в примере Скукотищи нет намёка на Вариаблес
а что не так, открыл документ, в него закинул Вариаблес, потом считал значение Вариаблес
как Вы говорили никто же не мешает
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242365
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro, но ведь в примере Скукотищи нет намёка на Вариаблес
это другой метод решения, но у него свои, не решенные Скукотищей недостатки.

Ципихович Эндрюа что не так, открыл документ, в него закинул Вариаблес, потом считал значение Вариаблес
как Вы говорили никто же не мешает
никто не мешает. просто приведенный тобой код к этому никакого отношения не имеет
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242407
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Variables, его параметры
Name
Value
Index
Что с ним можно сделать
Add
Delete
А что такое thisProject.Variables.Item????
Спасибо
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242416
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрюесли не сработает брать пример Скукотищи с методом Open??Не брать. Тот метод "предусматривает" в открываемом документе наличие определённой процедуры. Оно Вам такое надо?

Ципихович ЭндрюА Вы до этого Шокер и Скукотища о чём разговаривали???Как из одного документа вызвать макрос с параметрами другого документа. По крайней мере я об этом говорил.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242417
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,

> Оно Вам такое надо?
Тоже мне проблема! А как иначе? Так она же там и так есть, Р4, на первом листе топика - вчера, 05:11 указывал
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37242420
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proработает-то работает, только это не одно и то же ...С пониманием как и что делают Application.Open и Application.Add проблемы нету. Проблема с Application.Run.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37243941
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему варианту как и говорил Шокер Не взлетел!!!!!!!!!
Сделал по предложенному варианту, сделал с Опэн, меня это устраивает, пока проблем нет, будут проблемы, буду думать, но если Шокер подскажет вариант с Вариаблес буду рад, так сказать для общего развития.
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37244563
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю,
Код: plaintext
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.
' ******************************************************
' добавление/изменение объекта Variable другого документа
' и вызов из него макроса БЕЗ ПАРАМЕТРОВ по полному имени (включая имя документа)
Private Sub VariablesChange()

Dim sDocForOpen$
Dim s$
Dim d As Document
Dim sDName$

sDocForOpen = ThisDocument.Path + "\doc3.doc"

Set d = Application.Documents.Open(sDocForOpen)

' с методом .Add не получается вызвать макрос по "полному адресу", -
' только с точностью "до модуля" (см.ниже)
'Set d = Application.Documents.Add(ThisDocument.Path + "\doc3.doc")

s = ThisDocument.FullName
On Error Resume Next
    d.Variables.Add "кто_меня_открыл", s
    If Err.Number =  5903  Then
        Err.Clear
        d.Variables("кто_меня_открыл") = s
    End If
On Error GoTo  0 

' для метода .Open
sDName = d.FullName
Application.Run "'" + sDName + "'!Module1.WhoOpenMe"


' для метода .Add вызов работает только "с точностью до модуля" :(
'Application.Run "'" + sDName + "'!Module1.WhoOpenMe" '<-- так не находит, даже если документ сохранить :(
'Application.Run "Module1.WhoOpenMe" '<-- так находит, но нах надо. Коллизии, мать их...

    d.Variables("кто_меня_открыл").Delete

Set d = Nothing

End Sub


Doc3.doc модуль Module1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
' *********************
' в вызывающей программе создаю в этом документе переменную 'кто_меня_открыл' и
' присваиваю ей какое-нибудь значение; далее методом Application.Run вызываю процедуру
' WhoOpenMe; нах такие извраты - х.з.
Sub WhoOpenMe()
    
    MsgBox ThisDocument.Variables("кто_меня_открыл").Value, , _
           "'" + ThisDocument.Name + "'!Module1.WhoOpenMe"
    'MsgBox "бред полнейший ..."
    
End Sub
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37244645
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, спасибо попробую
...
Рейтинг: 0 / 0
как вывести сообщение во вновь открытом документе
    #37245831
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, здесь
d.Variables("кто_меня_открыл") = s
надо
d.Variables("кто_меня_открыл").Value = s
ну и в своём ответе 2 май 11, 06:15 я был близок за исключением строки Application.Run "'" + sDName + "'!Module1.WhoOpenMe"
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как вывести сообщение во вновь открытом документе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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