powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / закрыть файл програмно
25 сообщений из 223, страница 3 из 9
закрыть файл програмно
    #36724415
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если с документом ничего не делалось, то и спрашивать ворд ничего не будет.
Если с документом что-то делал пользователь или твой скрипт - будет. Что там с документом делает твой скрипт - я знать не могу.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724420
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
я конечно же знаю, что Вы не есть телепат и Что там с документом делает мой скрипт - Вы знать не можете, а что разве универсального условия:
если в документе ничего не изменилось, то есть в него я ничего не вводил и с него ничего не удалял, тогда ...? Может я не правильно в этом условии высказался но смысл остаётся прежним, если пользователь ничего не сделал сам, тогда нечего у него и спрашивать. Нет??
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724442
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro,
я конечно же знаю, что Вы не есть телепат и Что там с документом делает мой скрипт - Вы знать не можете, а что разве универсального условия:
если в документе ничего не изменилось, то есть в него я ничего не вводил и с него ничего не удалял, тогда ...? Может я не правильно в этом условии высказался но смысл остаётся прежним, если пользователь ничего не сделал сам, тогда нечего у него и спрашивать. Нет??
Я не знаю, что там делает твой скрипт с документом, но после того, как он это сделает, можешь сбросить изменения с помощью
ActiveDocument.Saved=True
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724465
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, спасибо, завтра буду думать, утро вечера мудренее
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724653
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, я ведь пишу: Application.Run "ЦЭ.Интерфейс.Кнопка_пользователь"
А мне сообщение Не удаётся запустить указанный макрос
Так ведь ЦЭ.dot находится в папке автозагрузки: C:\Documents and Settings\user1\Application Data\Microsoft\Word\STARTUP
И там имеется модуль Интерфейс, а в нём макрос Кнопка_пользователь
Не ужели всё равно его, ЦЭ.dot надо открывать, не пойму зачем?
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724660
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже и так пробовал: Application.Run "TemplateProject(ЦЭ).Интерфейс.Кнопка_пользователь"
Ничего не помогает
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724735
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В редакторе VBA слева в окошке Project перечислены все открытые шаблоны.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724746
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Так там в левом верхнем углу имеется
TemplateProject(ЦЭ)

Только нажав на него получаю сообщение Проект unviewable, unviewable стал переводить нет ответа
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724779
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее там сообщение такое
Project Locked
Project is unviewable
Но он не закрыт!
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36724810
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюunviewable стал переводить нет ответа
попробуй перевести viewable
un - отрицающая приставка.

а вообще - у меня тоже не получилось запустить. Не знаю, как надо.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725037
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Вобще-то подсмотрел у одного человека, его шаблон загруженный в папку СтартУп если на него посмотреть в проекте то выглядить он должен быть в моём случае, так: prjЦЭ(ЦЭ). Нет по этому поводу никаких мыслей?
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725071
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искал в сети, нашёл:
Подскажите, каким образом можно при открытии ранее созданного документа автоматически подключать (уточняю: не присоединять) требуемый шаблон?

Макросом. Макрос поместить в модуль ThisDocument соответствующего документа

Sub AutoOpen()
AddIns.Add "полный путь к шаблону", True
End Sub

Попробовал:
AddIns.Add "C:\Documents and Settings\user1\Application Data\Microsoft\Word\STARTUP\ÖÝ.dot", True
Опять не получилось, так и не понял это тот совет?
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725247
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код становится unview, возможно потому, что шаблон не является доверенным. Шаблон подключается к проекту в режиме-рантайма. Шаблон указан в пути и имеет процедуру TESTING. Всё работает. Для доступа к проекту только таким способом нашёл.

Sub AutoOpen()
Dim MyTemplate As AddIn

Set MyTemplate = AddIns.Add("D:\MEWORK.dot", True)
MyTemplate.Application.Run ("TESTING")
End Sub
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725254
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняйте... забыл про подсветку.

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub AutoOpen()
Dim MyTemplate As AddIn

Set MyTemplate = AddIns.Add("D:\MEWORK.dot", True)
MyTemplate.Application.Run ("TESTING")
End Sub
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725260
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюAddIns.Add
это масло масляное, потому что то, что находится в Startup и так добавляется в AddIns

Мне удалось запустить макрос из загруженного шаблона так:
Application.Run "t"
то есть без всякого указания путей к нему. Почему так, и что будет, если в нескольких шаблонах будут макросы с одинаковыми именами - не знаю.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725331
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
насчёт масла масляного я с Вами согласен, насчёт создания уникального имени, это же мой конёк, попробовал:
Application.Run "ЦЭ_Интерфейс_Кнопка_пользователь" Получилось!!!!!!!!
А чтобы имена непересекались это моя забота!!!!
Спасибо!!!!!!!!!!
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725426
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И последнее то, которого с чего всё начиналось и я не смог осилить, Вы всё время говорите, я ведь не знаю, что в Автозапуске документа, прикладываю скрипт:

Код: 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.
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.
Sub AutoNew()
'AutoNew работает при создании любого нового документа Ворд

'уточнение наличия элемента управления с именем ... в документе
On Error Resume Next
ActiveDocument.Frame_рамка_каркас.Caption = ""
If Err.Number =  438  Then Exit Sub 'условие, если ..., тогда значит нет такого элемента управления с именем ..., ошибка 438 Object doesn't support this property or method то есть - Объект не поддерживает это свойство или метод

If Len(Dir$("D:", vbDirectory)) =  0  Then 'условие, если ..., тогда диск ... не существует, дословно если длина имени пути - Dir$ диска больше нуля тогда диск ... существует
MsgBox$ "Диск D, на котором должны находиться файлы  в папке с именем: D:\Рабочая папка\Пользователь для обеспечения программы не существует", vbOKOnly, "ВНИМАНИЕ": Exit Sub 'вывести надпись указанную в кавычках из строк-Chr$(13), столбцов-Chr$(9), выйти из программы
ElseIf Len(Dir$("D:\Рабочая папка", vbDirectory)) =  0  Then 'условие, если ..., тогда папка ... на диске ... не существует, дословно если длина имени пути - Dir$ папки .. на диске ... больше нуля тогда папка ... не существует
MsgBox$ "На диске D папка с именем: D:\Рабочая папка, в которой должна находится папка с именем: D:\Рабочая папка\Пользователь, в которой должны находиться файлы  для обеспечения программы не существует", vbOKOnly, "ВНИМАНИЕ": Exit Sub 'вывести надпись указанную в кавычках из строк-Chr$(13), столбцов-Chr$(9), выйти из программы
ElseIf Len(Dir$("D:\Рабочая папка\Пользователь", vbDirectory)) =  0  Then 'условие, если ..., тогда папка ... на диске ... не существует, дословно если длина имени пути - Dir$ папки .. на диске ... больше нуля тогда папка ... не существует
MsgBox$ "На диске D папка с именем: D:\Рабочая папка\Пользователь, в которой должны находиться файлы  для обеспечения программы не существует", vbOKOnly, "ВНИМАНИЕ": Exit Sub 'вывести надпись указанную в кавычках из строк-Chr$(13), столбцов-Chr$(9), выйти из программы
End If

'выясняем количество файлов в папке по адресу ..., с именем ..., если ответ получим Empty, значит такой папки не существует
Dim Папка As String
Папка = "D:\Рабочая папка\Пользователь\" 'папка, где происходит поиск файлов

Количество_файлов_в_папке = CreateObject("Scripting.FileSystemObject").GetFolder(Папка).Files.Count
Set fso = CreateObject("Scripting.FileSystemObject")
Set fr = fso.GetFolder(Папка)
Set fs = fr.Files
Количество_файлов_с_расширением_файла_doc =  0 
For Each f In fs 'цикл равный количеству файлов в папке, в которой происходит поиск
Имя_файла_без_расширения = Left$(f.Name, (Len(f.Name) -  4 )) 'отбрасываем четыре последних знака, то есть ".doc"

'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'Имя_файла_с_расширением = f.Name
'Расширение_файла = fso.GetExtensionName(f.Path) 'расширение обрабатываемого файла в искомой папке
'Имя_файла_с_его_путём_и_расширением = f
'Путь_к_обрабатываемому_файлу = Папка
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

'условие, если расширение файла = "doc", тогда ...
If fso.GetExtensionName(f.Path) = "doc" Then
Количество_файлов_с_расширением_файла_doc = Количество_файлов_с_расширением_файла_doc +  1 
ActiveDocument.Frame_рамка_каркас.Controls("ComboBox_комбинированный_список_пользователь").AddItem Имя_файла_без_расширения
'условие, если первая буква имени файла = "1", тогда ...
If Left$(Имя_файла_без_расширения,  1 ) = "1" Then Имя_пользователя_с_первым_знаком_1 = Имя_файла_без_расширения
End If
Next 'конец цикла

If Количество_файлов_с_расширением_файла_doc >  1  Then
ActiveDocument.Frame_рамка_каркас.Controls("Label_ярлык_этикетка_метка_пользователь").Visible = False 'делаем скрытым элемент управления с именем ...
ActiveDocument.Frame_рамка_каркас.Controls("ComboBox_комбинированный_список_пользователь").Left =  387 . 5  'расстояние элемента управления с именем ... от левого края фрейма с именем ...
ActiveDocument.Frame_рамка_каркас.Controls("ComboBox_комбинированный_список_пользователь").Value = Имя_пользователя_с_первым_знаком_1
End If

If Количество_файлов_с_расширением_файла_doc =  0  Then
ActiveDocument.Frame_рамка_каркас.Controls("ComboBox_комбинированный_список_пользователь").Visible = False 'делаем скрытым элемент управления с именем ...
ActiveDocument.Frame_рамка_каркас.Controls("Button_кнопка_пользователь").Caption = "0 пользователей"
ActiveDocument.Frame_рамка_каркас.Controls("Label_ярлык_этикетка_метка_пользователь").Caption = "Пользователей не имеется"

ElseIf Количество_файлов_с_расширением_файла_doc =  1  Then
ActiveDocument.Frame_рамка_каркас.Controls("ComboBox_комбинированный_список_пользователь").Visible = False 'делаем скрытым элемент управления с именем ...
ActiveDocument.Frame_рамка_каркас.Controls("Button_кнопка_пользователь").Caption = "1 пользователь"
ActiveDocument.Frame_рамка_каркас.Controls("Label_ярлык_этикетка_метка_пользователь").Caption = Имя_файла_без_расширения

'условие, если количество файлов с расширением файла doc <> 11 и последняя цифра количества файлов с расширением файла doc = "1", тогда ...
ElseIf Количество_файлов_с_расширением_файла_doc <>  11  And Right$((Left$(Количество_файлов_с_расширением_файла_doc, Len(Количество_файлов_с_расширением_файла_doc))),  1 ) = "1" Then
ActiveDocument.Frame_рамка_каркас.Controls("Button_кнопка_пользователь").Caption = Количество_файлов_с_расширением_файла_doc & " пользователь"

'условие, если количество файлов с расширением файла doc = "12" или = "13" или = "14", тогда ...
ElseIf Количество_файлов_с_расширением_файла_doc =  12  Or Количество_файлов_с_расширением_файла_doc =  13  Or Количество_файлов_с_расширением_файла_doc =  14  Then
ActiveDocument.Frame_рамка_каркас.Controls("Button_кнопка_пользователь").Caption = Количество_файлов_с_расширением_файла_doc & " пользователей"

'условие, если последняя цифра количества файлов = "2" или = "3" или = "4", тогда ...
ElseIf Right$((Left$(Количество_файлов_с_расширением_файла_doc, Len(Количество_файлов_с_расширением_файла_doc))),  1 ) = "2" _
Or Right$((Left$(Количество_файлов_с_расширением_файла_doc, Len(Количество_файлов_с_расширением_файла_doc))),  1 ) = "3" _
Or Right$((Left$(Количество_файлов_с_расширением_файла_doc, Len(Количество_файлов_с_расширением_файла_doc))),  1 ) = "4" Then
ActiveDocument.Frame_рамка_каркас.Controls("Button_кнопка_пользователь").Caption = Количество_файлов_с_расширением_файла_doc & " пользователя"

Else 'в остальных случаях ...
ActiveDocument.Frame_рамка_каркас.Controls("Button_кнопка_пользователь").Caption = Количество_файлов_с_расширением_файла_doc & " пользователей"
End If

Set fso = Nothing 'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
Set fr = Nothing 'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
Set fs = Nothing 'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта

End Sub

Sub AutoClose()
'AutoClose работает при закрытии документа Ворд

'????????????Так что сюда надо поместить, чтобы в случае, если документ я открыл и тут же 
'закрыл, ничего не делая, чтобы не спрашивало, СОХРАНИТЬ ли документ??????????

End Sub
Всё не могу понять!!!!!
Надо ведь какое то условие ставить, подскажите какое
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725565
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюТак что сюда надо поместить, чтобы в случае, если документ я открыл и тут же 'закрыл, ничего не делая

Да ничего в AutoClose вообще не надо ставить, что ты к нему привязался?
Если ты ничего не делал с документом, ворд у тебя ничего спрашивать не будет

А если твой макрос что-то делает с документом, а ты это за изменения не считаешь, сбрось изменения в конце макроса.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725613
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, то есть в конце Аутоопен
ActiveDocument.Saved=True????? Так что ли????
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725618
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro, то есть в конце Аутоопен
ActiveDocument.Saved=True????? Так что ли????
Ну наверное так, я ж не знаю, не происходит ли у тебя еще чего-нить....
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725748
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопросы элементарнейшие - неужели сложно погуглить хотя бы
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725779
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADВопросы элементарнейшие - неужели сложно погуглить хотя бы


Если б он сам знал, что хочет, можно было бы и погуглить. А то ведь вопрос изначально как стоял:
ЦЭА как будет с сохранением документа, чтобы диалог "Сохранить документ" не отображался и затем убрать окно Ворд, чтобы не висело????? Спасибо
естественно три листа диалога в этом ключе. Кто ж знал, что ему не нужно сохранение.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725830
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
проверил, всё равно спрашивает!!!!
Поясню просто открыл шаблон и через секунду закрываю ничего не делал, а оно всё равно спрашивает.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725841
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы говорите: Кто ж знал, что ему не нужно сохранение
Оно мне нужно только в том случае если я действительно что то сделал в остальных случаях нет
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36725842
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro,
проверил, всё равно спрашивает!!!!
Поясню просто открыл шаблон и через секунду закрываю ничего не делал, а оно всё равно спрашивает.

я уже вас предупреждал в другом топике, что рано или поздно вы доберётесь до граблей с программированием в ворде и уткнётесь по полной в безопасность. ищите на что я вам намекал.
...
Рейтинг: 0 / 0
25 сообщений из 223, страница 3 из 9
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / закрыть файл програмно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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