VBA: Tips zur Umsetzung einer Word-Prozedur

25/05/2009 - 03:56 von Peter Muehlbauer | Report spam
Hallo zusammen,

ich würde gerne das folgende Word-Makro in Excel97 umsetzen, aber leider bin
ich nicht so firm in VBA.

Sub Barcode()
Dim objBC As Object

If ActiveDocument.ActiveWindow.Selection Is Nothing Then Exit Sub

On Error GoTo NotSupp

Set objBC = CreateObject("INTERAL.ITSBarCode")
With ActiveDocument.ActiveWindow.Selection
.Text = objBC.StringToBC128Font(.Text, 1)
.Font.Name = "BarCode 128"
.Font.Size = 38
End With
Set objBC = Nothing
Exit Sub

NotSupp:
MsgBox "You have selected some characteres that cannot be encoded!"
End Sub


Das Makro soll in Excel per Button in der aktiven Tabelle (unabhàngig vom
Tabellennamen) markierte Bereiche (oder auch nur 1 Zelle) in einen Barcode
umwandeln (das macht das ActiveX-Objekt mit StringToBC128Font()).
In Word funktioniert das pràchtig.
In Excel wird das ActiveX nicht einmal in der Objektliste erkannt.

Ich habe schon ein wenig versucht mich in VBA einzulesen, aber es scheitert
schon mal daran, daß ich nicht weiß, wie ich prüfen soll, ob überhaupt ein
Bereich selektiert ist, und wenn ja, welche Zelle(n) das explizit in welcher
Tabelle betrifft.

Würde sowas auch als Formel in der benutzerdefinierten Funktionsliste
möglich sein, z.B.
"=ITSBarcode(A1;38;1)"
für Fontgröße = 38 und Barcodetype = 1 (Enum: 0Á28A, 1Á28B, 2Á28C),
sodaß man sich das Makro ersparen kann?


Könnte mir hier bitte ein VBA-Kundiger ein wenig Hilfestellung leisten?

Danke schon mal recht herzlich!

Gruß
Peter
 

Lesen sie die antworten

#1 Reiner Wolff
25/05/2009 - 07:30 | Warnen spam
Moin Peter,

*Peter Muehlbauer* schrieb:
ich würde gerne das folgende Word-Makro in Excel97 umsetzen, aber leider bin
ich nicht so firm in VBA.

Das Makro soll in Excel per Button in der aktiven Tabelle (unabhàngig vom
Tabellennamen) markierte Bereiche (oder auch nur 1 Zelle) in einen Barcode
umwandeln (das macht das ActiveX-Objekt mit StringToBC128Font()).
In Word funktioniert das pràchtig.
In Excel wird das ActiveX nicht einmal in der Objektliste erkannt.



Bekommst Du da eine Fehlermeldung oder schaust Du im ObjektKatalog nach?
Bei letzterem làge dass dann vermutlich an einem nicht gesetztem Verweis
(Menü Extras - Verweise ...).

Ich habe schon ein wenig versucht mich in VBA einzulesen, aber es scheitert
schon mal daran, daß ich nicht weiß, wie ich prüfen soll, ob überhaupt ein
Bereich selektiert ist, ...



Ich bin mir nicht bewusst, dass es in Excel den Fall gibt, dass nichts
selektiert ist. Allerdings kenne ich den Fall auch in Word nicht.
Codeanpassungen siehe unten.

...und wenn ja, welche Zelle(n) das explizit in welcher
Tabelle betrifft.



Ich würde sie einfach alle selektierten durchlaufen.

Würde sowas auch als Formel in der benutzerdefinierten Funktionsliste
möglich sein, z.B.
"=ITSBarcode(A1;38;1)"
für Fontgröße = 38 und Barcodetype = 1 (Enum: 0Á28A, 1Á28B, 2Á28C),



Ja.

sodaß man sich das Makro ersparen kann?



Ne, die benutzerdefinierte Funktion wàre ein Makro.

Könnte mir hier bitte ein VBA-Kundiger ein wenig Hilfestellung leisten?



Ich versuche mal einen Anfang.

Danke schon mal recht herzlich!

Sub Barcode()
Dim objBC As Object


Dim Zelle As Excel.Range

'If ActiveDocument.ActiveWindow.Selection Is Nothing Then Exit Sub


'Diese Zeile einfach weg, es ist immer irgendetwas selektiert.

On Error GoTo NotSupp

Set objBC = CreateObject("INTERAL.ITSBarCode")
'With ActiveDocument.ActiveWindow.Selection


'Alle Zellen des ausgewàhlten Bereiches durchlaufen
For Each Zelle in Selection.Cells
With Zelle
.Text = objBC.StringToBC128Font(.Text, 1)
.Font.Name = "BarCode 128"
.Font.Size = 38


'ob die Eigenschaften in Excel genauso heißen, weiß ich nicht aus dem Kopf,
'sollte es hier Probleme geben, wird Dir der Makro-Rekorder schnell
'aufzeigen können, welche Eigenschaften es in Excel sind.

End With


Next Zelle

Set Zelle = Nothing
Set objBC = Nothing
Exit Sub

NotSupp:
MsgBox "You have selected some characteres that cannot be encoded!"
End Sub




Ich hoffe, Du kannst die Einfügungen entsprechend verarbeiten und wünsche
noch einen sonnigen Tag.

Gruß aus Kiel
Reiner
Kunde: Ich möchte ein Grafikadventure, das mich so richtig fordert.
Verkàufer: Haben Sie schon einmal WindowsXP versucht?

Ähnliche fragen