Excel
Objetos de código de barras com VBA

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

1

Você pode usar o VisualBasic para Applications (VBA) para resolver muitas coisas no Excel. Aqui vamos mostrar-lhe como incorporar, usar e excluir o controle ActiveBarcode com VBA:

Incorporando o controle ActiveBarcode em uma folha:
Neste exemplo, um controle de código de barras será colocado diretamente acima de uma célula. Então parece que o código de barras estaria dentro de uma cela.

Primeiro, lemos o tamanho das células:

CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
Por favor, note que uma célula deve ter um tamanho mínimo para que o código de barras pode caber nele. Se a célula for muito pequena, será exibido um ' erro de tamanho '. Então, 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
Para obter acesso fácil ao controle, lembramos o nome do controle em uma variável denominada ' MyBarcode ':
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
Agora você pode usar as Propriedades e métodos do objeto de código de barras como você gosta:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
Se você não precisa mais do controle, você pode excluí-lo da folha:
ActiveSheet.OLEObjects(MyBarcode).Delete
Dica: se for necessário que o Windows processe eventos futuros (geralmente denominados como "KeepWindowsAlive") em uma macro, você poderá forçá-lo usando a seguinte função VBA:
DoEvents
Isso pode ser necessário, por exemplo, se o controle deve desenhar-se de novo.