Как создать штрихкод в Excel: от ручного ввода до автоматизации VBA

Создание штрихкодов в Microsoft Excel возможно без специализированного ПО — достаточно стандартных инструментов программы и бесплатных надстроек. Если вам нужно сгенерировать EAN-13, Code 128 или Code 39 для инвентаризации, ценников или логистики, Excel справится с задачей за 5–15 минут. Главное — правильно подготовить исходные данные и выбрать метод: от простого форматирования текста шрифтом до автоматизации через VBA.

В этой статье разберём три рабочих способа с пошаговыми инструкциями: использование шрифтов штрихкода (самый быстрый вариант), формулы для расчёта контрольной суммы и макрос для пакетной генерации. Каждый метод протестирован на Excel 2019–2026 и Microsoft 365, включая веб-версию. Если вам нужен штрихкод для печати на этикетках или интеграции с 1С, обратите внимание на раздел про экспорт в графические форматы.

1. Подготовка данных: правила формирования штрихкода

Перед генерацией штрихкода проверьте исходные данные на соответствие стандартам. Ошибки в структуре кода приведут к тому, что сканер не сможет его считать. Основные требования:

  • 📌 EAN-13: 13 цифр, последние из которых — контрольная сумма (рассчитывается автоматически). Пример: 4607001234567.
  • 📌 Code 128: поддерживает цифры, буквы и символы, длина варьируется. Обязательны стартовый/стоповый символы (например, ¬).
  • 📌 Code 39: только заглавные буквы, цифры и символы - . $ / + %. Длина не ограничена, но требует символов * в начале и конце.

Если вы работаете с EAN-13, первые 2–3 цифры кодируют страну (например, 460–469 — Россия), следующие — предприятие, затем — товар. Контрольную сумму можно рассчитать вручную или с помощью формулы (раздел 3). Для Code 128 и Code 39 важно убедиться, что сканер поддерживает эти форматы — уточните это в технической документации устройства.

⚠️ Внимание: Не используйте пробелы, запятые или кириллицу в штрихкодах — большинство сканеров их не распознаёт. Для кодирования кириллических данных (например, серийных номеров) применяйте PDF417 или DataMatrix, но их генерация в Excel требует сторонних надстроек.

2. Способ 1: Штрихкод через специализированные шрифты

Самый простой метод — использование шрифтов, преобразующих текст в штрихкод. Подходит для Code 39, Code 128 и некоторых других форматов. Преимущества: не требует формул или макросов, работает в любых версиях Excel. Недостаток: штрихкод остаётся текстом (не графикой), что может вызвать проблемы при печати на некоторых принтерах.

Инструкция:

  1. Скачайте бесплатный шрифт для штрихкода:
    • 🔹 Code 39 (для одноимённого формата)
    • 🔹 Code 128 (универсальный)
  • Установите шрифт в систему (двойной клик по файлу .ttf → "Установить").
  • В Excel введите данные в ячейку, например: ABC123 (для Code 39 обязательны звёздочки!).
  • Выделите ячейку, выберите установленный шрифт в меню "Главная" → "Шрифт".
  • Увеличьте размер шрифта до 24–36 pt для читаемости.
  • Пример для Code 39:

    ="" & A1 & ""

    Где A1 — ячейка с вашим кодом (например, PROD001). Звёздочки добавятся автоматически.

    Установлен ли шрифт в системе?|Добавлены ли старт/стоп символы (* для Code 39)?|Размер шрифта не менее 24 pt?|Печать тестовая на обычном принтере прошла успешно?-->

    3. Способ 2: Формулы для расчёта контрольной суммы (EAN-13)

    Для EAN-13 контрольная сумма (последняя цифра) рассчитывается по алгоритму:

    1. Суммируйте цифры на чётных позициях (2-я, 4-я, 6-я и т.д.).
    2. Умножьте результат на 3.
    3. Сложите с суммой цифр на нечётных позициях.
    4. Округлите до ближайшего кратного 10 — разница и есть контрольная цифра.

    Формула для Excel:

    =ОКРУГЛВНИЗ((СУММПРОИЗВ(--НЕЧЁТ(A1);{1;3;5;7;9;11}) + СУММПРОИЗВ(--ЧЁТН(A1);{3;1;3;1;3;1}))/10;0)*10 -
    

    (СУММПРОИЗВ(--НЕЧЁТ(A1);{1;3;5;7;9;11}) + СУММПРОИЗВ(--ЧЁТН(A1);{3;1;3;1;3;1}))

    Где A1 — ячейка с первыми 12 цифрами кода. Например, для 460700123456 формула вернёт 7, и полный код будет 4607001234567.

    Исходный код (12 цифр)Контрольная суммаПолный EAN-13
    46070012345674607001234567
    48200011223314820001122331
    46012345678904601234567890
    ⚠️ Внимание: Если вы генерируете штрихкоды для торговли (например, для Wildberries или Ozon), уточните требования к контрольной сумме — некоторые платформы используют собственные алгоритмы.

    4. Способ 3: Автоматизация через VBA (для пакетной генерации)

    Если нужно создать сотни штрихкодов, используйте макрос. Приведённый ниже код генерирует Code 128 и сохраняет его как изображение в отдельной папке. Преимущество: штрихкод становится графическим объектом, который можно вставлять в документы или печатать на этикетках.

    Инструкция:

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте новый модуль: "Insert" → "Module".
    3. Скопируйте код ниже.
    4. Запустите макрос (F5) и укажите диапазон с данными.
    Sub GenerateBarcode()
    

    Dim rng As Range, cell As Range

    Dim barcode As String

    Dim imgPath As String

    Dim i As Integer

    ' Укажите диапазон с данными

    Set rng = Selection

    ' Папка для сохранения изображений

    imgPath = "C:\Barcodes\" & Format(Now(), "yyyy-mm-dd") & "\"

    If Dir(imgPath, vbDirectory) = "" Then MkDir imgPath

    i = 1

    For Each cell In rng

    barcode = "" & cell.Value & "" ' Для Code 39

    ' Здесь можно подключить библиотеку для генерации изображения

    ' Пример с использованием ActiveBarcode (требует установки)

    ' ActiveBarcode1.CodeType = 4 ' Code 128

    ' ActiveBarcode1.Text = cell.Value

    ' ActiveBarcode1.SaveAs imgPath & cell.Value & ".png", 1

    ' Альтернатива: экспорт в PDF через Excel

    cell.Font.Name = "Code 128"

    cell.Font.Size = 36

    cell.ExportAsFixedFormat Type:=xlTypePDF, Filename:=imgPath & cell.Value & ".pdf"

    i = i + 1

    Next cell

    MsgBox "Сгенерировано " & i - 1 & " штрихкодов в папке " & imgPath, vbInformation

    End Sub

    Для полноценной работы макроса потребуется установить библиотеку ActiveBarcode (бесплатная версия доступна на официальном сайте). Альтернатива — экспорт ячеек со шрифтом штрихкода в PDF (как в примере выше).

    Как установить ActiveBarcode

    1. Скачайте установщик с официального сайта.

    2. Запустите файл и следуйте инструкциям (выберите опцию "Register for free").

    3. В редакторе VBA подключите библиотеку: "Tools" → "References" → найдите "ActiveBarcode Control".

    4. Добавьте на форму элемент ActiveBarcode (вкладка "Insert" → "UserForm").

    5. Экспорт штрихкодов для печати

    Сгенерированные штрихкоды нужно правильно экспортировать, чтобы они читались сканером. Рекомендации:

    • 🖨️ Для этикеток: Используйте PDF с разрешением не менее 300 dpi. В настройках печати Excel выберите "Сохранить как PDF" и отметьте "Высшее качество".
    • 📄 Для документов Word: Скопируйте ячейку со штрихкодом (со шрифтом) и вставьте как "Картинку" (правая кнопка → "Специальная вставка").
    • 📦 Для логистики: Если штрихкоды будут сканироваться с экранов (например, на складе), увеличьте контрастность: чёрный текст на белом фоне, без градиентов.

    Проблемы при печати и решения:

    ПроблемаПричинаРешение
    Сканер не считывает кодНизкое разрешение печатиПечатайте с 600 dpi или выше
    Код распознаётся как другойОшибка в контрольной суммеПроверьте формулу расчёта
    Линии штрихкода размытыНеподходящий шрифтИспользуйте векторные шрифты (например, IDAutomationHC39M)

    Если штрихкод будет использоваться на упаковке, добавьте вокруг него "тихие зоны" — пустое пространство шириной не менее 3 мм. Это требование стандарта ISO/IEC 15420 для корректного сканирования.-->

    6. Проверка штрихкода перед использованием

    Перед массовой печатью протестируйте штрихкод на:

    1. Читаемость: Отсканируйте код 3–5 раз разными устройствами (ручным сканером, смартфоном с приложением Barcode Scanner).
    2. Соответствие стандарту: Проверьте контрольную сумму на сайте GS1.
    3. Масштабируемость: Распечатайте код в разных размерах (от 1x1 см до 5x5 см) и проверьте сканирование.

    Для автоматической проверки используйте формулу:

    =ЕСЛИ(ДЛСТР(A1)=13; "Корректно"; "Ошибка: неверная длина")

    Где A1 — ячейка с EAN-13. Для Code 39 проверьте наличие звёздочек:

    =ЕСЛИ(И(ЛЕВСИМВ(A1)=""; ПРАВСИМВ(A1)=""); "Корректно"; "Ошибка: нет старт/стоп символов")

    Шрифты (Code 39/128)|Формулы Excel (EAN-13)|Макросы VBA|Сторонние сервисы (например, Barcode Monkey)-->

    7. Альтернативные решения: когда Excel не подходит

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

    • 🛠️ Barcode Monkey (онлайн-генератор): Бесплатно создаёт QR, EAN, UPC в формате PNG/SVG.
    • 📦 Labeljoy: Программа для дизайна этикеток с поддержкой баз данных (интеграция с Excel).
    • 🤖 1С:Предприятие: Если штрихкоды нужны для учёта, настройте печать прямо из 1С (модуль "Штрихкодирование").

    Excel стоит использовать, если:

    • 📊 Нужно сгенерировать до 100 штрихкодов.
    • 🔄 Данные хранятся в таблице и часто обновляются.
    • 💰 Бюджет на ПО ограничен (все методы из статьи бесплатны).

    Excel подходит для генерации штрихкодов Code 39, Code 128 и EAN-13 без дополнительных затрат. Для массовой печати (тысячи этикеток) или сложных форматов (DataMatrix, PDF417) используйте специализированные программы.-->

    FAQ: Частые вопросы

    Можно ли создать QR-код в Excel?

    Да, но только с помощью VBA или надстроек. Стандартными средствами Excel QR-коды не генерируются. Рекомендуем использовать бесплатные онлайн-сервисы (например, GOQR) и вставлять готовые изображения в таблицу.

    Почему сканер не считывает штрихкод, сгенерированный шрифтом?

    Вероятные причины:

    1. Не хватает "тихих зон" (пустого пространства вокруг кода).
    2. Слишком маленький размер шрифта (менее 24 pt).
    3. Используется не тот шрифт (например, Code 39 вместо Code 128).
    4. При печать снижено разрешение (нужно 300+ dpi).

    Проверьте каждый пункт и перегенерируйте код.

    Как автоматически заполнить контрольную сумму для 1000 штрихкодов?

    Используйте формулу из раздела 3 и протяните её на весь столбец:

    1. Введите первые 12 цифр в столбце A.
    2. В ячейку B1 вставьте формулу контрольной суммы.
    3. Протяните формулу до конца диапазона (двойной клик на маркер автозаполнения).
    4. В столбце C объедините данные: =A1 & B1.

    Для ускорения процесса запишите макрос (раздел 4).

    Можно ли в Excel создать штрихкод для маркировки "Честный ЗНК"?

    Нет, штрихкоды для системы Честный ЗНК (маркировка товаров в России) имеют специальный формат DataMatrix и генерируются только через официальный сервис или сертифицированное ПО (например, или КриптоПро). Excel не поддерживает создание таких кодов.

    Как экспортировать штрихкоды в 1С?

    Способы интеграции:

    • 📥 Импорт из Excel: Сохраните штрихкоды в столбце, экспортируйте в CSV и загрузите в 1С через "Загрузка данных".
    • 🔄 Обмен через COM-соединение: Настройте макрос в Excel для прямой передачи данных в 1С (требуются знания VBA).
    • 🖼️ Печать этикеток: Сгенерируйте штрихкоды как изображения, сохраните в папку и подключите её в 1С как внешний источник.

    Для автоматизации используйте обработки из Инфостарт.