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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 10:49   #11
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
398 - прописная буква, 3B8 - строчная буква
А как перевести? Т.е. я выделяю какой-то символ в окне, он мне показывает код, как мне его перевести в код для макроса? Ну Вы поняли =)

Казанский, спасибо за макрос, сегодня опробую и отпишусь.
Sasha_Smirnov, спасибо за ссылку, тоже ознакомлюсь и отпишусь.
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 07.06.2011, 14:30   #12
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
я выделяю какой-то символ в окне, он мне показывает код, как мне его перевести в код для макроса?
Посмотрел сейчас - и таблица символов Офис 2007, и системная таблица символов ХР показывает код юникода в шестнадцатиричном (HEX) виде. Поэтому дописывайте впереди &H, см. посты от 05.06.2011 19:45, от 05.06.2011, 22:53.
Десятичный код вводится без префикса. ChrW(&h398) это то же, что Chrw(920).
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 08.06.2011, 21:45   #14
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Как скопировать decimal unicode из инпутбокса

Код:
Sub code_show()
InputBox Left(Selection, 1), "Юникод символа ", AscW(Selection)
End Sub
Курсор при этом должен стоять перед «раскодируемым» символом.
Изображения
Тип файла: png uni.png (3.4 Кб, 77 просмотров)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 09.06.2011, 00:11   #15
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Опробовал. Результаты печальные. Пробовал так:

Код:
Sub Пример1()

With Selection
    .HomeKey Unit:=wdStory
    .Find.ClearFormatting
    With .Find
        .Text = "бла бла бла"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
    End With
    .Find.Execute
    Do
        .MoveUp Unit:=wdLine, Count:=13, Extend:=wdExtend
        .ParagraphFormat.Alignment = wdAlignParagraphLeft
        .Find.Execute
    Loop Until .Text = vbCr
End With
    
End Sub
так (Изменил Loop):

Код:
Sub Пример2()

With Selection
    .HomeKey Unit:=wdStory
    .Find.ClearFormatting
    With .Find
        .Text = "бла бла бла"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
    End With
    .Find.Execute
    Do
        .MoveUp Unit:=wdLine, Count:=13, Extend:=wdExtend
        .ParagraphFormat.Alignment = wdAlignParagraphLeft
        .Find.Execute
    Loop Until Not .Find.Found
End With
    
End Sub
и так:
Код:
Sub Пример3()

    
    Selection.HomeKey wdStory
    
    With Selection.Find
        Do
            .Text = "бла бла бла"
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = True
            .Execute
            Selection.MoveUp Unit:=wdLine, Count:=13, Extend:=wdExtend
            Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
        Loop Until Not .Found
    End With
    

End Sub
Все 3 варианта привели к бесконечному зацикливанию на первом найденном слове бла бла бла. Пришлось вырубать ворд через контр+альт+делит. Word 2010.
Мужики, выручайте. Что не так делаю?
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 09.06.2011, 00:55   #16
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Код:
Sub code_show()
InputBox Left(Selection, 1), "Юникод символа ", AscW(Selection)
End Sub
Курсор при этом должен стоять перед «раскодируемым» символом.
Большое спасибо! Работает. А как получить код не юникода, а вот такого символа?:

С ним так не прокатывает почему-то. Пробовал AscW менять на Asc - тоже не помогло.
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 09.06.2011, 03:12   #17
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Может, поможет...

Да в общем-то так же.
Код:
Sub Макрос3()
Dim FontName$
FontName$ = Selection.Font.Name    'запомнили шрифт в точке ввода
    Selection.Font.Name = "Symbol" 'установили (там же) шрифт Symbol
    Selection.TypeText Text:=ChrW(-3975)        'соответствует нажатию Y (буква пси)
Selection.Font.Name = FontName$     'вернули шрифт по умолчанию
End Sub
Изображения
Тип файла: png пси.png (20.1 Кб, 81 просмотров)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 09.06.2011, 11:14   #18
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от Polotenchik Посмотреть сообщение
Все 3 варианта привели к бесконечному зацикливанию на первом найденном слове бла бла бла...
Доработал вариант ув. Смирнова:
Код:
Sub Пример3()

Dim r As Range
    Selection.HomeKey wdStory
    
    With Selection.Find
        Do
            .Text = "бла бла бла"
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = True
            .Execute
            If Not .Found Then Exit Do
            Set r = Selection.Range
            Selection.MoveUp Unit:=wdLine, Count:=13, Extend:=wdExtend
            Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
            r.Select
            Selection.Collapse wdCollapseEnd
        Loop
    End With

End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 10.06.2011, 01:42   #19
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Казанский, Sasha_Smirnov, большое вам спасибо!
Казанский, макрос превосходный

Sasha_Smirnov, хм. я этот же номер определил, но как мне его вставить? Код:

Код:
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "бла бла бла"
        .Font.Name = "Symbol"
        .Replacement.Text = "бла бла бла (" & ChrW(-3975) & "F)"
        .Forward = False
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
вставляет квадратик с вопросиком. Я так понимаю надо как-то подрубить Selection.Font.Name = "Symbol" ? Пробовал, но не получилось.
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 11.06.2011, 11:02   #20
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Пробовал. Минут 40. И... вот что вышло.
Код:
Sub Макрос2()
Dim FontID: FontID = Selection.Font.Name    'запомнили шрифт в точке ввода
Selection.HomeKey wdStory                   'здесь курсор становится на начало текста
    With Selection.Find
        Do
            .Text = "бла бла бла"
            .Wrap = wdFindStop
            .Execute 'здесь (если по F8 пошагово выполнять) выделено очередное бла бла бла
                If .Found Then
                Selection.Collapse direction:=wdCollapseEnd 'выделение сбросили...
                Selection.TypeText " ("                     '...и затем печатаем
                Selection.Font.Name = "Symbol"
                Selection.TypeText ChrW(-3975)              'печать малой греческой пси
                Selection.Font.Name = FontID
                Selection.TypeText "F)"                     'печать всего прочего
                End If
        Loop Until Not .Found
    End With
End Sub
Изображения
Тип файла: jpg someresult.jpg (49.1 Кб, 102 просмотров)
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос поиска Pecnekm Microsoft Office Excel 19 05.07.2012 08:46
Макрос поиска в MO Word! auqarius Microsoft Office Word 5 18.04.2011 02:20
макрос поиска Kraimon Microsoft Office Excel 9 15.02.2011 21:32
макрос поиска в таблицы Chubbakka Microsoft Office Excel 17 29.12.2010 01:42
[Макрос] поиск по всему документу с набором действий Polotenchik Microsoft Office Word 4 03.04.2010 07:50