Маска ввода в excel что это

Управление форматами ввода данных с помощью масок ввода

Вы можете помочь пользователям правильно вводить данные в классические базы данных Access, подключив маски ввода к полям, имеющим строго определенный формат значений, например номера телефонов.

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

Важно: Эта статья относится только к классическим базам данных Access. Веб-приложения и веб-базы данных Access не поддерживают маски ввода.

В этой статье

Общие сведения о масках ввода

Маска ввода — это строка символов, указывающая формат допустимых значений входных данных. Маски ввода можно использовать в полях таблиц или запросов, а также в элементах управления форм и отчетов. Маска ввода хранится в свойствах объекта.

Маску ввода рекомендуется использовать, когда вводимые значения должны иметь единый формат, например для полей с номерами телефонов из десяти цифр. Если пользователь введет номер, не указав код города, данные не будут приняты в Access, пока пользователь не добавит код города.

Три компонента маски ввода

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

Первый компонент является обязательным. Он представляет собой знак или строку (последовательность знаков) маски с заполнителями и литералами, например круглыми скобками, точками и дефисами.

Второй компонент не является обязательным и определяет способ хранения встроенных знаков маски в поле. Если для этого компонента задано значение , знаки сохраняются вместе с данными, а если 1, то знаки отображаются без сохранения. Выбрав значение 1, можно сэкономить место для хранения базы данных.

Третий компонент маски ввода также не является обязательным и определяет знак, используемый в качестве заполнителя. По умолчанию в Access используется знак подчеркивания (_). Чтобы задать другой знак, введите его в третьем компоненте маски.

Пример маски ввода для телефонных номеров в формате России: (999) 000-00-00;0;-:

В маске используются два заполнителя — 9 и 0. Заполнитель 9 обозначает необязательные цифры (код города можно не вводить), а 0 — обязательные.

Значение 0 во втором компоненте маски ввода указывает на то, что знаки маски следует хранить вместе с данными.

Третий компонент маски ввода указывает на то, что вместо знака подчеркивания (_) в качестве заполнителя будет использоваться дефис ().

Знаки, определяющие маски ввода

В приведенной ниже таблице перечислены заполнители и литералы, используемые в масках ввода, и описано их влияние на ввод данных.

Определение маски ввода

Если свойство Формат (Format) управляет тем, как данные отображаются в поле таблицы, то свойство Маска ввода (Input Mask) позволяет контролировать ввод данных в таблицу. И не только контролировать, но и упрощать процесс ввода. Маску используют в том случае, когда вводимые данные должны содержать определенные символы в некоторых позициях вводимой строки. Самым простым и ярким примером таких данных являются номера телефонов. Маска ввода должна обеспечить возможность вводить только цифры номера, а остальные символы (скобки вокруг кода города, дефис между цифрами номера) будут добавляться автоматически. Маска задается с помощью символов, приведенных в табл. 2.12.

Таблица 2.12. Символы для создания масок ввода

Для того чтобы сформировать маску ввода, можно использовать Мастера масок ввода (Input Mask Wizard). Откройте в режиме Конструктора таблицу «Заказы» (Orders). Выделите поле «Дата размещения». Чтобы ввести маску ввода для этого поля, щелкните мышью по ячейке свойства Маска ввода (Input Mask). Нажмите небольшую кнопку с тремя точками (рис. 2.21), которая появится справа (эта кнопка называется кнопкой Построителя и будет встречаться еще во многих местах), и дальше следуйте указаниям мастера:

    В первом диалоговом окне вы можете выбрать нужную маску из списка (рис. 2.22). Если вы попытаетесь вводить данные в поле Проба (Try It), то сможете увидеть, как будут форматироваться вводимые вами символы. Нажмите кнопку Далее (Next).

Сформированная символьная строка маски отображается в поле Маска ввода (Input Mask) для поля «ДатаРазмещения» (OrderDate) (рис. 2.22). Маска ввода состоит из трех частей:

  • символьной строки маски;
  • символа 0. Это означает, что введенные в поле данные будут сохраняться вместе со специальными символами. Можно заменить 0 на 1 — тогда специальные символы маски не будут запоминаться в поле;
  • символа заполнителя.

Как использовать маску ввода в excel vba?

-2 Cher [2018-04-08 07:54:00]

ПРОЧИТАЙТЕ ВНИМАТЕЛЬНО ВОПРОС, ПОЖАЛУЙСТА, ЭТО РЕКОМЕНДАЦИИ EXCEL VBA. NOT EXCEL

Мне была поручена фиксация ввода даты в форме VBA. Текстовое поле должно содержать имя пользователя в виде MM/DD/YYYY .

Мне нужно использовать маску ввода, не разрешено делать что-то как подтверждение даты после или с использованием календаря. До сих пор я мог использовать упомянутые 2 метода (форматирование формата после использования ISDATE ).

Тем не менее, теперь стало ясно, что это должна быть маска, поэтому ключи отфильтровываются при вводе, причем маска отображается при вводе даты: __/__/____

Там, где вы видите символ подчеркивания, он должен иметь возможность вводить числа и всегда находиться на этих позициях

Есть ли способ сделать это? Я могу найти учебник для маски в Access VBA.

input vba excel-vba excel masking

Этот пост может помочь вам.

Использование входной маски

. Вы можете задаться вопросом, есть ли способ настроить маску ввода, которая автоматически добавит двоеточие. Хорошая новость — да, есть. Плохих новостей нет, нет. Звук запутанный? Позволь мне объяснить.

Вы можете настроить пользовательский формат, который отобразит ваше время в любом формате. Например, вы можете использовать следующие шаги:

  1. Выберите ячейки, которые вы хотите использовать для ввода времени.
  2. Выберите » Формат» в меню «Ячейки». Excel отображает диалоговое окно » Формат ячеек «.
  3. Убедитесь, что отображается вкладка » Число «.
  4. В списке «Категория» выберите » Пользовательский».
  5. Замените все, что находится в поле » Тип», с #»:»00 .
  6. Нажмите OK .

Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохая новость) заключается в том, что ячейка действительно не содержит времени. Если вы введете 230 (за 2:30), она не будет содержать 2:30 как раз — она содержит двести тридцать. Таким образом, вы не можете напрямую использовать содержимое ячейки непосредственно во времени.

Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу для преобразования. Например, если введенное время было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке для преобразования:

Отформатируйте ячейку, которая содержит приведенную выше формулу, чтобы отображать один из различных временных форматов, и все вы настроены.

(Полная статья и многое другое в источнике.)

Сводные таблицы Excel

Если вам часто приходится вводить даты и время в ячейки, то вам должна понравиться идея писать их сокращенно, без точек-дробей – просто как число. Чтобы в заданном диапазоне ячеек листа, например, число 250616 после ввода и нажатия клавиши Enter автоматически превращалось в 25.06.2016.

Как в Excel настроить быстрый ввод даты без разделителей

Для реализации такого возможны два варианта.

Первый – использовать функцию преобразования текста в дату ДАТАЗНАЧ (DATEVALUE) и функции извлечения фрагментов из текста ЛЕВСИМВ (LEFT), ПРАВСИМВ (RIGHT) и ПСТР (MID), чтобы разделить шесть введенных чисел по два, добавить к ним точки и составить из них полноценную дату в соседней ячейке.

Для реализации быстрого ввода даты возможны два варианта

В англоязычном варианте: =DATEVALUE(LEFT(D1;2)&”.”&MID(D1;3;2)&”.”&RIGHT(D1;2)) .

Если же хочется выполнять это преобразование прямо в той же ячейке, куда вводятся числа, то без макроса не обойтись. Для этого щелкните по ярлычку листа, куда будут вводиться даты и время, и выберите команду Исходный текст (View Code). В открывшееся окно редактора Visual Basic вставьте следующий код.

Private Sub Worksheet_Change(ByVal Target As Range) Dim vVal Dim StrVal As String Dim dDate As Date If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range(«A2:A10»)) Is Nothing Then With Target StrVal = Format(.Text, «000000») If IsNumeric(StrVal) And Len(StrVal) = 6 Then Application.EnableEvents = False dDate = DateValue(Left(StrVal, 2) & «/» & Mid(StrVal, 3, 2) & «/» & Right(StrVal, 2)) .NumberFormat = «dd/mm/yyyy» .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate))) End If End With End If Application.EnableEvents = True End Sub

Диапазон A2:A10 в коде замените на свою область листа, куда подобным образом собираетесь вводить даты.

Как использовать маску ввода в Excel VBA?

ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ ВОПРОС, ПОЖАЛУЙСТА, ЭТО НАМЕРЕНИЯ ОТЛИЧАЮТ VBA. НЕ ЭКСКАЛЬНО

Мне было дано задание зафиксировать ввод даты в форме VBA. В текстовом поле пользователь должен ввести дату в MM/DD/YYYY .

Я должен использовать маску ввода, не разрешено делать что-либо в качестве даты подтверждения после или с использованием календаря. До сих пор я мог использовать 2 упомянутых метода (форсирование формата после использования ISDATE ).

Однако теперь стало ясно, что это должна быть маска, поэтому ключи фильтруются при вводе, причем маска отображается при вводе даты: __/__/____

Где вы видите подчеркивание, он должен иметь возможность только вводить цифры, и / всегда находятся на этих позициях

Есть ли способ сделать это? Я могу только найти учебник для маски в Access VBA.

Я гуглил «маску ввода Excel», и 2-й результат был следующим: Использование маски ввода Microsoft Excel, написанной Алленом Уайеттом .

Использование маски ввода

. Вы можете задаться вопросом, есть ли способ установить маску ввода, которая автоматически добавит двоеточие. Хорошие новости — да, есть. Плохих новостей нет, нет. Звук сбивает с толку? Позволь мне объяснить.

Вы можете настроить пользовательский формат, который будет отображать ваше время в любом формате, который вы хотите. Например, вы можете использовать следующие шаги:

  1. Выберите ячейки, которые вы хотите использовать для ввода времени.
  2. Выберите « Формат» в меню «Ячейки». В Excel отобразится диалоговое окно « Формат ячеек ».
  3. Убедитесь, что отображается вкладка Number .
  4. В списке Категория выберите Пользовательский .
  5. Замените все, что находится в поле « Тип #»:»00 .
  6. Нажмите на ОК .

Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохие новости) состоит в том, что ячейка не содержит времени. Если вы введете 230 (для 2:30), оно не будет содержать 2:30 как время — оно содержит двести тридцать. Таким образом, вы не можете использовать содержимое ячейки непосредственно в расчетах времени.

Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу, чтобы сделать преобразования. Например, если время, которое вы ввели, было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке, чтобы выполнить преобразование:

Отформатируйте ячейку, содержащую приведенную выше формулу, чтобы она отображала один из различных форматов времени, и все готово.

(Полная статья и многое другое на источнике .)

Определение маски ввода

В то время как свойство Format определяет, как данные отображаются в поле таблицы, свойство Input Mask контролирует, как данные вставляются в таблицу. И не только для проверки, но и для упрощения процесса ввода. Маска используется, когда входные данные должны содержать определенные символы в некоторых позициях входной строки. Самый простой и яркий пример таких данных — телефонные номера. Маска ввода должна обеспечивать возможность ввода только цифр номера, а остальные символы (скобки вокруг префикса, тире между цифрами номера) будут добавляться автоматически. Маска задается с помощью символов, представленных в таблице. 2.12.

Символ маски Описание
  В эту позицию необходимо ввести номер. Знаки плюс (+) и минус (-) не допускаются
девять Здесь необходимо ввести число или пробел. Знаки плюс (+) и минус (-) не допускаются
# В этой позиции необходимо ввести число, пробел и знаки плюс (+) или минус (-)
L В этой позиции необходимо ввести букву
? В этой позиции вы можете ввести букву или пробел
А В этой позиции необходимо ввести букву или цифру
а Здесь необходимо ввести букву, цифру или пробел
& Здесь необходимо ввести произвольный символ или пробел
С Здесь вы можете ввести произвольный символ или пробел. Если пользователь ничего не вводит, Access не будет вводить никаких данных в этом месте
… (точка) Десятичный разделитель (зависит от региональных настроек в окне «Язык и стандарты» на Панели управления Windows)
, (запятая) Разделитель тысяч (зависит от региональных настроек в окне «Язык и стандарты» на Панели управления Windows)
-, / Разделители в значениях даты и времени (зависит от региональных настроек в окне «Язык и стандарты» на Панели управления Windows)
Преобразование всех символов справа в верхний регистр
! Указывает, что маска должна заполняться справа налево. Этот символ следует использовать, когда символы в левой части маски необязательны. Его можно разместить в любом положении маски
  Указывает, что следующий символ следует рассматривать как постоянный символ, даже если это специальный символ маски. Например, A отобразит букву A в форме
«буквальный» Вместо повторного использования символа обратной косой черты () вы можете просто заключить любой литерал в кавычки

 Символы для создания масок ввода

Чтобы создать маску ввода, вы можете использовать мастер маски ввода. Откройте таблицу «Заказы» в режиме «Дизайн». Выделите поле «Вставить дату». Чтобы вставить маску ввода для этого поля, щелкните ячейку свойств маски ввода. Нажмите на маленькую кнопку с тремя точками (рис. 2.21), которая появляется справа (эта кнопка называется кнопкой Builder и находится во многих других местах), затем следуйте инструкциям мастера:

  1. В первом диалоговом окне вы можете выбрать необходимую маску из списка (рис. 2.22). Если вы попытаетесь ввести данные в поле «Попробовать», вы увидите, как будут отформатированы введенные вами символы. Нажмите кнопку Далее).

Сформированная символьная строка маски отображается в поле Input Mask для поля OrderDate (рис. 2.22). Маска ввода состоит из трех частей:

  • маска строки символов;
  • символ 0. Это означает, что данные, введенные в поле, будут сохранены вместе со специальными символами. Вы можете заменить 0 на 1 — тогда спецсимволы маски не будут храниться в поле;
  • символ-заполнитель.

Управление форматами ввода данных с помощью масок ввода

Вы можете помочь пользователям правильно вводить данные в классические базы данных Access, связав маски ввода с полями с четко определенным форматом значений, такими как номера телефонов.

Форма влияет только на то, как значения вводятся в Access — она ​​не меняет способ их хранения, какие записи из типа данных поля и других свойств. Дополнительные сведения о хранении данных в Access.

Создание маски ввода в TextBox с помощью кода VBA Excel на примере номера телефона и номера паспорта. Применимо для набора номера с клавиатуры.

В отличие от VBA Access в VBA Excel нет свойства InputMask объекта TextBox. Поэтому, чтобы добавить подобие маски для TextBox в VBA Excel, приходится писать дополнительную процедуру, контролирующую действия пользователя и добавляющую в нужные места вводимого номера знаки-разделители.

В следующих примерах мы будем создавать простые маски ввода в TextBox с помощью события TextBox_Change и оператора Select Case. Маска будет добавляться при вводе символов с клавиатуры. При вставке номера из буфера обмена, добавление маски не предусмотрено.

Мы не будем добавлять автоматическую проверку вводимого знака (цифра или другой символ), так как после ввода с клавиатуры в любом случае требуется зрительная проверка введенного номера.

Также, при редактировании полностью введенного номера, не стоит удалять более 1 цифры, иначе структура маски может будет нарушена.

Маска ввода номера телефона

Простой код для создания маски ввода номера телефона в TextBox в формате «+7(000)000-00-00»:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Private Sub TextBox1_Change()

    With TextBox1

        Select Case Len(.Text)

            Case 1

            ‘После ввода первого знака добавляем перед ним код страны и скобку

            .Text = «+7(« & .Text

            Case 6

            ‘После ввода шестого знака добавляем в конце скобку

            .Text = .Text & «)»

            Case 10, 13

            ‘После ввода десятого и тринадцатого знака добавляем в конце дефис

            .Text = .Text & «-«

            Case 17

            ‘Удаляем семнадцатый знак сразу после его ввода

            .Text = Left(.Text, 16)

        End Select

    End With

End Sub

Строки кода VBA Excel:

Case 17

‘Удаляем семнадцатый знак сразу после его ввода

.Text = Left(.Text, 16)

ограничивают длину строки, вводимой в TextBox, их можно заменить на установку максимальной длины при инициализации формы:

Private Sub UserForm_Initialize()

    TextBox1.MaxLength = 16

End Sub

Если ограничение строки установить при инициализации формы, при ручном редактировании введенного номера можно удалять две цифры без риска нарушить структуру маски.

Маска ввода номера паспорта

Простой код для создания маски ввода номера паспорта в TextBox в формате «00 00 000000»:

Private Sub TextBox2_Change()

    With TextBox2

        Select Case Len(.Text)

            Case 2, 5

            ‘После ввода первого и пятого знака добавляем в конце пробел

            .Text = .Text & » «

            Case 13

            ‘Удаляем тринадцатый знак сразу после его ввода

            .Text = Left(.Text, 12)

        End Select

    End With

End Sub

Если ограничение строки установить при инициализации формы:

Private Sub UserForm_Initialize()

    TextBox2.MaxLength = 12

End Sub

тогда при ручном редактировании введенного номера можно удалять две цифры без риска нарушить структуру маски.

При необходимости Вы можете легко добавить к стандартным числовым форматам Excel свои собственные. Для этого выделите ячейки, к которым надо применить пользовательский формат, щелкните по ним правой кнопкой мыши и выберите в контекстном меню команду Формат ячеек (Format Cells) — вкладка Число (Number), далее — Все форматы (Custom)

custom-formats1.png

В появившееся справа поле Тип: введите маску нужного вам формата из последнего столбца этой таблицы:

custom-formats2.png

 Как это работает…

На самом деле все очень просто. Как Вы уже, наверное, заметили, Excel использует несколько спецсимволов в масках форматов:

  • 0 (ноль) — одно обязательное знакоместо (разряд), т.е. это место в маске формата будет заполнено цифрой из числа, которое пользователь введет в ячейку. Если для этого знакоместа нет числа, то будет выведен ноль. Например, если к числу 12 применить маску 0000, то получится 0012, а если к числу 1,3456 применить маску 0,00 — получится 1,35.
  • # (решетка) — одно необязательное знакоместо — примерно то же самое, что и ноль, но если для знакоместа нет числа, то ничего не выводится
  • (пробел) — используется как разделитель групп разрядов по три между тысячами, миллионами, миллиардами и т.д.
  • [ ] — в квадратных скобках перед маской формата можно указать цвет шрифта. Разрешено использовать следующие цвета: черный, белый, красный, синий, зеленый, жёлтый, голубой.

Плюс пара простых правил:

  • Любой пользовательский текст (кг, чел, шт и тому подобные) или символы (в том числе и пробелы) — надо обязательно заключать в кавычки.
  • Можно указать несколько (до 4-х) разных масок форматов через точку с запятой. Тогда первая из масок будет применяться к ячейке, если число в ней положительное, вторая — если отрицательное, третья — если содержимое ячейки равно нулю и четвертая — если в ячейке не число, а текст (см. выше пример с температурой).

Ссылки по теме

  • Как скрыть содержимое ячейки с помощью пользовательского формата
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Private Sub TextBox2_Change()
    Dim t, i, x
        If f = False Then
            f = True
            If Len(TextBox2) > 10 Then
                TextBox2 = Left(TextBox2, 10)
                f = False
                Exit Sub
            End If
            
            x = Replace(TextBox2.Text, ".", "")
            
            If Len(x) > 0 Then
                t = Right(x, 1)
                If IsNumeric(t) Then
                        Select Case t
                        Case 0 To 9
                            TextBox2.Text = form2(x)
                    End Select
                Else
                    TextBox2.Text = Left(x, Len(x) - 1)
                End If
            End If
            f = False
        End If
End Sub
 
Private Function form2(s)
    Dim t, u, x, d, m, y
    Select Case Len(s)
    
        Case 1 'одна цифра
            If s > 3 Then
                form2 = ""
                Exit Function
            End If
            form2 = s
        Case 2
            If s < 32 Then
                form2 = s & "."
            Else
                form2 = Left(s, 1)
            End If
        Case 3
            d = Left(s, 2)
            m = Mid(s, 3, 1)
            If m < 2 Then
                form2 = d & "." & m
            Else
                form2 = d & "."
            End If
        Case 4
            d = Left(s, 2)
            m = Mid(s, 3, 2)
            If m < 13 Then
                form2 = d & "." & m & "."
            Else
                form2 = d & "." & Left(m, 1)
            End If
        Case 5
            d = Left(s, 2)
            m = Mid(s, 3, 2)
            y = Mid(s, 5, 1)
            If y >= 2 Then
                form2 = d & "." & m & "." & y
            Else
                form2 = d & "." & m & "."
            End If
        Case 6
            d = Left(s, 2)
            m = Mid(s, 3, 2)
            y = Mid(s, 5, 2)
            If y > 20 Then
                form2 = d & "." & m & ".20" & y
            Else
                form2 = d & "." & m & "." & y
            End If
        Case 7
            d = Left(s, 2)
            m = Mid(s, 3, 2)
            y = Mid(s, 5, 3)
            form2 = d & "." & m & "." & y
        Case 8
            d = Left(s, 2)
            m = Mid(s, 3, 2)
            y = Mid(s, 5, 4)
            form2 = d & "." & m & "." & y
    End Select
End Function

Понравилась статья? Поделить с друзьями:
  • Маска ввода в excel 2007
  • Маска marlin frameless excel отзывы
  • Маска marlin frameless excel black
  • Мас как в excel
  • Маршрутный лист образец word