Excel Visual Basic For Mac



for Microsoft Office Excel, Access & Word on Windows or Mac

  1. Download Visual Basic For Mac
  2. Excel Visual Basic For Macs
  3. Excel Visual Basic For Applications Vba

Below you will find a list of basic macro examples for common Excel automation tasks. Copy and Paste a Row from One Sheet to Another. This super simple macro will copy a row from one sheet to another. Sub PasteOneRow 'Copy and Paste Row Sheets('sheet1').Range('1:1').Copy Sheets('sheet2').Range('1:1') Application.CutCopyMode = False End Sub. Excel Visual Basic Editor (Windows + MAC) – The Ultimate Guide. Written by Puneet for Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel for Mac. Visual Basic Editor is a code editor for VBA. It’s a separate application but you can only use it with Excel.

  • If a workbook contains a Visual Basic for Applications (VBA) macro that you would like to use elsewhere, you can copy the module that contains that macro to another open workbook by using the Visual Basic Editor (VBE). Macros and VBA tools can be found on the Developer tab, which is hidden by default, so the first step is to enable it. For Windows, go to File Options Customize Ribbon.
  • I have created an Excel-workbook with a VBA form in it for saving information in a new sheet every time you use the form. It works brilliant on my PC, but on my friends Mac it doesn't work at all. I'll add the code here and if there's anyone out there with a good answer please let me know how to make this work on a Mac.

IDAutomation VBA Barcode Functions and Macros allow easy generation of barcodes in Microsoft Office Suite applications such as Excel, Word and Access on both Windows® and Mac operating systems, compatible with Excel 2003 and greater in Windows and Excel 2011 and greater on Mac. The VBA modules are also compatible with legacy VB6.

Download Visual Basic For Mac

These font encoders are used to format the
- Charles Daneri, Objective Systems, LLC (computer consulting firm), Baltimore, MD.

These Office Macros consist of pure VBA modules with customizable code, functions and other options that allow for dynamic and variable data barcode generation. Consequently, this also means that the implementation may be more complicated for the average user. These font encoder tools format data into a text string that will display a readable barcode when the appropriate IDAutomation font is applied to it.

The Macros are free to use with the purchase of any IDAutomation linear barcode font and are compatible with Microsoft Office 2000 and greater running on Windows® or Office 2004 and 2011 for Mac platforms. This tool is not compatible with Office 2008 for Mac because that version does not have VBA capability. IDAutomation has a variety of Mac Barcode Integration options for those using Microsoft Office 2008 for Mac. Mac users and those located outside of the US Western character set should use the IDAutomation Universal Barcode Font Advantage package with related Universal Font VBA functions for Code 128 and Interleaved 2 of 5 fonts.

Importing and Exporting VBA in Excel

The barcode Macros and functions reside inside the Excel file as a custom VBA module. To use these barcode functions in an Excel spreadsheet, the IDAutomationVBAmodule must be imported. If the IDAutomationVBA.bas file is not available for import, it may be exported from the sample spreadsheet provided in the downloaded file. With all 2D font packages, such as QR-Code and
- Thomas Bell, Cynosure, Westford, MA

How to Create a Barcode in Excel

  1. Enable the security setting that allows Macros to run. If prompted when the document re-opens, choose Enable Macros.
    • Office 2007 and above applications require the Macros to run from a trusted location.
    • Office 2004 and 2011 for Mac settings are located at Excel - Preferences - Security - Macro Security.
    • Excel 2000 and 2003 require a medium-security setting to run Macros. Open Excel and set the security level to medium by choosing Tools - Macro - Security.
    • Signed Macros are included in the latest version of the VBA Module download. Simply choose the Trust this Publisher option and the VBA Macros will run unprompted. Data may be pasted into these files and used if the Macros are not modified.
  2. If a different spreadsheet is used other than the sample provided, the Macros must be imported into the spreadsheet.
  3. Create a column in the spreadsheet for the barcode.
  4. Size the column to make sure it is wide enough to contain the entire barcode.
  5. Format the column so that any text appearing in it will be centered. This is necessary to create the white space (often called the quiet zone) before and after the barcode.
  6. Enter the formula in this cell that will format the data to the barcode font. If unsure which function or barcode to use, consider the Code 128 barcode fonts with the =Code128(B10,0) function where 'B10' refers to the cell location of the data that is to be encoded and the ',0' formats the result of the formula to the Code 128 fonts. For all 2D fonts, refer to the documentation within that particular package.
  7. Examine the spreadsheet to make sure the data is being properly formatted to the barcode font. Strange characters may append to the beginning and end of the data from the fields, but this is normal. In some cases, the data may need to be reformatted and may appear scrambled. This is normal for Code 128 and Interleaved 2 of 5 barcode fonts when numbers need to be compressed within the barcode.
  8. After verifying that the text in the cell has been formatted correctly, select the appropriate font and set the point size to 12. This example selects the IDAutomationC128XS font. The XS and S sizes of IDAutomation's fonts in Code 128 and Code 39 are specifically designed to format correctly in Excel, as larger fonts will not usually format correctly in the cell. 2D symbols within Excel directly are only possible with the 2D XLS font for Excel.
  9. Ensure that the column is wide enough to contain the entire barcode with some white space before and after the barcode.
  10. Scan the printed barcodes with a handheld USB barcode scanner to verify the correct data is encoded.

Symbology Specific Tutorials for Excel:

2D Barcodes:
Linear Barcodes:

Barcoding an Entire Column in Excel

Basic

IDAutomation's barcode fonts and Macros provide an easy method of barcoding a column in Excel. In this example, Code 128 barcodes are created in Column B from data in Column A. This example assumes the Code 128 Barcode Font Package has been installed, and the VBA module has been imported into the spreadsheet.

  1. Enter the formula in one cell to format the data to the barcode font as explained in the Barcode Tutorial for Excel:
  2. Select that cell and choose Edit - Copy.
  3. At this point, it may be necessary to deselect any cells not needed for barcoding. Then, highlight an entire column by selecting the gray square letter-labeled area at the top of the spreadsheet and choose Edit - Paste. In this example, the button is marked B. If the spreadsheet is large, the formulas may take some time to paste and re-calculate if the spreadsheet is large.
  4. Change the column to the appropriate barcode font. In this example, choose the IDAutomationC128XS font while the entire column that contains the formula is selected. The barcodes will appear in the entire column. When displaying 2D barcodes in Excel such as QR-Code, Data Matrix or PDF417, use the 2D XLS Font specifically designed for Excel at 8 points.
  5. Confirm that the barcodes are accurate by scanning them from printed sheets, or directly from the screen. IDAutomation offers a variety of barcode readers that can perform this function with ease.
Basic

Video Tutorials

  • Video: How to Create a Barcode in Excel
  • Video: How to Create a Barcode in Excel 2007 and above
  • Video: How to Create a Barcode on Mac Excel 2004

Access VBA Macro Barcode Functions Tutorial

After the appropriate files have been downloaded and extracted, open the sample Access database provided. This database contains one table, one module, and some sample reports. The module contains custom VBA code, functions, and Macros. The sample database should be used as a reference if help is needed.

How to Create Barcodes in an Access Report

Before starting this tutorial, ensure that VBA Macros are the desired implementation. Several methods of creating barcodes in Access are explained in the Barcode Integration Guide for Microsoft Access.

  1. If a different database is being used and not the sample provided, first import the VBA Macros into the database.
  2. The most recent versions of Access require a medium security setting to run Macros.
    • Open Access and set the security level to medium by choosing Tools - Macro - Security.
    • If prompted when the document is reopened, select Enable Macros.
      Office 2007 and above may require that the Macros run from a trusted location. Signed Macros are included in the latest version of the VBA download. Simply choose the Trust this Publisher option and the VBA Macros will run unprompted. Tables, Reports, Forms and other information may be pasted into these files and used if the Macros are not modified.
  3. Open a report in Design Mode.
  4. Create a text box where the barcode will display.
  5. To format the data to the desired barcode font in a text box, a function must be placed in the Control Source specifying the data field that needs to be encoded.
    • The formula =function([field]) should be entered in the Control Source property of the text box, for example:
    • In some cases, it may be necessary to specify the table and field in the control source, for example: If unsure of which function to use, consider the =Code128([field]) function with Code 128 Barcode Fonts.
    • Optional: The Control Source may be changed to a formula that appends text to the data or combines multiple fields, for example: or or
    • In Code 128, the ApplyTilde feature may also be used to encode tab and return functions. For example, the following formula creates a tab function between two fields:
  6. Run the report to make sure the data is being populated from the fields and formatted to the barcode font. Strange characters may append to the beginning and end of the data, but this is normal. In some cases, the data may need to be reformatted and it may appear to be scrambled. This is normal for Code 128, Interleaved 2 of 5, DataBar and 2D barcodes.
  7. Change the formula field font to the appropriate barcode font and set the point size to 12. If this step is not followed, generated barcodes will not display.
  8. Print and scan the barcodes to verify that the correct data is encoded. If a scanner is needed to verify barcodes, consider the IDAutomation USB Barcode Scanner.

Note: When distributing Access Databases, the associated barcode font must be installed on each computer that prints the barcodes. If this is inconvenient, the Native Barcode Generator for Access is a complete barcode generator object that stays embedded in the database, which means no fonts need to be installed on user computers. For more information about other methods of barcoding in Access, please refer to the Microsoft Access Barcode Integration Guide.

If a large amount of data needs to be encoded, the PDF417 Barcode Font and Encoder or the Data Matrix Barcode Font and Encoder may be the best options as these 2D barcode types allow for the encoding of more data.

Video Tutorial Create a Barcode in Access 2010 and above

VBA & Macro Functions in Microsoft Word Mail-Merge

Before starting this barcode tutorial, ensure VBA Macros are the desired implementation for a Word mail-merge. An easier method exists when using Codabar or Code 39 fonts, and this is explained further in the Barcode Integration Guide for Microsoft Word.

Excel must be used as the data source when creating barcodes in a Microsoft Word mail merge using Macros. The field used for the data source in Word should be the column in Excel where the formula has been applied, which is used to format the data to the barcode font. It is best to use the last column of the spreadsheet in order to avoid merging conflicts.

To set up an Excel spreadsheet with these barcode Macros, refer to the Barcode Tutorial for Excel.

Note: C128 ReturnTypes 6 through 9 are not currently supported in Excel-Word mail-merges.

Excel Visual Basic For Macs

  1. Excel 2000 and 2003 require a medium security setting to run Macros. Open Excel and set the security level to medium by choosing Tools - Macro - Security.
    Office 2007 and above may require the Macros to run from a trusted location.
    In Office 2004 for Mac, go to Excel - Preferences - Security and select Macro Security to enable the secure setting.
  2. After the files have been downloaded and extracted, open the included Word Mail-Merge document. A message may appear stating that the data source cannot be found. If so, select Data Source for Word Mail Merge.xls as the data source. If asked, enable Macros.
  3. The formula may be viewed in the cells of the Barcode column in the Excel spreadsheet. This formula retrieves the data to encode and passes it to the appropriate barcode function. The function will then format the data to the barcode font. This column is then passed to Word when the mail merge is started. The appropriate barcode font must be selected for the field in MS Word; in this case, it is «Barcode».
  4. The barcode will not look correct and will not scan until the mail merge is performed.
  5. After the merge is performed, print and scan the barcode to verify that the correct data has been encoded. If a scanner is needed to verify barcodes, IDAutomation suggests easy-to-use USB Barcode Scanners.
  6. When distributing the mail-merge, the font should be embedded in Word and the Excel data source must be accessible.

VBA Barcode Macro Functions and Properties

The functions listed below are available in IDAutomation's IDAutomationVBA.bas file and are only valid when used with the font listed in the 'font to use' column. Functions beginning with IDAutomation_Uni_ may only be used with the IDAutomation Universal Barcode Font Advantage™ package and are supplied in the IDAutomationWindowsDLLVBA.bas file provided within that package.

DataToEncode is the string data type for all functions listed below. Other data types such as numbers or dates may need to be converted to the string data type to be properly encoded. Additional parameters are available for some functions and are optional. For example, Code128('123456',0,True). For UPC-A, UPC-E & EAN-13, the +2 and +5 add-on codes may be created by adding the digits to the end of the data being encoded.

VBA Functions for Standard Barcode Fonts
Barcode Type Barcode Function Methods | Notes VBA File to Import Required Font
Code-11 Code11 (DataToEncode)IDAutomationVBA.bas IDAutomationC11
Code-128
(Auto Mode)
Code128 (DataToEncode, C128 ReturnType, ApplyTilde)
Human Readable text is enabled when ReturnType = 6
Example:
Code128('123456789012', 6, 0)
IDAutomationVBA.bas
or
IDAutomation VBA for Code 128 and Postnet.bas*
IDAutomationC128
Code-128
(Manual Mode)
IDAutomation recommends using Auto Mode for most situations.
Code128a (DataToEncode, C128 ReturnType)
Code128b (DataToEncode, C128 ReturnType)
Code128c (DataToEncode, C128 ReturnType)
Example:
Code128b('12345678', 6)
IDAutomationVBA.bas
or
IDAutomation VBA for Code 128 and Postnet.bas*
IDAutomationC128
Code-39 Code39 (DataToEncode)
Code39Mod43 (DataToEncode, ReturnType)
Example:
Code39Mod43('12345678', 0)
IDAutomationVBA.bas IDAutomationC39
Code-93 Code93 (DataToEncode)IDAutomationVBA.bas IDAutomationC93
Codabar Codabar (DataToEncode)IDAutomationVBA.bas IDAutomationCB
EAN-13 IDAEAN13 (DataToEncode)IDAutomationVBA.bas IDAutomationUPCEAN
EAN-8 IDAEAN8 (DataToEncode)IDAutomationVBA.bas IDAutomationUPCEAN
GS1-128 Code128 (DataToEncode, C128 ReturnType, 1)
GS1-128 is enabled in Code 128 Auto by setting ApplyTilde to True. Human Readable AIs may be created by setting the C128 ReturnType to 6. Example:
Code128('(12)3456789012', 6, 1)
IDAutomationVBA.bas
or
IDAutomation VBA for Code 128 and Postnet.bas*
IDAutomationC128
Interleaved 2 of 5 I2of5 (DataToEncode)
I2of5Mod10 (DataToEncode, ReturnType)
Example: I2of5Mod10('123456789', 1)
NOTE: ReturnType 3 generates an OPC (Optical Product Code) symbol. OPC is also known as Vision Council of America OPC, VCA BarCode & VCA OPC.Example: I2of5Mod10('020748721', 3)
IDAutomationVBA.bas IDAutomationI25
MSI / Plessey MSI (DataToEncode, ReturnType)IDAutomationVBA.bas IDAutomationMSI
RM4SCC RM4SCC (DataToEncode)IDAutomationVBA.bas IDAutomationRM
UPC-A UPCa (DataToEncode)IDAutomationVBA.bas IDAutomationUPCEAN
UPC-E UPCe (DataToEncode)IDAutomationVBA.bas IDAutomationUPCEAN
USPS IntelligentMail (IMb) IntelligentMail (DataToEncode) **
Included only in the purchased version of the USPS IMb Font Package.
IDAutomation VBA for Intelligent Mail.bas IDAutomationPOSTNET
or IDAutomationIMB
USPS Postnet Postnet (DataToEncode, ReturnType)
*Included in Postnet package.
IDAutomationVBA.bas
or
IDAutomation VBA for Code 128 and Postnet.bas*
IDAutomationPOSTNET
USPS Planet Planet (DataToEncode, ReturnType)IDAutomationVBA.bas
or
IDAutomation VBA for Code 128 and Postnet.bas*
IDAutomationPOSTNET
not applicable MOD10 (DataToEncode)IDAutomationVBA.basnot applicable
not applicable SpliceText (DataToEncode, SpacingNumber, ApplyTilde)IDAutomationVBA.basnot applicable
Functions for the Universal Barcode Font
All functions listed below are preceded with IDAutomation_Uni_.* They may only be used with the IDAutomation Universal Barcode Font Advantage™ and are supplied in the IDAutomation_UniversalFont_VBA.bas or the IDAutomationWindowsDLLVBA.bas file which also requires the installation of the product EXE file in order for the macro to function, because they access an installed IDAutomationNativeFontEncoder.dll that is provided within the package.

Note: Excel 2004 for Mac requires the functions to be lowercase. Ex: idautomation_uni_c128

Barcode Type Universal Function Methods | Notes VBA File to Import Required Font
Code-128 IDAutomation_Uni_C128 (DataToEncode, ApplyTilde)
Note: Code128() is the recommended method to use. Code128() is also used to create GS1-128.

IDAutomation_Uni_C128A (DataToEncode)
IDAutomation_Uni_C128B (DataToEncode)
IDAutomation_Uni_C128C (DataToEncode)
Example:
IDAutomation_Uni_C128 ('Ê8100712345Ê2112WH5678', TRUE)

Excel for Mac:
idautomation_uni_c128 ('Ê8100712345Ê2112WH5678', TRUE)
IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
IDAutomation_Uni
not applicableC128HR (DataToEncode, ApplyTilde)
Returns text for Code 128 barcodes, such as for GS1-128.
IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
Text Font
Code-39 IDAutomation_Uni_C39 (DataToEncode, N_Dimension, IncludeCheckDigit)
Example:
IDAutomation_Uni_C39 ('123456789', 3, TRUE )

Excel for Mac:
idautomation_uni_c39 ('123456789', 3, TRUE )
IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
IDAutomation_Uni
Codabar IDAutomation_Uni_Codabar (DataToEncode, N_Dimension, StartChar, StopChar)
Example:
IDAutomation_Uni_Codabar ('123456789', 3,'A','B' )

Excel for Mac:
idautomation_uni_codabar ('123456789', 3,'A','B' )
IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
IDAutomation_Uni
Interleaved 2 of 5 IDAutomation_Uni_I2of5 (DataToEncode, N_Dimension, IncludeCheckDigit)IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
IDAutomation_Uni
MSI / Plessey IDAutomation_Uni_MSI (DataToEncode, N_Dimension, IncludeCheckDigit)IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
IDAutomation_Uni
USPS IntelligentMail IDAutomation_Uni_IntelligentMail (DataToEncode) ** IDAutomation_UniversalFont_USPS_IMb_VBA.bas IDAutomation_Uni
USPS Postnet IDAutomation_Uni_Postnet (DataToEncode, IncludeCheckDigit) IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
IDAutomation_Uni
USPS Planet IDAutomation_Uni_Planet (DataToEncode, IncludeCheckDigit)IDAutomation_UniversalFont_VBA.bas
or
IDautomation_WindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll
IDAutomation_Uni
Functions for the DataBar Barcode Font
The functions listed below are preceded with IDAutomation_GS1 and are only provided with the IDAutomation DataBar Font Advantage Package.
Barcode Type DataBar Barcode Function Methods | Notes VBA File to Import Required Font
DataBar DataBar (DataToEncode)IDAutomationGS1DataBar.bas IDAutomation DataBar 34
DataBar Expanded DataBarExpanded (DataToEncode, 22)IDAutomationGS1DataBar.bas IDAutomation DataBar 34
DataBar Exp. Stacked DataBarExpanded (DataToEncode, Segments)IDAutomationGS1DataBar.bas IDAutomation DataBar 34
DataBar Stacked Omnidirectional DataBarStacked (DataToEncode)IDAutomationGS1DataBar.bas IDAutomation DataBar 34
The functions listed below are rare and not approved for POS systems.
DataBar Limited DataBarLimited (DataToEncode) (Not approved for POS)IDAutomationNativeWindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll IDAutomation DataBar 13
DataBar Stacked DataBarStacked (DataToEncode) (Not approved for POS)IDAutomationNativeWindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll IDAutomation DataBar 13
DataBar Truncated DataBar (DataToEncode) (Not approved for POS)IDAutomationNativeWindowsDLLVBA.bas and IDAutomationNativeFontEncoder.dll IDAutomation DataBar 13
2D Font Functions
Regarding all symbologies listed in this section below:
  • VBA code for these functions will be provided within each package of the purchased 2D font product.
  • Symbology options and parameter changes to functions listed below may be made within the code of the function itself.
Barcode Type 2D Function Methods | Notes VBA File to Import Required Font
Data MatrixIDAutomation_DMatrix_FontEncoder(DataToEncode As String, Optional ProcessTilde, Optional EncodingMode, Optional PreferredFormat)
Complete VBA is only provided in the purchased version.
IDAutomation_DM_FontEncoder.bas
(2020 Release)
IDAutomation2D or IDAutomationDMatrix
EncDM(DataToEncode As String, Optional ProcessTilde, Optional EncodingMode, Optional PreferredFormat) IDAutomation_Datamatrix_ActiveX_Macro.bas and IDAutomationDMatrix.dll
(Legacy ActiveX Version)
QR-CodeIDAutomation_QRFontEncoder(DataToEncode)
All parameters are set to default except ApplyTilde which is set to 1.
IDAutomation_VBA_QRCode_FE2021
(2021 Release)
IDAutomation2D
PDF417IDAutomation_PDF417(DataToEncode As String, Optional EccLevel As Integer, Optional ColumnSpecify As Integer, Optional RowSpecify As Integer, Optional Truncate As Integer, Optional ForceBinary As Integer) As StringIDAutomation_Native_PDF417_Macro.bas IDAutomation2D or IDAutomationPDF417
IDAutomation_PDF417(DataToEncode As String, Optional EcLevel As Integer, Optional TotalColumns As Integer, Optional TotalRows As Integer, Optional Truncated As Integer, Optional PDFMode As Integer, Optional ApplyTilde As Integer) As String
IDAutomation_PDF417_Macro.bas and IDAutomationPDF417.dll
(Legacy ActiveX Version)
AztecEncAztec(DataToEncode As String,
Optional
ProcessTilde, Optional Error Correction)
IDAutomation_Aztec_Macro.bas and
IDAutomationAztec.dll
IDAutomation2D
MaxicodeEncMC(DataToEncode as String, Optional EncodingMode as Int)
The default Encoding Mode is 2
IDAutomation_MaxiCode_Macros.bas IDAutomation Maxicode

Barcode Function Descriptions

  • ApplyTilde: If set to '1' or 'True', characters following the tilde may be used to perform additional calculations or encode ASCII characters directly.
  • DataToEncode: This string value represents the data being encoded.
  • N_Dimension: Determines the width of the wide bars when applicable, which is a multiple of the X dimension. Valid values are 2, 2.5 and 3. The default is 2. The X dimension is determined by the font point size.
  • IncludeCheckDigit: A Boolean value that determines whether a check digit should be automatically calculated and included for the DataToEncode.
  • Segments: Reducing segments to a low, even number such as 4, 6 or 8 in a DataBar Expanded symbol can create a stacked barcode. The default is 22.

Excel Visual Basic For Applications Vba

** The USPS Intelligent Mail (IMb) function is supplied in pure VBA code with the purchased version of the associated font package.