Hallo Demonicus,
ich glaube, es ist einfacher ein neues Makro zu schreiben, als dieses alte, noch in WordBasic (QuickBasic) geschriebene Programm nachzuvollziehen und umzuschreiben. Dazu müsste man aber mehr wissen, wie das Ergebnis aussehen soll und wo sich die relevanten Daten- und Bildquellen befinden. Vielleicht kannst du meisten Dinge auch dadurch erledigen, dass du dir eine Vorlage mit Textmarken oder Steuerelementen erzeugst und dann dein Makro einfach aufzeichnest.
Gruß
Holger
Demonicus schrieb am 08.10.2008 11:49:28:
Hi
Mein Chef hat mir den Auftrag gegeben, mich mal mit einem Problem unseres Programmes auseinanderzusetzen.
Da wird wohl über Makros ein Bild ausgedruckt. Über dem Bild steht der Name der Firma. Unter dem Bild steht ein nicht relevanter Text.
Den Namen der Firma soll ich nun ändern. Anscheinend bekommt er diesen aus einer Datei, nennen wir sie xxxxxx.xxx . Folgende 3 Makros besitzt das Dokument:
AutoNew:
Public Sub MAIN()
Dim TempDir$
Dim IniFile$
Dim Object1File$
Rem AnsichtZoomGanzeSeite
Rem BearbeitenGeheZu .Ziel = "OBJECT1"
TempDir$ = Environ("Temp")
IniFile$ = TempDir$ + "\OBJ_PRT.INI"
Object1File$ = WordBasic.[GetPrivateProfileString$]("Object1", "FileName", IniFile$)
If Object1File$ <> "" Then
WordBasic.InsertPicture Name:=Object1File$, LinkToFile:=2
End If
End Sub
AutoOpen:
Public Sub MAIN()
Dim IniDir$
Dim IniName$
Dim IniFile$
Dim DocFile$
Dim Object1File$
Rem --- Name der Info-Datei aus dem Dokumentnamen zusammenbauen
IniDir$ = WordBasic.[FileNameInfo$](WordBasic.[FileName$](), 5)
IniName$ = WordBasic.[FileNameInfo$](WordBasic.[FileName$](), 4)
IniFile$ = IniDir$ + IniName$ + ".INI"
DocFile$ = WordBasic.[FileName$]()
Rem --- Vorhandensein der Info-Datei feststellen
On Error GoTo -1: On Error GoTo MainEnd
Open IniFile$ For Input As 1
If EOF(1) Then
Close 1
GoTo MainEnd
Else
Close 1
End If
Rem --- aufzoomen
WordBasic.ViewZoomWholePage
Rem --- Objekt in das Dokument einziehen
WordBasic.WW7_EditGoTo Destination:="Object1"
Object1File$ = WordBasic.[GetPrivateProfileString$]("Object1", "TempCopyName", IniFile$)
If Object1File$ <> "" Then
WordBasic.InsertPicture Name:=Object1File$, LinkToFile:=1
End If
Rem --- Symbolleiste anlegen
WordBasic.NewToolbar Name:="Obj.Verwaltung", Context:=1
WordBasic.AddButton "Obj.Verwaltung", 1, 2, "closeprint", "Drucken und zurück", 1
Rem --- Dokument und Parameter-Datei löschen
WordBasic.Kill (IniFile$)
WordBasic.Kill (DocFile$)
MainEnd:
End Sub
closeprint:
Public Sub MAIN()
Dim Arg$
Dim IniFile$
Dim AnzahlKopien
Rem --- Anzahl Kopien aus dem Parameterfile holen
Arg$ = WordBasic.[GetPrivateProfileString$]("PrintParameter", "Copies", IniFile$)
AnzahlKopien = WordBasic.Val(Arg$)
If (AnzahlKopien < 1) Then
AnzahlKopien = 1
End If
Rem --- Komplettes Dokument ausdrucken
WordBasic.FilePrint NumCopies:=AnzahlKopien
Rem --- Dokument schließen, ohne abzuspeichern
WordBasic.FileClose (2)
Rem --- Word auf Symbolgröße reduzieren
WordBasic.AppMinimize
End Sub
Da ich nichtmal den Namen der Datei finden kann, weis ich nicht im Ansatz, wie ich soetwas lösen soll. Hat jemand ne Idee, wie so etwas geht?? |