Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически часто с пользователем)
Текущее время: 28.10.2024 13:02

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Закладка в World, зачеркнутый текст
СообщениеДобавлено: 23.01.2022 21:01 
Не в сети

Зарегистрирован: 15.12.2014 16:50
Сообщения: 106
Добрый день.
Есть документ, в нём должен зачеркиваться пол в зависимости от выбранного пола в таблице на основании которой мы генерируем документ, см.рис.1
Подскажите, как в данном документе прописать такую закладку? Запрос см.рис.2 не подходит, т.к. зачеркнутый текст при вставке в программу вставляется как не зачеркнутый.


Вложения:
Pic1.png
Pic1.png [ 116.26 КБ | Просмотров: 10090 ]
Pic2.png
Pic2.png [ 2.88 КБ | Просмотров: 10090 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23.01.2022 23:15 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Я подобное решал бы макросом

Сначала вставил бы так
... IIF(Sex='м', 'ывыазхщавапкуЖенйцяссыауп', 'Жен') ...
Затем макросом заменил бы ывыазхщавапкуЖенйцяссыауп на Жен и задал бы формат зачеркнутый


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24.01.2022 14:14 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Вот файл-шаблон, в котором сумма прописью прописывается в коде Visual Basic при обработке события _DocumentBeforeSave

'1. ищется и находится закладка
Set oBookmark = ThisDocument.Bookmarks("Сумма_счета")

'2. вставляется сформированное значение (сумма прописью по-русски) посредством метода закладки InsertAfter
oBookmark.Range.InsertAfter sNumberInWords


Вложения:
TemplateSpellByVBA.zip [12.97 КБ]
Скачиваний: 664

_________________
2B OR NOT 2B = TRUE
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24.01.2022 14:28 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Нажатием Alt+F11 вызываем окно редактора Visual Basic
См. скриншот.


Вложения:
Pic1.jpg
Pic1.jpg [ 323.57 КБ | Просмотров: 10078 ]

_________________
2B OR NOT 2B = TRUE
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24.01.2022 14:38 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Вам надо, если Sex = "м"

либо
1. по ячейке вашей таблички применять зачеркнутый шрифт к той или другой ячейке

либо
2. находить текст "Жен." с помощью объекта поиска и задавать ему зачеркнутый шрифт

Я бы начал с варианта (1), но такая табличка обязательно должна быть в документе.
А как конкретно это запрограммировать, лучше спросить на форуме по программированию Microsoft Office.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24.01.2022 16:26 
Не в сети

Зарегистрирован: 15.12.2014 16:50
Сообщения: 106
Uspenskiy писал(а):
Я подобное решал бы макросом

Сначала вставил бы так
... IIF(Sex='м', 'ывыазхщавапкуЖенйцяссыауп', 'Жен') ...
Затем макросом заменил бы ывыазхщавапкуЖенйцяссыауп на Жен и задал бы формат зачеркнутый


А как это сделать макросом в Word не подскажите?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24.01.2022 17:50 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Нашел у себя такие кусочки кода. oRange это объект Word (диапазон текста)


Вложения:
Pic1.jpg
Pic1.jpg [ 28.76 КБ | Просмотров: 10076 ]

_________________
2B OR NOT 2B = TRUE
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24.01.2022 23:36 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
helgap писал(а):
Uspenskiy писал(а):
Я подобное решал бы макросом

Сначала вставил бы так
... IIF(Sex='м', 'ывыазхщавапкуЖенйцяссыауп', 'Жен') ...
Затем макросом заменил бы ывыазхщавапкуЖенйцяссыауп на Жен и задал бы формат зачеркнутый


А как это сделать макросом в Word не подскажите?

Ivan чего то вам рассказал. Я не вникал чего там...
Могу чего то сказать и я.

Word при открытии документа всегда выполняет макрос с именем AutoOpen.
Вы в своем шаблоне создаете макрос с таким именем.
Что касается текста макроса, то я начинал с того что пользовался функцией Сервис -> Макрос -> Начать запись (это в 2003 ворде так)
и выполнял те действия какие мне нужны. затем открывал созданный Word-ом макрос, смотрел, думал, дорабатывал его...
У меня на вскидку получился такой
Код:
Sub Макрос12()
'
' Макрос12 Макрос
' Макрос записан 24.01.2022 Успенский
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "ывыазхщавапкуЖенйцяссыауп"
        .Replacement.Text = "Жен"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "Жен"
        .Replacement.Text = "Жен"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    With Selection.Font
        .Name = "Trebuchet MS"
        .Size = 11
        .Bold = False
        .Italic = False
        .Underline = wdUnderlineNone
        .UnderlineColor = wdColorAutomatic
        .StrikeThrough = True
        .DoubleStrikeThrough = False
        .Outline = False
        .Emboss = False
        .Shadow = False
        .Hidden = False
        .SmallCaps = False
        .AllCaps = False
        .Color = 7822411
        .Engrave = False
        .Superscript = False
        .Subscript = False
        .Spacing = 0
        .Scaling = 100
        .Position = 0
        .Kerning = 0
        .Animation = wdAnimationNone
    End With
End Sub

Осталось выкинуть из него лишнее или добавить НЕлишнее (я много чего фантазировал). Тут книжки по VBA вам в помощь.

P.S.
Макрос AutoOpen будет выполняться два раза.
Первый раз когда программа откроет шаблон что бы обработать закладки. Затем она сохранит документ
И второй раз когда программа откроет созданный документ что бы его Вам показать или распечатать.
Это впрочем можно обойти


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB