![]() |
|
|
|
#1 |
![]() Neuer Benutzer |
Einen Schönen guten Tag zusammen,
mir ist heute eine Frage aufgekommen, da ich ein Word Dokument entwerfen will, dass es ermöglicht, Bilder (in meinem Fall Länderflaggen) möglichst einfach so zu ersetzen, dass man eine Flagge einfach durch eine Andere ersetzt. ![]() Auf diesem Bild will ich zum Beispiel ohne viel zu verschieben die Deutschland Flagge durch z.B. die Italienische ersetzen. Diese müsste dann von der Festplatte neu hineingeladen werden. Gibt es da eine Möglichkeit? Makros werden mir leider nicht viel helfen, da ich viele Positionen eingeben müsste(Es handelt sich um eine Vorlage für Namensschilder). Mit freundlichen Grüßen, BlueWords |
|
|
|
|
|
#2 |
![]() MOF Guru |
Hallo BlueWords,
Zitat: Makros werden mir leider nicht viel helfen Eine kleine Spielerei, die Du auf Deine Bedürfnisse hin anpassen kannst: Erstelle für die Flaggen aus den Steuerelementen Bilder - dieses kleine Landschaftsmalerei-Symbol. Ändere die Größe, Eigenschaften wie gewünscht. Kopiere diese sooft wie nötig. Wichtig: Aus der Steuerelement-Toolbox! Kopiere folgende Codes an die bezeichneten Stellen innerhalb Deiner Mappe: Klassenmodul "ThisDocument" Code: Option Explicit
Private Sub Document_Open()
Dim sh As Shape
Dim imAkt As clsImage
For Each sh In ThisDocument.Shapes
If sh.OLEFormat.ClassType = "Forms.Image.1" Then
Set imAkt = New clsImage
Set imAkt.pImage = sh.OLEFormat.Object
colImages.Add imAkt
End If
Next sh
End Sub
Private Sub Document_Close()
Dim sh As Shape
For Each sh In ThisDocument.Shapes
If sh.OLEFormat.ClassType = "Forms.Image.1" Then
Set sh.OLEFormat.Object.Picture = Nothing
End If
Next sh
Set colImages = Nothing
End Sub
)In ein Allgemeines Modul (unter Einfügen|Modul) Code: Option Explicit Public colImages As New Collection namens (umbenennen!) clsImage Code: Option Explicit
Public WithEvents pImage As Image
Private pObjDicDatName As Object
Private pLngIndex As Long
Property Get objDicDatNam() As Object
Const strPfad As String = "DeinPfadZuDenFlaggenbildchen\"
Dim strPicName As String
If pObjDicDatName Is Nothing Then
Set pObjDicDatName = CreateObject("Scripting.Dictionary")
strPicName = Dir(strPfad & "*.jpg")
Do While strPicName <> vbNullString
pObjDicDatName(pObjDicDatName.Count) = strPfad & strPicName
strPicName = Dir
Loop
End If
Set objDicDatNam = pObjDicDatName
End Property
Property Let LngIndex(Index As Long)
pLngIndex = Index
End Property
Property Get LngIndex() As Long
LngIndex = pLngIndex
End Property
Private Sub pImage_Click()
If Not Me.pImage.Picture Is Nothing Then
Select Case True
Case Me.LngIndex > Me.objDicDatNam.Count - 2
Me.LngIndex = 0
Case Else
Me.LngIndex = Me.LngIndex + 1
End Select
Else
Me.LngIndex = 0
End If
Set Me.pImage.Picture = Nothing
Me.pImage.Picture = LoadPicture(objDicDatNam(Me.LngIndex))
End Sub
Dann erstmal speichern, Datei schließen und wieder öffnen. Ein doofer Wermutstropfen: Meine Grafikarte (ich vermute, daran liegt's) aktualisiert die Bilder leider nicht sofort - ich muss erst ein wenig im Dokument scrollen, um eine Änderung zu sehen. Besser klappt das bei Commandbuttons, die man anstelle der Bilder nehmen kann, dann hat man aber leider immer noch den hässlichen Rahmen drumherum. Wie gesagt - eine Spielerei und Fingerübung, ohne wirklich ernsthaften Hintergrund. Grüße EarlFred __________________ Feedback bitte nicht vergessen...Datum und Uhrzeit, Makrorekorder-Code entschlacken Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren Geändert von EarlFred (21.06.2011 um 16:24 Uhr). Grund: Hinweis ergänzt |
|
|
|
|
|
#3 |
|
Threadstarter
![]() Neuer Benutzer |
Ich danke dir ehrzlich für deine Antwort EarlFred. Ich werde es(morgen) mal ausprobieren.
Das einzige Problem ist m.M., dass dieses Dokument hauptsächlich nicht von mir bedient wird, sondern von einer MA, die noch weniger Kenntnisse hat als ich. Gibt es evt. eine einfache Methode? Mit freundlichen Grüßen, BlueWord |
|
|
|
|
|
#4 |
![]() MOF Guru |
Hallo BlueWord,
Zitat: Gibt es evt. eine einfache Methode? Zitat: ich habe Null Ahnung von Word Vielleicht schaut ja ein Word-Wissender vorbei, der Dir das sagen kann. Welche Methoden "von Hand" gangbar sind, hängt vielleicht auch davon ab, wie viele unterschiedliche Flaggen es gibt und wie viele Namensschilder es werden sollen. Einfaches Copy&Paste tut's nicht? Grüße EarlFred __________________ Feedback bitte nicht vergessen...Datum und Uhrzeit, Makrorekorder-Code entschlacken Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren |
|
|
|
|
|
#5 |
![]() MOF Profi |
In den Bildtools gibt es die Funktion Grafik ändern.
Warum nimmst Du nicht einfach diese? Gruß G.O. |
|
|
|
|
|
#6 |
|
Threadstarter
![]() Neuer Benutzer |
Die Funktion steht bei mir aus irgendeinem Grund gar nicht zur Verfügung.
Edit: habe gerade festgestellt, dass die Funktion zwar in einem normalen(neuen) Worddokument klappt, nur in meinem Dokument mit Tabelle nicht Edit 2: Hat sich erledigt, vielen Dank für eure Hilfe! Geändert von BlueWord (22.06.2011 um 08:29 Uhr). |
|
|
|