Dim/Private/Public/Static - Видимость переменных и констант в VBA (Серия VBA 31)

Поділитися
Вставка
  • Опубліковано 25 жов 2019
  • Привет! В этом видеоуроке мы поговорим на тему уровней видимости переменных и констант VBA.
    В VBA, объявляя переменную или константу, мы можем определять, на каких уровнях она будет видима и доступна к использованию. Для того, чтобы разобраться в этой теме, нам понадобится точнее рассмотреть несколько пунктов.
    Первое, о чем мы поговорим - какие области/места для сохранения процедур имеются в VBA. Иначе говоря, где мы можем писать процедуры.
    Затем мы обсудим уровни видимости переменных в VBA:
    • Procedure-level scope (Локальная переменная)
    • Private module-level scope (Переменная уровня модуля закрытая)
    • Public module-level scope (Переменная уровня модуля открытая)
    В конце концов, поскольку мы до сих пор в нашем курсе VBA отдельно не рассмотрели константы, в этом видеоуроке мы наконец уделим отдельно время, чтобы быстро рассмотреть и эту тему. Мы поговорим об особенностях констант, как их объявлять и где их можно хорошо применить.
    Кроме того, мы поговорим о фразе Static.
    В любом случае, этот урок наверняка будет полезным для тебя, так что приятного просмотра и успехов в изучении VBA! :)

КОМЕНТАРІ • 23

  • @pavelkazakov6347
    @pavelkazakov6347 4 роки тому +6

    Отличный урок! Все правильно делаете.

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому +4

      Здравствуйте, Павел!
      Большое спасибо Вам за то, что всегда смотрите новые видео! :)
      С уважением и хороших Вам выходных,
      ХБ

  • @olegyes934
    @olegyes934 3 роки тому +3

    Большое спасибо за Ваш труд! Очень интересные и полезные видео!

  • @user-sc6wz7ni9v
    @user-sc6wz7ni9v 3 роки тому +2

    Билял, здраствуйте! Спасибо за видео)

  • @julidem86
    @julidem86 3 роки тому +3

    Спасибо! Смотрю и учусь!

  • @SamSambl4
    @SamSambl4 4 роки тому +3

    Спасибо за труд!

  • @user-xe9uq9kl5y
    @user-xe9uq9kl5y 2 роки тому

    Всё как всегда на высшем уровне.

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 3 роки тому

    Билял, благодарю! Интересный урок, понятно.

  • @limpopos8125
    @limpopos8125 4 роки тому +4

    Круто! Очень полезно!

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому +1

      Здравствуйте!
      Большое спасибо за Ваш комментарий, рад, что видео было для Вас полезным! 😊
      Хороших Вам выходных!
      С уважением,
      Билял

  • @krivoyBeton
    @krivoyBeton 4 роки тому +8

    Предлагаю Тему. Разбор реальных примеров. Как например видос - последняя строка в столбце, в умной таблице и т.п.
    Или к примеру с форумов примеры брать и их разбирать по шагово.

    • @krivoyBeton
      @krivoyBeton 4 роки тому +2

      и самое главное разными вариантами

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому +2

      Здравствуйте!
      Спасибо за Ваше предложение! Постараюсь применить! :)
      С уважением,
      ХБ

  • @user-xg4pd7en9d
    @user-xg4pd7en9d 2 роки тому

    Билял, спасибо за великолепный урок, обязательно возьму на вооружение!
    У меня вопрос не по теме: на фоне бурного развития других языков программирования что ты думаешь насчёт VBA и были ли мысли встроить в Excel тот же Python c возможностью добавления библиотек или С++?

  • @user-ii8tp5vy2w
    @user-ii8tp5vy2w 2 роки тому +1

    А есть возможность помимо объявления переменных с помощью оператора private, присваивать сразу переменными так же на уровне модуля значение? Например я объявила несколько листов рабочей книги, как Worksheet, а затем сразу присвоила значение каждой переменной так, чтоб в каждой процедуре переменные рабочих листов были уже присвоены?
    Заранее спасибо.

  • @KarapetyanSam
    @KarapetyanSam 4 роки тому

    Здравствуйте! Спасибо за очень полезные уроки! У меня есть вопрос.
    Возможно ли создать глобальную переменную в UserForm, чтобы она была видна в Макросе?

    • @MrVad1964
      @MrVad1964 3 роки тому

      Я сюда зашел тоже в поисках ответа, и как раз на этот вопрос!
      У меня в проекте объявлена глобальная переменная , но её значение не попадает в формы, которые без неё сразу теряют смысл. Бьюсь и никак не могу понять почему формы не видят эту переменную. Как пример:
      Public N As Integer
      ___________________________________ ___________________________________ ______________
      Public Sub First() 'модуль2
      Call Cell 'модуль4, в нем N получает значение из Input
      UserForm1.Show 'форма в которой используется переменная N но приходит сюда как равная ноль
      UserForm2.Show 'cюда N также входит как 0
      End Sub
      Что надо прописать ёще , чтобы формы увидели значение N или же я что то упускаю в изучении и в формы это не передается?

  • @Yevd1977
    @Yevd1977 2 роки тому +1

    В чем отличие тогда Static и Public ?

  • @user-kd2uy4jf9w
    @user-kd2uy4jf9w 2 роки тому

    Билял, спасибо. А почему вы не сторонник глобальных переменных? Какие проблемы могут возникнуть?

  • @Yevd1977
    @Yevd1977 2 роки тому

    Автор все время про модули говорил. А если код в книге и/или в листах книги - тогда как распространяется действие переменных. Где их объявлять?

  • @user-zj4ub3cx3z
    @user-zj4ub3cx3z 4 роки тому +2

    А локальные переменные, в разных процедурах, можно обзывать одинаковыми именами? Или все же стараться создавать уникальные имена?

    • @BilyalKhassenov
      @BilyalKhassenov  4 роки тому +2

      Здравствуйте, Роман!
      Да, можно - и я бы даже наверно сказал, что так и стоит делать. Таким образом Вы всегда в любой процедуре будете знать, как у Вас, скорее всего, называется определенная переменная для выполнения определенных задач. У меня, например, такими общими именами для переменных являются rgCellChecked, intCounter, lngCounter и так далее 😊
      С уважением,
      Билял

  • @user-qn5by5iv7u
    @user-qn5by5iv7u 2 роки тому

    2021