Программирование на VBA.Создание макроса для Excel

Тема в разделе "Софт и инструменты", создана пользователем CLAY, 17 апр 2017.

  1. CLAY

    CLAY Member

    Сообщения:
    419
    Симпатии:
    5
    В наши дни мы не редко забываем переключать раскладку клавиатуры во время набора текста, что в дальнейшем введет к трате времени на повторное редактирование текста. Так вот в этом уроке вы узнаете, как создать полезный макрос для Excel, который будет переводить текст из латиницы в кириллицу и наоборот! Так как MS Office в качестве языка для программирования макросов использует Visual Basic 6, то прежде приступить к изучению данной статьи следует прочитать предыдущую её часть. В дальнейшем после понимания принципа работы в Visual Basic, вы сможете придумывать и программировать свои собственные программы и макросы для MS Office. И так давайте приступим к написанию данного макроса.

    1.Открытие редактора и создание модуля.

    Для начала зайдём в Excel, и откроем редактор Visual Basic 6.

    Создадим новый модуль:Insert-gt;Module

    Введём процедуры начала и конца.

    2.Ввод переменных.

    Типы данных, которые будут использоваться в нашей программе:

    String - строковый тип. Предназначен для хранения строк различной длинны. Возможная длинна строки, может, доходит до 2-х миллионов символов кодировки Unicode. Объем памяти для хранения переменной выделяется в зависимости от длинны строки.

    Integer - предназначен для обработки целочисленных значений. Переменная подобного типа занимает 4 байта. Возможные значения находятся в промежутке от - 2 147 483 648 до 2 147 483 647.

    Ввод переменных:

    Где:
    aLatter – в эту переменную записывается начальное значение символа и конечное.

    theText - в эту переменную записывается выделенный фрагмент текста.

    NumChar – в эту переменную записывается количество знаков в выделенном тексте.

    NewText – в эту переменную записывается конечный результат который видит пользователь.

    i – начало отсчёта цикла.

    3.Создание цикла и Select Сase.

    Цикл в VB пишется так:

    Листинг :
    Описание

    For counter = start To end

    [statements]

    Next [counter]
    Нажмите, чтобы раскрыть...
    Где:

    Counter - числоваяпеременная. Управляющая переменная цикла.

    Start – начальное значение цикла

    End – конечное значение цикла

    Statements - одно или несколько выражений между For и Next, выполняемых указанное число раз.

    Оператор Select...Case выполняет один из блоков операторов в зависимости от значения выражения.Пример использования:

    Листинг :
    Где: testexpression - обязательныйпараметр. Выражение expressionlist - список возможных значений для testexpression. Несколько выражений разделяются запятыми.

    elsestatements - Один или несколько операторов, следующих за Case Else, которые выполняются, если testexpression не соответствует ни одному из предложений в expressionlist всех операторов Case.

    Сейчас я напишу весь код программы, затем мы постепенно его разберем.

    Листинг :
    Спойлер: Листинг
    Описание

    Sub convert_Text()

    Dim aLatter As String, theText As String, NumChar As Integer, NewText As String, i As Integer

    Dim theRow As Integer, theCol As Integer

    For Each Part In Selection

    For Each Cell In Part

    NewText = "" theText = Cell.Value

    NumChar = Len(theText)

    For i = 1 To NumChar aLatter = Mid(theText, i, 1)

    Select Case aLatter

    Case " " aLatter = " "

    Case "й" aLatter = "q"

    Case "Й" aLatter = "Q"

    Case "ц" aLatter = "w"

    Case "Ц" aLatter = "W"

    Case "у" aLatter = "e"

    Case "У" aLatter = "E"

    Case "к" aLatter = "r"

    Case "К" aLatter = "R"

    Case "е" aLatter = "t"

    Case "Е" aLatter = "T"

    Case "н" aLatter = "y"

    Case "Н" aLatter = "Y"

    Case "г" aLatter = "u"

    Case "Г" aLatter = "U"

    Case "ш" aLatter = "i"

    Case "Ш" aLatter = "I"

    Case "щ" aLatter = "o"

    Case "Щ" aLatter = "O"

    Case "з" aLatter = "p"

    Case "З" aLatter = "P"

    Case "х" aLatter = "["

    Case "Х" aLatter = "{"

    Case "ъ" aLatter = "]"

    Case "Ъ" aLatter = "}"

    Case "ф" aLatter = "a"

    Case "Ф" aLatter = "A"

    Case "ы" aLatter = "s"

    Case "Ы" aLatter = "S"

    Case "в" aLatter = "d"

    Case "В" aLatter = "D"

    Case "а" aLatter = "f"

    Case "А" aLatter = "F"

    Case "п" aLatter = "g"

    Case "П" aLatter = "G"

    Case "р" aLatter = "h"

    Case "Р" aLatter = "H"

    Case "о" aLatter = "j"

    Case "О" aLatter = "J"

    Case "л" aLatter = "k"

    Case "Л" aLatter = "K"

    Case "д" aLatter = "l"

    Case "Д" aLatter = "L"

    Case "ж" aLatter = ";"

    Case "Ж" aLatter = ":"

    Case "э" aLatter = """

    Case "Э" aLatter = Chr(34)

    Case "я" aLatter = "z"

    Case "Я" aLatter = "Z"

    Case "ч" aLatter = "x"

    Case "Ч" aLatter = "X"

    Case "с" aLatter = "c"

    Case "С" aLatter = "C"

    Case "м" aLatter = "v"

    Case "М" aLatter = "V"

    Case "и" aLatter = "b"

    Case "И" aLatter = "B"

    Case "т" aLatter = "n"

    Case "Т" aLatter = "N"

    Case "ь" aLatter = "m"

    Case "Ь" aLatter = "M"

    Case "б" aLatter = ","

    Case "Б" aLatter = "lt;"

    Case "ю" aLatter = "."

    Case "Ю" aLatter = "gt;"

    " Case "."

    " aLatter = "/"

    " Case ","

    " aLatter = "?"

    Case "q" aLatter = "й"

    Case "Q" aLatter = "Й"

    Case "w" aLatter = "ц"

    Case "W" aLatter = "Ц"

    Case "e" aLatter = "у"

    Case "E" aLatter = "У"

    Case "r" aLatter = "к"

    Case "R" aLatter = "К"

    Case "t" aLatter = "е"

    Case "T" aLatter = "Е"

    Case "y" aLatter = "н"

    Case "Y" aLatter = "Н"

    Case "u" aLatter = "г"

    Case "U" aLatter = "Г"

    Case "i" aLatter = "ш"

    Case "I" aLatter = "Ш"

    Case "o" aLatter = "щ"

    Case "O" aLatter = "Щ"

    Case "p" aLatter = "з"

    Case "P" aLatter = "З"

    Case "[" aLatter = "х"

    Case "{" aLatter = "Х"

    Case "]" aLatter = "ъ"

    Case "}" aLatter = "Ъ"

    Case "a" aLatter = "ф"

    Case "A" aLatter = "Ф"

    Case "s" aLatter = "ы"

    Case "S" aLatter = "Ы"

    Case "d" aLatter = "в"

    Case "D" aLatter = "В"

    Case "f" aLatter = "а"

    Case "F" aLatter = "А"

    Case "g" aLatter = "п"

    Case "G" aLatter = "П"

    Case "h" aLatter = "р"

    Case "H" aLatter = "Р"

    Case "j" aLatter = "о"

    Case "J" aLatter = "О"

    Case "k" aLatter = "л"

    Case "K" aLatter = "Л"

    Case "l" aLatter = "д"

    Case "L" aLatter = "Д"

    Case ";" aLatter = "ж"
    p>

Поделиться этой страницей