|
One important prerequisite to being able to import metafiles
is that you must have a Windows metafile graphics import
filter installed for MS Office. When you install Microsoft
Office (or just Microsoft Excel), you are given the choice
of installing using either a "Typical Installation", a "Custom
Installation" or a "Minimum Installation". To install the
Windows metafile graphics import filter, you must choose "Custom
Installation" and then select the Windows metafile Graphics
import filter option in the Graphics Import section of the
Microsoft Office setup program.
To check if you already have the Windows metafile graphics import filter installed,
or to install it, perform the following steps:
- Insert the MS Office CD-ROM in your CD-ROM drive
and run the program: SETUP.EXE located in the root directory
of the drive.
- Select "Add/Remove" from the main setup menu.
- Highlight the "Converters and Filters" option in the list
of installation options and click the button labeled "Change Options".
- Highlight the "Graphics Filters" option in the list and click
the button labeled "Change Options".
- In the bottom of the list that appears, make
sure that the option "Windows Metafile Import" is checked.
- If the option is already checked
then you already have the Windows metafile graphics import
filter installed and you can
click
the "Cancel" button until you are returned to the main setup menu where
you can click the "Exit Setup" button to exit.
- If the "Windows Metafile Import" is not checked then select
it and click the OK button until you are returned to the main Setup
Options list where you can click the "Continue" button to complete
the installation.
After the Setup program has completed installing the Windows
Metafile Graphics Import filter, Excel will be able to import
standard Windows
metafiles stored
on disk.
The following are example Excel VBA macros that will generate
a bar code using the ActiveX Control. The GenerateBarCode() macro
uses data in the active cell for the bar code message and then inserts
the bar code graphic in the worksheet 100 pixels to the right
of the cell containing
the data.
| |
Const AXMyPath$
= "C:\" 'Set path to save
files temporarily
Sub GenerateBarCode()
Dim BC$
'
get a bar code message from the active cell and put it
in a string
BC$ = ActiveCell.Value
' remove any carriage return from bar code message
If Right$(BC$, 1) = Chr(13) Then BC$ = Left$(BC$, Len(BC$) - 1)
' strip off trailing spaces
BC$ = RTrim$(BC$)
' if no text is selected then quit
If Len(BC$) = 0 Then
MsgBox "This macro converts text to a bar code using The TAL Bar Code
ActiveX Control." + vbCr _
& "To use, select a cell containing some text and run this macro."
Exit Sub
End If
'
generate the bar code
frmMain.TALBarCd1.Message = BC$
'save barcode
frmMain.TALBarCd1.SaveBarCode AXMyPath$ & "Barcode.wmf"
'
insert the bar code picture from the disk file into the
sheet
ActiveSheet.Pictures.Insert(AXMyPath$ & "Barcode.wmf").Select
'The
following two lines demonstrate how to move the bar code
'picture to the right and down a number of pixels from the cell
'containing the original input data that the bar code was
' generated from.
Selection.ShapeRange.IncrementLeft 100
' Selection.ShapeRange.IncrementTop 50
End Sub
|
The xlLoop() macro
will loop through all the cells in Column A that contain data and
insert a barcode to the right of the cell.
| |
Sub xlLoop()
'
'This is an example of a fairly simple macro that will loop
'through all the cells in a column
'of an Excel Spreadsheet, taking the data and converting it to
'barcodes box beside it.
'
' Last updated April 2001. rob@taltech.com.
' ---------------------------------------------------------------
Dim NumLoops As Long, rowpointer As Long, A, i As Long
ActiveSheet.Cells(1, 1).Select
' start at cell A1 (Row 1, column 1)
'Get last row that contains data (based on last cell
containing
'data in column A):
NumLoops = Cells(65000, 1).End(xlUp).Row
'Initialize
Row Pointer
rowpointer
= 0
frmMain.TALBarCd1.BarHeight = 500 'set barheight to half
an inch
For i = 1 To NumLoops
A = ActiveCell.Offset(rowpointer, 0).Value
'take the value of the first field and pass it to activex
frmMain.TALBarCd1.Message = A
'save barcode with record number
frmMain.TALBarCd1.SaveBarCode AXMyPath$ & "BarcodeA" & i & ".wmf"
' insert the bar code picture from the disk file into
the sheet
ActiveSheet.Pictures.Insert(AXMyPath$ & "barcodeA" & i & ".wmf").Select
' The following two lines demonstrate how to move the
bar code
' picture to the right and down a number of pixels from the cell
' containing the original input data that the bar code was
' generated from.
Selection.ShapeRange.IncrementLeft 100
Selection.ShapeRange.IncrementTop (i * 50) - 50
'delete last barcode file
Kill AXMyPath$ & "barcodeA" & i & ".wmf"
'increment row number
rowpointer = rowpointer + 1
Next 'i
End Sub
|
Note: In our example we inserted the ActiveX on a user form
called 'frmMain'. You could instead insert the ActiveX control
directly onto your spreadsheet and set its visible property
to false. Then instead of using frmMain.TALBarCd1 you
would use Sheet1.TALBarCd1 to
set its properties.
Download
a working Excel spreadsheet example.
|