1

Тема: автоматическое форматирование при копипасте

Наверное тупой вопрос.... но я не нашел
есть текст типо

2

Re: автоматическое форматирование при копипасте

Наверное тупой вопрос.... но я не нашел
есть текст типо "логин:пароль:мыло"
когда вставляю в ворд 2016 нужно что бы формат был "логин : пароль : мыло"
возможно как то сделать? нашел только авто форматирование при написании вручную, но на контрл с+контрл в оно не работает

3

Re: автоматическое форматирование при копипасте

denm92 пишет:

Наверное тупой вопрос.... но я не нашел
есть текст типо "логин:пароль:мыло"
когда вставляю в ворд 2016 нужно что бы формат был "логин : пароль : мыло"

А если попробовать заменить ":" на " : "? просматривая каждую замену, чтобы не заменить там, где не надо...

4

Re: автоматическое форматирование при копипасте

denm92 пишет:

Наверное тупой вопрос.... но я не нашел
есть текст типо "логин:пароль:мыло"
когда вставляю в ворд 2016 нужно что бы формат был "логин : пароль : мыло"
возможно как то сделать? нашел только авто форматирование при написании вручную, но на контрл с+контрл в оно не работает

Я не помню, но возможно в ворде есть событие вставки.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

5

Re: автоматическое форматирование при копипасте

Fck_This пишет:

Я не помню, но возможно в ворде есть событие вставки.

А что такое "событие вставки"? Разве такое в Ворде есть?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

6

Re: автоматическое форматирование при копипасте

Fck_This пишет:

. . .
Я не помню, но возможно в ворде есть событие вставки.
. . .

События вставки нет, но есть событие объекта Application (т.е. объекта, представляющего приложение Word): WindowSelectionChange.
Это событие можно обработать, предварительно создав модуль класса и связав его с приложением.
Подробнее
внешняя ссылка
внешняя ссылка
Вместе с тем, процедуре обработки WindowSelectionChange передается весь Selection, поэтому не очень понятно, как можно это было бы использовать для выделения того, что было вставлено.

Если вы хотите, чтобы текст, ранее скопированный в буфер Windows, вставлялся бы с добавлением пробелов вокруг двоеточия, то вам надо решиться на замену вызова системного макроса Word вашим вариантом:
1. Пишете свой вариант макроса EditPaste
2. Вставляете его в модуль Normal.dotm
Тогда каждый раз при нажатии Ctrl+V будет вызываться ваш код.
Вот например, каким может быть вариант этого макроса для вашего случая (в макросе извлекается текст из буфера, проводится замена ":" на " : " и вставляется про месту курсора или текущего выделения):

Sub EditPaste()
   Dim DataObj As MSForms.DataObject
   Dim MyString As String
   Set DataObj = New MSForms.DataObject 
   MyString = ""
   On Error Resume Next
   DataObj.GetFromClipboard
   MyString = DataObj.GetText(1)
   On Error GoTo 0
   If MyString <> "" Then
        'Replacing ":" with " : "
        MyString = Replace(MyString, ":", " : ")
        Selection.Text = MyString
   End If
End Sub

Возможно, понадобится в VBA-проекте подключить ссылку на MicrosoftForms 2.0 Object Library.