Excel
Objetos de código de barras com VBA

 Standard ou superior

Utilizando e automatizando códigos de barras com VBA em Excel

É possível utilizar o Visual Basic para Aplicações (VBA) para resolver diversas questões no Excel. Aqui, demonstraremos como incorporar, utilizar e excluir o controle ActiveBarcode com VBA:

Incorporando o controle ActiveBarcode em uma planilha:
Neste exemplo, um controle de código de barras será colocado diretamente acima de uma célula. Assim, parecerá que o código de barras está dentro de uma célula.

Primeiramente, verificamos o tamanho das células:
CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
Observe que uma célula deve ter um tamanho mínimo para que o código de barras possa caber nela. Se a célula for muito pequena, será exibido um erro de tamanho. Portanto, redimensionamos a altura da célula para 30 pixels:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
A função a seguir criará o controle de código de barras diretamente acima da célula:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
É possível vincular diretamente o objeto código de barras a uma célula:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
Para facilitar o acesso ao controle, armazenamos o nome do controle na variável MyBarcode:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
Agora é possível utilizar as propriedades e métodos do objeto código de barras conforme desejar:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
Caso não necessite mais do controle, é possível excluí-lo da planilha:
ActiveSheet.OLEObjects(MyBarcode).Delete
Dica: Se for necessário que o Windows processe eventos futuros (frequentemente referidos como KeepWindowsAlive) dentro de uma macro, é possível forçar isso utilizando a seguinte função VBA:
DoEvents
Isso pode ser necessário, por exemplo, se o controle precisar ser redesenhado.