Авторизация на сайте vba excel

Функция ConnectServer предназначена для автоматизации авторизации на сайте, выполняемой путем заполнения полей с логином и паролем, и нажатием кнопки «Отправить» (т.н. «форма входа на сайт»)

Если вам требуется готовое решение для авторизации на сайте из Excel, — посмотрите надстройку Парсер сайтов
Там можно настроить авторизацию в пару действий, без единой строки кода

Пример использования функции:

Public Const URL_Login = "http://www.mysite.ru/private/login.php"    ' страница входа
Public Const URL_LoginOK = "http://www.mysite.ru/private/"    ' сюда попадем, если вход удался
Public Const URL_main = "http://www.mysite.ru/documents/add.php"    ' а эта страница сайта нам нужна для работы

Sub ПримерИспользования_ConnectServer()
    ' Dim IE As SHDocVw.InternetExplorer, IEdoc As HTMLDocument
    On Error Resume Next
    Set IE = ConnectServer    ' авторизуемся на сервере

    Set IEdoc = IE.Document    ' получаем ссылку на документ

    ' заполняем поля на сайте
    SetSelectElementValue IEdoc, "region", Город
    SetSelectElementValue IEdoc, "district", Район
    SetInputElementValue IEdoc, "body", Comment
 
    ' отправляем данные на сервер
    IEdoc.getElementsByName("add_form").Item(0).submit
 
    IE.Quit ' закрываем браузер
End Sub

Код функции ConnectServer:

Function ConnectServer() As Object
    ' функция предназначена для авторизации на сайтах
    ' (ввод логина и пароля через веб-интерфейс)
    ' Возвращает объект типа InternetExplorer с загруженной страницей сайта, где мы авторизовались
    ' НЕНУЖНЫЕ СТРОКИ КОДА ЗАКОММЕНТИРОВАНЫ

    Login$ = "admin": Password$ = "password"    ' укажите здесь логин и пароль для сайта
    On Error Resume Next: Err.Clear
    ' Dim pi As New ProgressIndicator
    ' pi.Show "Отправка объявлений на сайт риэлторского агенства..."
    ' pi.StartNewAction 5, 10, "Установка соединения с сервером ..."
    Set IE = CreateObject("InternetExplorer.Application")
    ' IE.Visible = True ' для тестирования
    
    ' pi.StartNewAction 10, 50, "Загрузка страницы авторизации ...", , , 10
    IE.Navigate URL_Login
    ' ждём, пока страница загрузиться
    '    t = Timer: While IE.Busy Or (IE.ReadyState <> 4)
    '        DoEvents: If Timer - t > 0.1 Then pi.SubAction: t = Timer
    '    Wend: DoEvents
    While IE.Busy Or (IE.ReadyState <> 4): DoEvents: Wend
 
    ' pi.StartNewAction 50, 80, "Авторизация на сервере...", , , 15
    
    Set IEdoc = IE.Document: DoEvents: DoEvents
 
    ' заполняем поля с логином и паролем
    IEdoc.getElementsByName("login_r").Item(0).Value = Login$
    IEdoc.getElementsByName("passwd_r").Item(0).Value = Password$
    ' и отправляем данные формы на сервер
    IEdoc.getElementsByName("login_form").Item(0).submit
 
    If Err Then MsgBox "Не удаётся загрузить страницу", vbCritical: End
    ' ждём, пока страница загрузиться
    '    t = Timer: While IE.Busy Or (IE.ReadyState <> 4)
    '        DoEvents: If Timer - t > 0.1 Then pi.SubAction: t = Timer
    '    Wend
    While IE.Busy Or (IE.ReadyState <> 4): DoEvents: Wend
 
    If IE.LocationURL <> URL_LoginOK Then
        MsgBox "Логин или пароль неверны!", vbCritical, "Ошибка авторизации": pi.Hide: End
    End If
 
    ' pi.StartNewAction 80, 100, "Загрузка страницы отправки объявлений ...", , , 10
    IE.Navigate URL_main
    ' ждём, пока страница загрузиться
    '    t = Timer: While IE.Busy Or (IE.ReadyState <> 4)
    '        DoEvents: If Timer - t > 0.1 Then pi.SubAction: t = Timer
    '    Wend
    While IE.Busy Or (IE.ReadyState <> 4): DoEvents: Wend
 
    Set ConnectServer = IE
    ' pi.Hide
End Function
Авторизация в Excel на VBA: создание формы, написание программного кода, особенности реализации.

В этой статье я расскажу вам о создании формы авторизации в Excel с помощью VBA.

Что же представляет из себя авторизация в Excel? Это форма, то есть окно, с запросом ввода логина и пароля, при успешном вводе которых, пользователю будут открываться различные листы документа, в зависимости от группы доступа пользователя. Точно также, помимо открытия листов, можно будет выставить ограничения на действия в Excel: запрет форматирования ячеек, удаление строк, столбцов, использование фильтров, объектов, сценариев и так далее. Но обо всем по порядку.

Авторизация в Excel: основной алгоритм работы

Для начала, необходимо разработать алгоритм, по которому мы будем работать, и выглядеть он будет примерно так:

Авторизация на VBA: алгоритмИтак, поехали!

Авторизация в Excel: макет документа

Наш рабочий документ будет состоять из четырех листов:

  1. Лист с приветствием — единственный лист, который будет отображаться всем пользователям до авторизации
  2. Лист с дашбордом (визуализированным отчетом) — графики, диаграммы/гистограммы — изначально со свойством VeryHidden*
  3. Лист с данными — источник расчетов для дашборда  — изначально со свойством VeryHidden
  4. Служебный/технический лист — для хранения логинов, паролей и служебной и вспомогательной информации  — также, со свойством VeryHidden

*VeryHidden— свойство листа, при котором сам лист скрыт и включить его отображение можно только через использование режима разработчика. Для выбора данного свойства, необходимо в Excel зайти в меню «Разработчик» — «Visual Basic». Далее, необходимо выбрать нужный нам лист и в его свойствах («Properties») найти свойство Visible и установить в «2 — xlSheetVeryHidden».

Авторизация на VBA: свойство VeryHiddenПосле этого лист станет «очень скрытым». Отменить свойство VeryHidden можно точно так же через режим разработчика, либо используя необходимый нам макрос, о котором я напишу чуть дальше.

Авторизация в Excel: группы доступа

После создания макета документа, нам необходимо разработать несколько групп доступа и распределить и ограничить для них права. Предположим, что таких групп будет три:

  1. Администраторы (Admin): доступны все листы , в том числе служебный, а также отсутствуют какие-либо ограничения.
  2. Руководители и ответственные за данные (Head): доступны 2 рабочих листа + стоит пароль на изменение структуры книги.
  3. Рядовые сотрудники компании (Worker): доступен только 1 рабочий лист с дашбордом + стоит пароль на изменение структуры книги.
Авторизация в Excel: разработка макета формы

С этим пунктом не должно возникнуть никаких проблем. Элементов на форме авторизации должно быть не так уж и много:

  • Поле ввода для логина
  • Поле ввода для пароля
  • Кнопка «Авторизация» (проверка логина и пароля)
  • Различные подписи на форме
  • По желанию: кнопка закрытия формы, кнопка восстановления пароля, логотипы, справка и все, что душе угодно

Для тех, кто не знает, как создавать формы в VBA: нужно зайти в меню «Разработчик» — «Visual Basic», нажать правой кнопкой по нашему проекту (VBAProject Название_Файла.xlsx), затем Insert — UserForm. Создается форма с названием UserForm1, на которой мы и будем размещать все наши объекты с помощью меню «ToolBox».

Если быстро набросать элементы, которые мы перечислили, должно получиться что-то вроде этого:

Авторизация на VBA: форма авторизации

После добавления элементов, поменял их стандартные названия:

«UserForm1» переименовал в «Authorization».
«TextBox1» переименовал в «TextBox_Login».
«TextBox2» переименовал в «TextBox_Pass». 

Также, в свойствах «TextBox_Pass», мы находим свойство «PasswordChar» и вводим любой символ, который мы хотим видеть вместо вводимых символов пароля — чаще всего используется символ «*».

Ничего лишнего, пока что все просто. Переходим далее.

Подготовка служебного листа

В моем примере, служебный лист будет содержать список логинов, паролей, а также соответствующую логину группу доступа. Чтобы немного «усложнить» потенциальный взлом (хотя надо понимать, что взломать Excel продвинутому пользователю не составит никакого труда), пароли на листе мы будем хранить в захешированном виде. Подробнее о хешировании можно прочитать на Википедии, но в вкратце — это преобразование данных в строку фиксированной длины, состоящей из цифр и букв с помощью определенных математических алгоритмов. О том, как мы будем хешировать пароли в Excel, я расскажу далее.

Итак, для начала, содержимое служебного листа будет выглядеть вот так:

Авторизация на VBA: служебный лист

Авторизация в Excel: особенности и написание программного кода на VBA

Данные пункты тесно взаимосвязаны между собой, поэтому я их объединил в один большой. Здесь мы будем писать программный код для всего нашего файла: как для формы, так и для некоторых событий.

Для начала, мы напишем код, который будет отображать различные листы в зависимости от роли пользователя после авторизации. Макрос user_group мы делаем приватным и вписывать его будем не в отдельный модуль, а в нашу готовую форму Authorization. Аргументом для макроса является переменная X, которая будет содержать название группы доступа в виде текстовой строки String:

Private Sub user_group(ByVal X As String)
Dim Sht As Worksheet 'создаем переменную типа Рабочий Лист

ActiveWorkbook.Unprotect "112" 'Снимаем защиту структуры книги паролем

For Each Sht In ThisWorkbook.Sheets 'перебираем все листы книги
    If (X = "Admin") Then Sht.Visible = -xlSheetVisible 'если роль Admin - каждый лист будет видимый
    If (X = "Head") And (Sht.Name <> "Settings") Then Sht.Visible = -xlSheetVisible 'если роль Head - видны все, кроме Settings
    If (X = "Worker") And (Sht.Name = "Dashboard") Then Sht.Visible = -xlSheetVisible 'если роль Worker - виден только Dashboard
Next Sht

'если роль либо Head, либо Worker - ставим защиту на структуру книги с паролем "112"
If (X = "Head") Or (X = "Worker") Then ActiveWorkbook.Protect Password:="112", Structure:=True, Windows:=False

End Sub

Хочу обратить внимание на то, что у нашего файла будет стоять «защита структуры книги» с паролем «112», т.е. пользователь не сможет создавать, удалять и переименовывать листы нашего документа. И, чтобы изменить видимость листов, необходимо сначала снять эту защиту программно, а затем, в зависимости от роли пользователя, поставить обратно, что мы и делаем в нашем коде.

Далее, код для кнопки «Авторизация». При нажатии на данную кнопку, запускается несколько проверок:

  • Проверка полей логина и пароля заполнение: если одно из них не заполнено — выводится уведомление, выполнение макроса прекращается.
  • Проверка переменной Check: данная переменная хранит значение «некорректных» попыток входа. Ее необходимо объявить в основном модуле книги: Public check As Integer. Если данная переменная больше 3х — доступ к авторизации в текущей сессии блокируется.
  • Поиск и проверка логина на наличие на листе «Settings». Если логин найден — введенный пароль хешируется и сравнивается с хранимым хешем на соответствующей строке логина:
    • Если все корректно — запускается макрос User_Group, который открывает доступ к листам в зависимости от группы доступа, соответствующей логину.
    • Если данные некорректные — пользователь предупреждается об этом, а также наращивается счетчик некорректных попыток авторизации.
  • В оставшемся случае (все введено, но пользователь с таким логином не найден), пользователь также уведомляется.
Private Sub CommandButton1_Click()
If (TextBox_Login = "") Or (TextBox_Pass = "") Then 'предупреждение на заполнение полей логина/пароля
    MsgBox "Не введен логин или пароль!", vbInformation + vbOKOnly, "Внимание!"
    Exit Sub
End If

If (check > 3) Then 'проверка на количество паролей, введенных некорректно
    MsgBox "Вы ввели неверный пароль больше трех раз. Доступ к файлу заблокирован!", vbCritical + vbOKOnly, "Внимание"
    Exit Sub
End If

LastRow = Sheets("Settings").Cells(Rows.Count, 1).End(xlUp).Row 'проверка списка логинов
For i = 2 To LastRow
    If TextBox_Login = Sheets("Settings").Cells(i, 1) Then 'если логин найден
        If Sheets("Settings").Cells(i, 2) = GetHash(TextBox_Pass.Value) Then 'пароль хешируется и сравнивается с хранимым хешем
            user_group Sheets("Settings").Cells(i, 3).Value 'и если все ок - запускается макрос разграничения групп доступа
            Unload Authorization
            Exit Sub
        Else 'в противном случае - уведомление о неправильном пароле
            MsgBox "Неверный пароль", vbCritical + vbOKOnly, "Внимание!"
            check = check + 1 'также наращивается счетчик неправильных паролей
            Exit Sub
        End If
    End If
Next i

'в оставшемся случае - уведомления о несуществующем логине.
MsgBox "Пользователя с данным логином не существует.", vbInformation + vbOKOnly, "Внимание!"

End Sub

В макросе CommandButton1_Click используется функция GetHash (строка 15), которая преобразует входящие данные в хеш. Данная функция взята с сайта ExcelVba.ru, за что выражаю им огромную благодарность. Код необходимо вставить в главный модуль книги:

Function GetHash(ByVal txt$) As String
    Dim oUTF8, oMD5, abyt, i&, k&, hi&, lo&, chHi$, chLo$
    Set oUTF8 = CreateObject("System.Text.UTF8Encoding")
    Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
    abyt = oMD5.ComputeHash_2(oUTF8.GetBytes_4(txt$))
    For i = 1 To LenB(abyt)
        k = AscB(MidB(abyt, i, 1))
        lo = k Mod 16: hi = (k - lo) / 16
        If hi > 9 Then chHi = Chr(Asc("a") + hi - 10) Else chHi = Chr(Asc("0") + hi)
        If lo > 9 Then chLo = Chr(Asc("a") + lo - 10) Else chLo = Chr(Asc("0") + lo)
        GetHash = GetHash & chHi & chLo
    Next
    Set oUTF8 = Nothing: Set oMD5 = Nothing
End Function

Основной код написан, теперь переходим к более мелким.

Макрос, который запускает форму авторизации (можно установить на кнопку на главном листе «Main»):

Sub Authorization_Start()
    Authorization.Show
End Sub

Также, макрос можно использовать при событии «Open» — при открытии книги:

Private Sub Workbook_Open()
    Authorization_Start
End Sub

Стоит отметить, что у большинства пользователей запуск макросов по умолчанию отключен, именно поэтому на главном листе Main необходимо сделать что-то вроде «памятки» со справочной информацией о том, как активировать работу макросов.

Макрос для закрытия книги.

При закрытии книги, нам нужно снять защиту со структуры книги, затем скрыть все листы (кроме листа «Main»), а затем снова вернуть защиту структуры книги с паролем «112» (можно установить на какую-либо кнопку):

Sub close_book()
Dim Sht As Worksheet
ActiveWorkbook.Unprotect "112"
For Each Sht In ThisWorkbook.Sheets
    If Sht.Name <> "Main" Then Sht.Visible = xlSheetVeryHidden
Next Sht
ActiveWorkbook.Protect Password:="112", Structure:=True, Windows:=False
End Sub

Да, данный макрос можно использовать при событии «BeforeClose» — перед закрытием книги. Однако, может возникнуть несколько проблем:

  • Если пользователь сохраняется вручную до закрытия документа, закрывает документ,  а затем при автоматическом запросе о сохранении нажимает «не сохранять». В таком случае, при новом запуске документа, скрытые листы будут видны всем. Да, вероятность такого события крайне мала, но она все-таки есть.
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        close_book
    End Sub
  • Если добавим принудительное сохранение после скрытия всех листов, перед окончательным закрытием файла (как на примере ниже). В таком случае, если пользователь очень сильно ошибется с данными в файле и нажмет на крестик, чтобы начать все с нуля — файл все равно сохранится и восстановить исходные данные не получится.
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.ScreenUpdating = False
        close_book
        ThisWorkbook.Save
    End Sub

Поэтому, чтобы избежать такой ситуации, я хочу предложить более радикальный, менее удобный вариант, который, однако, сведет вышеперечисленные потенциальные проблемы к минимуму: помимо выполнения макроса close_book перед каждым закрытием книги с помощью события «BeforeClose» (как на первом проблемном варианте), мы будем выполнять его и перед каждым ручным сохранением файла с помощью события BeforeSave:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    close_book
End Sub

Осталось только сделать памятку по включению макросов на главном листе документа, а также выполнить важный шаг, без которого все наши проделанные действия не имеют смысла — поставить пароль на проект VBA: Меню «Разработчик» — «Visual Basic» — «Tools» — «VBAProject — Project Properties» — Вкладка «Protection» — поставить галочку «Lock project for viewing» и ввести пароль и нажать «Ок».

Авторизация на VBA: защита проекта

Сохраняем файл в формате «.xlsb» или «.xlsm» и все, наша «Авторизация на VBA» готова. Помимо этого, можно защитить проект еще сильнее — о способах защиты написано моей отдельной статье.

Также, по желанию, мы можем сделать отдельную форму для администраторов, для добавления новых пользователей на лист «Settings», либо форму для восстановления пароля по какому-либо ключевому слову, но в данном примере такие функции мы реализовывать не будем.

Думаю для здешних профи вопрос очень простой, но для меня есть сложности. Нашел код на просторах для авторизации на сайте, логин и пароль вроде подхватывает а вот как привязать в «клик на сайте войти»  и прописать это в моем коде не знаю
мой код(точнее найденный):

Код
  Private Sub Test()
   
    Set objIE = CreateObject("InternetExplorer.Application")
    With objIE
        .Visible = True
        .navigate "https://mob.della.by/login/"
        Do While .Busy Or _
           .readyState <> 4
            DoEvents
        Loop
        Set Login1_UserName = .document.getElementById("Login")
        Login1_UserName.Value = "brestkufar+11@yandex.by"
        Set Login1_Password = .document.getElementById("Password")
        Login1_Password.Value = "12345678"
        Set LoginButton = .document.getElementById("ctl00_cButton") 'вот в этих двух строчках и 
        LoginButton.Click                                           ' и не знаю что прописать с привязкой к исходному коду страницы авторизации                       
        Do While .Busy Or _
           .readyState <> 4
            DoEvents
        Loop
    End With
    Set objIE = Nothing
End Sub


ниже кусок исходного кода страницы для авторизации( надеюсь этого куска хватит что бы разобраться):
либо мойжно зайти по адресу https://mob.della.by/login/ и посмотеть в исходном коде кому нужно что

  td><div id='vseya'>
<div class="bottomDots enter" id='headerLogin'>Вход в систему</div>
<div id='controls' class="bottomDots">
<form id='logForm' method="POST" action="/login/?key=1644507927320">
<div class="login">Логин:</div>
<input class="pwd" type="text" name="login" id="login" value="">
<div class="login pwd">Пароль:</div>
<input class="pwd" type="password" name="password" id="password">
<div class="enterBtn">
<input class="button" type="submit" value="Войти">
</div>
<input type="hidden" name="login_mode" value="enter">
<input type="hidden" name="isMobile" value="1">
</form>
<span id="errorMes"></span>
</div>
<div id='napomnit' class="bottomDots">
<span class="forget">


Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Добрый день! Помогите пожалуйста нубу в таком вопросе:
«Есть файл эксель в нем в одном столбце А расположено множество логинов, во втором столбце В расположено множество паролей(пароли и логины между собой соответственно совпадают). Необходимо путем VBA средств выйти на сайт в личный кабинет и залогинистя под учетной записью, которая находится в 1 строке (А1 — логин, В1 — пароль), потом выйти из личного кабинета и так далее, зайти на этом же сайте под логином и паролем из второй строки, и т.д. В интернете нашел вот такой вот способ решения задачи. Возможно данный код может как нибудь возможно реализовать методом цикла. Помогите его доработать пожалуйста! Заранее всем откликнувшимся огромная благодарность!
[vba]

Код

Private Sub Начать_Click()

         Dim objShellApp As Object

Set objShellApp = CreateObject(«Shell.Application»)
objShellApp.ShellExecute «C:Program Files (x86)GoogleChromeApplicationchrome.exe», «https://mysyte.ru/desktop/», «», «», 3

      Application.Wait Time:=Now + TimeValue(«0:00:20»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «11111»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «aaaaa»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{ENTER}»
Application.Wait Time:=Now + TimeValue(«0:00:20»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{ENTER}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{TAB}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
SendKeys «{ENTER}»
Application.Wait Time:=Now + TimeValue(«0:00:02»)
MsgBox «Операция выполнена!»

                     End Sub

[/vba]

PS. Это не взлом! Просто у нас в организации идиотская политика рейтингов. Нужно показывать активность пользования личными кабинетами на нашем официальном сайте. Каждый день сидим с сотрудниками и заходим в личные кабинеты и выходим как бы это смешно не звучало. Вот хотелось бы автоматизировать данный процесс. А почему в эксель? Все потому что в файле эксель уже лежат логины и пароли к личным кабинетам, которые мы сами же и создавали.

Connect and login to a website using a macro in Excel.

This allows you to open a website and automatically login without having to do anything yourself; just run the VBA macro code from Excel.

Sections:

The Macro

Use the Macro

Notes

The Macro

Sub ExcelWebsiteLogin()
'TeachExcel.com macro to login to a website.

Dim ie      As Object
Dim frm     As Variant
Dim element As Variant


'Requires Microsoft Internet Controls to be activated. Tools > References > Microsoft Internet Controls
Set ie = New InternetExplorerMedium

'website page where the login form is located
ie.navigate "https://www.teachexcel.com/"

While ie.readyState <> 4: DoEvents: Wend

'ID of the login form
Set frm = ie.document.getElementById("login_form")

'Name of the form, if there is no ID for it.
If frm Is Nothing Then Set frm = ie.document.getElementsByName("login_form").Item(0)


If frm Is Nothing Then
   'Form not found.
   
   'Error message if the form was not found
   MsgBox "Login form not found."
   
   'Kill the internet explorer instance
   ie.Quit
   Set ie = Nothing

Else
   'Form found, proceed to fill it out and then submit it.
   
   'Display the browser
   ie.Visible = True

   'Go through elements in the browser
   For Each element In frm.elements
   
      On Error Resume Next
      
      'Input values into the form fields in the browser
      Select Case element.Name
         'username
         Case "email": element.Value = "email@gmail.com"
         'password
         Case "password": element.Value = "password"
      End Select
      
   Next

   'submit the form
   frm.submit

End If

End Sub

Use the Macro

Where to Install: Module

Enable Microsoft Internet Controls

This macro requires Microsoft Internet Controls to be enabled.

In the VBA Editor window (Alt+F11) go to Tools > References > Check next to Microsoft Internet Controls and hit OK.

Website to Visit

ie.navigate "https://www.teachexcel.com/"

Change https://www.teachexcel.com/ to the desired website.

Username and Password

'username
Case "email": element.Value = "email@gmail.com"
'password 
Case "password": element.Value = "password"

Change email@gmail.com to the correct username or email address for login.

Change password to the correct password to login.

In this example, the username and password are hard-coded into the macro. You can replace this with any number of methods to get the values. You could use a pop-up window to get the values, get values from the spreadsheet, or any number of other ways.

Notes

It is NOT advisable to store passwords anywhere where somenoe else can see them or access them and the last thing you want is to store a password in an Excel workbook and forget that it is there and then send it out to someone who shouldn’t have it.

The password and username in this example are just for show and will not actually log you into any website.

You can store a password in a macro and then password protect that macro, here is a tutorial on that from us: Password Protect Excel VBA Macros. However, you should not consider this method secure if you send your workbook to another computer because there are methods for getting the data from a secured macro.


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Put Data into a Worksheet using a Macro in Excel

Tutorial: How to input data into cells in a worksheet from a macro.
Once you have data in your macro…

Activate or Navigate to a Worksheet using Macros VBA in Excel

Tutorial: Make a particular worksheet visible using a macro in Excel.
This is called activating a wo…

Pass Values from One Macro to Another Macro

Tutorial:
How to pass variables and values to macros. This allows you to get a result from one macr…

Use Macros with UserForms

Tutorial: This tutorial explains how macros interact with UserForms.
This includes an explanation of…

Automatically Lock Certain Cells in Excel using a Macro

Tutorial: This macro allows you to have a cell automatically locked after a user enters something in…

How to Install the Macro

  1. Select and copy the text from within the grey box above.
  2. Open the Microsoft Excel file in which you would like the Macro to function.
  3. Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
     Or For other ways to get there, Click Here.
  4. On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
  5. If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
  6. If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
  7. If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
  8. Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
  9. You are now ready to run the macro.

Понравилась статья? Поделить с друзьями:
  • Авторизация в excel файле
  • Автореферат в word это
  • Автореферат в word как
  • Авторасширение ячейки excel по ширине
  • Авторасширение ячейки excel по высоте