Objektname zusammensetzen aus Variablen

SwissThrall

Grünschnabel
Hallo zusammen,

Ich habe zwei Word Dokumente, jetzt soll von dem ersten der text in das zweite koppiert werden, bei dem der RadioButton aktiv ist. Es gibt 5 Hauptkategorien mit je 5 Subkategorien und pro Subkategorie hat es 5 Auswahlen. Also werden insgesamt 25 Texte koppiert.

Das Koppieren macht keine Probleme, jetzt sind es aber ca 125 RadioButtons, darum würde ich die Objektnamen gerne zusammenstellen und dann abfragen per For-Schleife und nicht per If...else if.
Ich habe in einem MS-Forum einen Beitrag gefunden, das es per Me.Controls(variable).Value Funktionieren soll. Dies funktioniert aber nur wenn das Makros über eine Form aufgerufen wird, und ich habe keine Form.

ich weiss nicht mehr weiter, darum wende ich mich an euch.
Google war leider auch keine brauchbare Hilfe.

Ich danke euch schon mal im voraus.

Freundliche Grüsse
SwissThrall
 
Mal davon abgesehen, dass das auch in den VB-Bereich gepasst hätte (die Makros in Word sind ja VBA), wenn du keine Form hast, wo sind deine Radiobuttons untergebracht?

Wenn die Buttons direkt am Dokument untergebracht sind, verwendest du statt Me einfach Document(Dokumentenname).


Der Doc!
 
Die RadioButtons sind direkt auf dem Dokument.

Die Methode Documents(Dokumentenname) gibt es, aber wie kann ich von dort aus die Controls aufrufen? Die existiert nämlich nicht

MfG
Swiss

~~Edit~~
Benutze Office 2003
 
Ups, ein S vergessen, sorry.

Kanns jetzt mangels Word nicht testen, sollte aber so gehen:
Visual Basic:
'Ich verwend hier mal ActiveDocument, dann halt einfach durch das Documents ersetzen
'Das ganze sollte True oder False ausgeben
MsgBox ActiveDocument.Controls("OptionButton1").Value
Wenns nicht ganz funktioniert meld dich, ich kann das erst leider wieder am Mittwoch testen.


Der Doc!
 
Hi Doc,

es kommt ein Fehler, dass das Objekt die Eigenschaft oder Methode nicht ünterstüzt.

Auch so funktioniert es nicht,
Code:
MsgBox Documents("dok1.doc").Controls("OptionButton1").Value

mfg Swiss
 
So, hab mich mal durch Word durchgekämpft, ist leider nicht so einfach, die bei einer Form.

Word fügt diese Optionsfelder als InlineShapes ein, das ansprechen ist so eine Sache, da das über den Index läuft. Mit
Visual Basic:
For Each xShapes In ActiveDocument.InlineShapes
 MsgBox xShapes.OLEFormat.Object.Value
 MsgBox xShapes.OLEFormat.Object.Name
Next xShapes
kannst du die die namen und Werte der Steuerelemente im Dokument ansehen, ist bislang die einzige Methode, die ich so gefunden haben. Ist zwar eine Fummelei, schaus dir mal an.


Der Doc!
 
Danke für die Hilfe,
da ich heute nicht auf der Arbeit bin, kann ich dies erst Morgen testen. Melde mich wieder, wenn ich es getest habe.

Greez
Swiss
 
Ich hab den Code eben getestet, er Funktioniert einwandfrei.

Vielen Dank für deine Hilfe Doc

Falls ein bestimmtes Objekt angesprochen werden soll, kann dies so gemacht werden:
Code:
ActiveDocument.InlineShapes.Item(index).OLEFormat.Object.Value

Nochmals vielen Dank.

Gruss Swiss
 
Das man mit dem Index ein bestimmtes Objekt ansprechen kann ist klar, besser wäre es aber über den Objektnamen, da sich bei InlineShapes der Index verändert, wenn man z.B. die Reihenfolge der Anordnung ändert. Dazu hab ich aber leider nichts gefunden.


Der Doc!
 
Zurück