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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 05.12.2007, 21:42   #1
Versifikator
Пользователь
 
Регистрация: 05.12.2007
Сообщений: 23
Вопрос Шифратор на VBA

Пожалуйста помогите решить задачу!!!
Задача: Создайте макрос, который будет кодировать текст, заменяя буквы "а" в тексте указанной ячейки на произвольный символ, и выводить закодированный текст в новой ячейке. Для запуска макроса расположить кнопку.
Versifikator вне форума
Старый 06.12.2007, 08:09   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Так пойдет?

Sub Shifr()
Dim MyString As String, NewString As String
Dim i As Integer
MyString = Range("A1") 'Пусть это ячейка, содержащая текст
NewString = MyString
For i = 1 To Len(MyString)
If Mid(MyString, i, 1) = "а" Then NewString = Application.Replace(NewString, i, 1, Chr(Rnd * 30 + 225))
Next
Range("A2") = NewString 'Пусть это ячейка будет содержать новый текст
End Sub

Здесь русская "а" заменяется случайным символом из диапазона Chr(Rnd * 30 + 225). Можно установить любой другой.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 06.12.2007, 08:14   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Создай элемент управления "кнопка" на рабочем листе и в его модуле вставь либо код этого макроса, либо команду Run "Shifr" (запуск макроса из программного модуля).
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 06.12.2007, 15:53   #4
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Вот ещё предложу вариант. Тут заменяется каждая буква а (А) на произвольную.

Код:
Sub Scrambler()
Dim iRange As Range
Dim i As Long
Dim NewLetter As String
Dim OldString As String

    Set iRange = Application.InputBox("Мышкой укажите на ячейку!", "Адрес ячейки", "=A1", , , , , 8)
    OldString = iRange
    If Len(OldString) = 0 Then
        MsgBox "Ячейка: " & iRange.Address(0, 0) & " пуста!", , "Ошибка"
        Exit Sub
    End If
    For i = 1 To Len(OldString)
        If Mid(OldString, i, 1) = "а" Or Mid(OldString, i, 1) = "A" Then
            Do
                NewLetter = Int(192 + (Rnd * 63))
            Loop Until NewLetter <> 124 And NewLetter <> 192
            Mid(OldString, i, 1) = Chr(NewLetter)
        End If
    Next
    iRange.Offset(, 1) = OldString
    MsgBox "Done!"
End Sub
Pavel55 вне форума
Старый 06.12.2007, 19:17   #5
Versifikator
Пользователь
 
Регистрация: 05.12.2007
Сообщений: 23
Хорошо

Большое спасибо!
Versifikator вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шифратор файлов Kubus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 14.05.2007 23:58