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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 13:57   #1
user100
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 11
По умолчанию Макрос для word типа punto switcher

Вот собсна код:
Код:
Dim A As String
Dim B As String
Dim C As String
Dim D As String
Dim i As Integer
Dim j As Integer
A = "ё1234567890-=йцукенгшщзхъфывапролджэ\ячсмитьбю. Ё!@№;%:?*()_+ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖ/ЯЧСМИТЬБЮ,"
B = "`1234567890-=qwertyuiop[]asdfghjkl;'\zxcvbnm,./ ~!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:|ZXCVBNM<>?"
C = Selection.Text
For i = 1 To Len(C)
   For j = 1 To Len(A)
     If Mid$(A, j, 1) = Mid$(C, i, 1) Then D = D + Mid$(B, j, 1)
   Next
Next
Selection.Text = D
Поясните вот эти строчки кода, пожалуйста, т.е объясните, что делает программа:
Код:
C = Selection.Text
For i = 1 To Len(C)
   For j = 1 To Len(A)
     If Mid$(A, j, 1) = Mid$(C, i, 1) Then D = D + Mid$(B, j, 1)
   Next
Next
Selection.Text = D
user100 вне форума Ответить с цитированием
Старый 20.04.2011, 17:26   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Код:
C = Selection.Text   ' взять выделенный текст
For i = 1 To Len(C) 'пройтись циклом по всей его длине
   For j = 1 To Len(A) 'а теперь проходим по строке А, и если
     If Mid$(A, j, 1) = Mid$(C, i, 1) 'символ в строке А позиция j совпадает с символом строки C в позиции i, то
      Then D = D + Mid$(B, j, 1) 'строку D конкатенируем с символом той же позиции, но из строки B
   Next
Next
Selection.Text = D 'ну и меняем выделенный текст на то что получили
вроде постарался максимально понятно, вот еще примерчик
строка "ку", берем сначала первый символ "к", ищем в какой позиции он находится в строке A (получаем 17), в строку d (изначально пустую) добавляем символ из 17 позиции строки B ("r"),
аналогично со вторым символом ("у");
в итоге в D получим "re"
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
для работы написать макрос для Excel и Word.... smanna Microsoft Office Excel 2 30.11.2010 12:43
Макрос для импорта или копирования из Word barbus Microsoft Office Excel 4 08.05.2010 21:46
-> макрос для Word на Visual Basic NewFire Microsoft Office Word 11 08.07.2009 11:46
Как нарисовать картинку сбоку в меню как в Punto Switcher Crazyman Win Api 4 26.09.2008 18:13
Нужно написать макрос для Word. Hoomer Фриланс 2 24.09.2008 12:19