MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 12.08.2017, 00:36   #16
Despistado
Threadstarter Threadstarter
MOF User
MOF User
Standard

P.S. Eine kleine Frage hätte ich dann doch noch: Wie kann man eine InlineShape in eine normale Shape umwandeln?

Das hier ist es schon mal nicht...

If Selection.Type = wdSelectionShape Then Selection.ShapeRange(1).ConvertToInlineShape

End If

Hier ist noch mehr Code, das untere Beispiel sollte es wohl sein, funktioniert aber nicht.

http://www.vbaexpress.com/kb/getarticle.php?kb_id=623

Geändert von Despistado (12.08.2017 um 01:00 Uhr).
Despistado ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2017, 09:42   #17
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Despistato,

dein Beispiel wandelt ein Shape in ein InlineShape um, du fragtest aber nach dem Gegenteil. Ich nehm an, das Beispiel würde schon passen:

Wenn das Bild zum Zeitpunkt der Abarbeitung dieser Zeile noch markiert ist, brauchst du den Typ nicht abzufragen, der ist dann ja eindeutig. Also sollte Folgendes genügen:
Selection.ShapeRange(1).ConvertToInlineShape

Allerdings kann es auch sein, dass das Bild längst nicht mehr markiert ist (das kann ich von hier aus nicht beurteilen).
Der sicherere Weg wäre also, das Bild möglichst bald nach dem Einfügen zum Objekt zu erheben, um dann alle Bild-Operationen mit diesem Objekt zu veranstalten. Wie mehrfach gezeigt z.B. so:
Code:

dim bild as Shape
'... (nach dem Einfügen:)
set bild = selection.ShapeRange(1)
  With bild
    '...alle Operationen mit dem Bild
    .ConvertToInlineShape
  End With
Im Zweifelsfall poste bitte deinen kompletten aktuellen Code

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2017, 17:01   #18
Despistado
Threadstarter Threadstarter
MOF User
MOF User
Standard

Es hat sich herausgestellt, dass der von mir im letzten Beitrag verlinkte Code ein Bild schon in ein InlineShape verwandeln kann, allerdings nur wenn es sich tatsächlich um ein Bild handelt, also bspw. ein bmp oder jpg
So ein aus mehreren Zeichenobjekten zusammengefasstes Objekt wird nicht als Bild angesehen.

Sowohl die von dir vorgeschlagene Codezeile
Selection.ShapeRange(1).ConvertToInlineShape

als auch der komplette Code (also der den du in deinem letzten Beitrag gepostet hast) führen zum selben Ergebnis.

Beim Versuch ein solches Objekt in ein InlineShape umzuwandeln bricht das mit einer Fehlermeldung ab ("falscher Parameter") mit Verweis auf die Zeile in der "ConvertToInlineShape" steht.
Vielleicht geht es nicht, weil es sich um ein Objekt handelt und keine Grafik?

(da es hier nur mehr um ein einzelnes Makro geht ist der von dir gepostete schon der komplette Code)

P.S: Ein Unterschied ist mir aufgefallen. Bei den Objekten die sich mit dem Code nicht in ein InlineShape umwandeln lassen, ist die Möglichkeit das Häkchen bei "Über den Text legen" zu entfernen ausgegraut.
Und ich glaube genau das wäre es ja was man (oder das Makro) entfernen müsste, damit es eben "inline" und nicht mehr "über dem Text" liegt.
Angehängte Grafiken
Dateityp: jpg ScreenShot 533.jpg (45,4 KB, 4x aufgerufen)

Geändert von Despistado (12.08.2017 um 17:34 Uhr).
Despistado ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2017, 18:14   #19
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Despistado,

der letzte von mir gepostete Code ist keineswegs komplett. Der letzte komplette steht in Nr. 7 und da kommmt von einem Inline-Shape gar nichts vor. Welchen also meinst du? Ist es zu viel verlangt, den Code, den DU aktuell verwendest, hier (nochmal?) reinzukopieren?

Es wäre auch nicht uninteressant zu erfahren, warum du das reinkopierte Objekt in ein Inline-Shape umwandeln willst. Mag sein, dass du es irgendwo schonmal erwähnt hast, aber mir ist es aktuell nicht mehr klar.

__________________

Gruß
Gerhard

Geändert von Gerhard H (12.08.2017 um 18:16 Uhr).
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2017, 18:51   #20
Despistado
Threadstarter Threadstarter
MOF User
MOF User
Standard

Der Code für das einzelne Makro den ich verwende ist der aus Beitrag 16. Dort ist ein Link zu zwei Codes, der zweite wandelt das Objekt in ein InlineShape.

Dass der Code aus deinem letzten Beitrag nicht komplett ist, wusste ich nicht.
Dein Code aus Beitrag 7 hat bei mir (glaub ich) deswegen nicht funktioniert, weil eines der Objekte am oberen Seitenrand klebte. Das hätte man durch gruppieren in PPT zwar beheben können, das Problem der Seite als Referenz wäre dadurch aber nicht behoben gewesen, sprich, selbst bei Gruppierung würden dann eben alle Objekte am oberen Seitenrand kleben.

Aber mittlerweile hab ich ja für nahezu alles funktionierende Makros, jetzt geht es also nur noch darum ein Objekt in ein InlineShape umzuwandeln.

Ich kann auch gerne noch mal die Codes posten.

Dieser hier wandelt mir das InlineShape in ein normales Objekt um (u.a.), da funktioniert auch alles:

Code:

Sub PPTzuObjekt()

If Selection.Type <> wdSelectionShape Then
        Selection.InlineShapes(1).ConvertToShape.Select
        End If
    Selection.ShapeRange.Ungroup.Select
    Selection.ShapeRange.Group.Select
    Selection.ShapeRange.WrapFormat.Type = wdWrapTopBottom
    Selection.ShapeRange.WrapFormat.Side = wdWrapBoth
   'Selection.ShapeRange.RelativeHorizontalPosition = _
   '     wdRelativeHorizontalPositionColumn
   ' Selection.ShapeRange.RelativeVerticalPosition = _
        wdRelativeVerticalPositionParagraph
Exit Sub
xxxxx:
MsgBox "da war nix"
End Sub
Und dieser hier wandelt ein Objekt in ein InlineShape um, das funktioniert aber nur wenn das Objekt ein Bild (bmp, jpg,...) ist.

Code:

Sub ConvertToInlineShape()
    With Selection
         '  If we selected a Shape then convert to InlineShape
        If .Type <> wdSelectionShape Then
            .ShapeRange(1).ConvertToInlineShape
        End If
    End With
End Sub
Und der Grund warum ich es umwandeln möchte wäre der, dass ich dann ein Objekt perfekt positionieren könnte (inline), dann in ein Objekt umwandeln könnte um es zu bearbeiten (Textfelder) und es dann anschließend wieder in ein InlineShape zu verwandeln.
Despistado ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.08.2017, 00:28   #21
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Despistado,

das zweite Makro widerspricht sich. Der Kommentar sagt: Wenn wir ein Shape ausgewählt haben, dann wandeln wir es in ein InlineShape um.
Die Bedingung aber formuliert: Wenn der Typ des ausgewählten Objekts kein Shape ist, dann...

Auch wenn du nicht selber programmieren kannst, sollten deine Kenntnisse dafür reichen, dass diesen Widerspruch bemerkst. Mir drängt sich der Eindruck auf, dass du absolut nicht beurteilen kannst, was die von dir gefundenen Makroschnipsel anstellen. Das ist nicht böse gemeint, aber es ist als Basis für eine weitere Hilfe einfach zu wenig. Dazu kommt, dass es in VBA viele Ungereimtheiten gibt die man ohne Kenntnis der Dateien, die du bearbeitest, und ohne Vorliegen der identischen Word-Versionen einfach nicht in den Griff bekommt. Ich betrachte das Projekt daher von meiner Seite aus für gescheitert.

Mein letzter Tipp ist: Formuliere die Bedingung so:

If .Type = wdSelectionShape Then
.ShapeRange(1).ConvertToInlineShape
End If


oder lass sie ganz weg. Dieser Tipp gilt unter der Annahme, dass bei Start des zweiten Makros die Autoform als Shape (Selection.Type = 8) vorliegt (was ich ja auch nicht weiß).

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.08.2017, 18:31   #22
Despistado
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ja, ich kann nichts programmieren, sondern nur den Macro-Recorder aufnehmen lassen und den produzierten Code dann ansehen. Außerdem kann ich Code im Internet finden und hoffen, dass sich damit etwas anstellen lässt.

Und trotz dieser doch sehr ungünstigen Voraussetzungen ist es mir gelungen eine Antwort auf die ursprüngliche Frage zu finden, denn nun kann ich eine PPT-Zeichnung entweder exakt als Inline-Grafik einfügen oder sogar als (bearbeitbares) Objekt. Auch die Umwandlung von Grafil zu Objekt (als Einzelschritt) funktioniert, also insofern seh ich das Projekt ganz und gar nicht als gescheitert.


Lediglich die Umwandlung von einem Objekt zu einer Inline Grafil will nicht so wirklich klappen.

Zitat:

Mir drängt sich der Eindruck auf, dass du absolut nicht beurteilen kannst, was die von dir gefundenen Makroschnipsel anstellen.

Es kommt drauf an, bei dem einen oder anderen Code erschließt sich mir die Bedeutung schon, bei anderen wiederum nicht.

Diese If Then-Befehle erscheinen mir sowieso widersprüchlich. Zwar ist mir schon klar was if und then bedeutet, ich hatte vor gefühlten 70 Jahren mal GWBasic an der Schule (und keine Ahnung mehr davon) aber vieles erscheint mir dennoch widersprüchlich.
Z.B. bei dem hier

If Selection.Type <> wdSelectionShape Then
Selection.InlineShapes(1).ConvertToShape.Select
End If

Damit kann man InlineShapes in normale Objekte umwandeln.
Dann sollte es ja naheliegend sein, dass dies auch umgekehrt funktioniert. Tut es aber nicht.
Ich weiß zwar nicht was <> bedeuten soll (dir zufolge bedeutet es kein), aber zumindest bei der Umwandlung von InlineShape zu Objekt funktioniert es und das obwohl es definitiv ein InlineShape ist.

Dennoch habe ich deinen Rat befolgt und ausprobiert was passiert wenn ich stattdessen ein = setze, dann kommt der Fehler "falscher Parameter" mit Verweiis auf die Zeile ConvertToInlineShape
Despistado ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.