Возникла такая задача - надо штрихкоды нарисовать. В листе Екселя в столбце цифры -это штрих код, его надо отобразить в виде черточек и распечатаь. Использую компоненту ActiveBarcode. Скачал с ихнего сайта образец и немного переделал- в документе Word строится таблица и в каждую ячейку таблицы вставляется OLE объект со штрих-кодом
Set oDoc = ActiveDocument
Set oTable = oDoc.Tables.Add( _
Range:=oDoc.Range(Start:=0, End:=0), NumRows:=20, _
NumColumns:=4)
oTable.Borders.OutsideLineStyle = False
oTable.Borders.InsideLineStyle = False
For i = 1 To 5
'
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Set ab = Selection.InlineShapes.AddOLEObject(ClassType:="BARCODE.BarcodeCtrl.1", FileName:="", LinkToFile:=False, DisplayAsIcon:=False)
ab.Width = 90
ab.Height = 36.75
With ab.OLEFormat
.Activate
Set ab = .Object
End With
ab.Font.Size = 8
ab.Text = 987698769812
Selection.MoveRight Unit:=wdCell
Next i
End Sub
В Ворде все работает
А теперь надо эту операцию проделать из листа Екселя, где в ячейках храняться сами цифры штрих-кодов. Т.е из Екселя открыть документ Ворда, вставить таблицу и в таблицу вставить OLE объекты.
Делаю по аналогии И тот-то и проблема:
Dim Wd As Object
Set Wd = CreateObject("Word.Application")
Wd.Documents.Add
Wd.Visible = True
Set oDoc = Wd.ActiveDocument
Set oTable = oDoc.Tables.Add( _
Range:=oDoc.Range(Start:=0, End:=0), NumRows:=KolStrok, _
NumColumns:=4)
oTable.Borders.OutsideLineStyle = False
oTable.Borders.InsideLineStyle = False
таблицу он в Ворде рисует
oDoc.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
- вот на этом месте Ексель ругается и говорит что объет не поддерживает такой атрибут или метод.
И дальше не работает....
Set ab = oDoc.Selection.InlineShapes.AddOLEObject(ClassType:="BARCODE.BarcodeCtrl.1", Filename:="", LinkToFile:=False, DisplayAsIcon:=False)
....
Вот и вопрос к уважаемым знатокам VBA как тут надо правильно написать чтобы все работало?
Ответить
|