Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 17:52   #1
pixel_
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 27
По умолчанию Передача из форм программы в word 07

Здраствуйте. Возникла проблема, plain текст со вставками передается в виде изображения в word. При передаче в word 2003 все нормально передается. В word 2007 передаваемые изображения оказываются залитые черным цветом. Если поставить в св-вах изображения "нет заливки", то все нормально. Может это по умолчанию черным цветом заливаются? Подскажите пожалуйста? И как можно решить данную проблему?
pixel_ вне форума Ответить с цитированием
Старый 28.04.2009, 03:02   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Попробуйте приложенный документ: вставив туда свой текст, жмите альт-Q.
И тогда, если защита от макросов у вас снята, выполнится следующий
Код:
Sub For2007etc()

If ActiveDocument.Shapes.Count > 0 Then
    ActiveDocument.Shapes.SelectAll                 'выделяем все рисунки'
    Selection.ShapeRange.Fill.Visible = False       'убираем их заливку'
Else
    MsgBox "В документе """ & ActiveDocument & """нет рисунков типа Shape."
End If

End Sub
Вложения
Тип файла: doc Unfill.doc (27.0 Кб, 22 просмотров)

Последний раз редактировалось Sasha_Smirnov; 28.04.2009 в 03:24.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 28.04.2009, 07:08   #3
pixel_
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 27
По умолчанию

Изображения импортируются из форм программы написанной на Delphi.
Автоматически сохраняются в новом документе ворда. Однако на компьютере где стоит только ворд 07, эти изображения оказываются залитыми черным.
pixel_ вне форума Ответить с цитированием
Старый 28.04.2009, 19:48   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Поэтому я и предлагаю эту заливку отключать.

Следующий код делает это автоматически — при открытии файла. (Чтобы увидеть, каким был приложенный файл до его открытия, нажмите несколько раз — по числу рисунков в нём — Ctrl-Z.)
Код:
Sub AutoOpen() 'программа с таким именем выполняется при открытии файла Word'
With ActiveDocument.Shapes

    For i = 1 To .Count
    .Range(i).Fill.Visible = False  'заливка i-го рисунка убирается'
    Next

End With
End Sub
Но всё равно же в доке, сохранённом Delphi, этой программы нет, так что заливку (как вы говорите, по умолчанию — чёрную) придётся убирать руками.

Как из Delphi сохранить Word-документ с уже встроенной программой AutoOpen, я не знаю. Вы хотите изменить свойства самого Word 2007?

А можно из Delphi, например, сохранять файлы как документы Word ранних версий — где, как вы обнаружили, не происходит заливки рисунков?
Вложения
Тип файла: doc AutoUnfill.doc (27.5 Кб, 21 просмотров)

Последний раз редактировалось Sasha_Smirnov; 28.04.2009 в 19:52.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 29.04.2009, 23:01   #5
pixel_
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Как из Delphi сохранить Word-документ с уже встроенной программой AutoOpen, я не знаю. Вы хотите изменить свойства самого Word 2007?
Да, я думал может это из-за каких-нибудь стандартных настроек ворда 07 и хотел изменить.

Цитата:
А можно из Delphi, например, сохранять файлы как документы Word ранних версий — где, как вы обнаружили, не происходит заливки рисунков?
Он сохраняет просто как документа ворда, импортируя туда. Он создает его просто как файл в формате .doc

В ворде 2003 все отлично без заливки, в ворде 2007 с заливкой. Для ворда 2003 есть патч, который делает нормальный просмотр документов ворда 2007. Может быть и для ворда 2007 есть что-нибудь такое, чтобы нормально было все без заливки, как в ворде 2003. Ну или каким-нибудь способом найти выход .. как еще можно.
pixel_ вне форума Ответить с цитированием
Старый 02.05.2009, 22:04   #6
pixel_
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Поэтому я и предлагаю эту заливку отключать.

Следующий код делает это автоматически — при открытии файла.
А можно сделать так, чтобы этот макрос выполнялся для многих выделенных элементов сразу? Или так сказать для указанной папки с файлами, где заливка?
pixel_ вне форума Ответить с цитированием
Старый 03.05.2009, 20:20   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Ну есть вариант перетащить папку в окно того документа, что я приложил*, нажать альт-F8 — и выполнить макрос. Будете пробовать?

В конце-то концов и по правой кнопке можно «раздеть» все фигуры!
_____________________________
* только отобразить не в виде значков — а как текст (не помню как!)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 05.05.2009, 23:12   #8
pixel_
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 27
По умолчанию

Открыл ваш файл AutoUnfill.doc, макрос запустился.
Если саму папку в открытое окно документа перетаскиваешь, то вылазиет вот это.

Если документы, то содержимое документов.
Но после выполнения макроса, заливка не убралась.
Вот документ для примера http://up-do.ru/?f=d3989fd6bcf000eeba6633fa4c003b6b
pixel_ вне форума Ответить с цитированием
Старый 06.05.2009, 03:07   #9
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Ну я же сам не испытал это! — у меня 2003-й Word.

Макрос не меняет настроек Ворда, он выполняет действия, доступные и без него.

Если всё же вам надо «раздеть» все рисунки в составном документе (из файлов вашей папки), то макрос не 2-й, а 1-й (For2007etc()), и то я не уверен.

И потом, когда это один раз в день — лучше выделить всё и снять заливку вручную, а усложнять программу стоит лишь при реально большом трафике (ну несколько раз в час или типа того).
Sasha_Smirnov вне форума Ответить с цитированием
Старый 06.05.2009, 16:53   #10
pixel_
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 27
По умолчанию

не получается ..

может сделать макрос, который сбрасывает параметры рисунков?
просто нажимаю пкм, рисунок, сброс параметров рисунка, то заливка убирается

странно, что не получается выделить эти залитые .. а только по одной убирается.

а такого ничего нету?
Для ворда 2003 есть патч, который делает нормальный просмотр документов ворда 2007. Может быть и для ворда 2007 есть что-нибудь такое, чтобы нормально было все без заливки, как в ворде 2003.
pixel_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17
Передача данных Access Word (пояснение) Dryuks Microsoft Office Access 1 28.01.2008 06:06
Общение форм Rapid Общие вопросы Delphi 9 17.11.2007 17:56
Передача сообщения из программы в свою Dll SergeySK Общие вопросы Delphi 3 01.11.2007 14:42