Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
06.04.2017 07:24:11 |
Stephan |
|
|
|
06.04.2017 15:22:26 |
BigBen |
|
|
|
06.04.2017 16:39:51 |
Stephan |
|
|
|
07.04.2017 15:44:53 |
BigBen |
|
|
|
08.04.2017 22:12:57 |
Stephan |
|
|
|
09.04.2017 09:10:12 |
BigBen |
|
|
|
09.04.2017 09:13:36 |
BigBen |
|
|
|
09.04.2017 09:24:49 |
BigBen |
|
|
|
09.04.2017 10:18:55 |
Gast18830 |
|
|
|
09.04.2017 10:29:16 |
BigBen |
|
|
Selection.ShapeRange(2).Delete: unterschiedlich in PPT 2013 und 365 |
09.04.2017 21:42:03 |
Stephan |
|
|
Von:
Stephan |
Datum:
09.04.2017 21:42:03 |
Views:
562 |
Rating:
|
Antwort:
|
Thema:
Selection.ShapeRange(2).Delete: unterschiedlich in PPT 2013 und 365 |
Hallo BibBen,
leider hat deine Lösung nicht funktioniert. In Office 2016 wirft das rng.Select einen Fehler wirft, da die zuvor gelöschte Shape zwar noch von rng referenziert wird, jedoch nicht mehr vorhanden ist.
Ich habe jetzt allerdings eine funktionierende Version:
Sub DeleteLastSelectedShape()
Dim iShCnt As Integer
Dim rng As ShapeRange
Select Case Application.Version
Case "16.0"
Set rng = ActiveWindow.Selection.ShapeRange
iShCnt = rng.Count
If iShCnt > 0 Then
Dim selIDs() As Integer
ReDim selIDs(iShCnt)
For ii = 1 To iShCnt
selIDs(ii) = ActiveWindow.Selection.ShapeRange(ii).Id
Next ii
'folgender Aufruf sorgt in Office 2016 dafür, dass nichts mehr ausgewählt wird
ActiveWindow.Selection.ShapeRange(iShCnt).Delete 'zuletzt markiertes Element löschen
'alle Elemente der Seite durchlaufen und prüfen, ob sie vorher ausgewählt waren
'falls ja, wird das Element ausgewählt per .Select
For ii = 1 To iShCnt - 1
For jj = 1 To ActiveSlide.Shapes.Range.Count
If ActiveSlide.Shapes.Range(jj).Id = selIDs(ii) Then
ActiveSlide.Shapes.Range(jj).Select (msoFalse)
End If
Next jj
Next ii
End If
Case Else
iShCnt = ActiveWindow.Selection.ShapeRange.Count
If iShCnt > 0 Then
ActiveWindow.Selection.ShapeRange(iShCnt).Delete
End If
End Select
End Sub
Function ActiveSlide() As Slide
'liefert eine Referenz auf die aktuelle Folie
'http://www.vbarchiv.net/tipps/tipp_993-aktive-folie-in-powerpoint-ermitteln.html
On Error GoTo ErrHandler
Set ActiveSlide = ActivePresentation.Slides( _
ActiveWindow.View.Slide.Name)
Exit Function
ErrHandler:
Set ActiveSlide = Nothing
End Function
Ist zwar etwas komplizierter als erwartet, aber es funktioniert.
Danke für deine Hilfe
Stephan
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
06.04.2017 07:24:11 |
Stephan |
|
|
|
06.04.2017 15:22:26 |
BigBen |
|
|
|
06.04.2017 16:39:51 |
Stephan |
|
|
|
07.04.2017 15:44:53 |
BigBen |
|
|
|
08.04.2017 22:12:57 |
Stephan |
|
|
|
09.04.2017 09:10:12 |
BigBen |
|
|
|
09.04.2017 09:13:36 |
BigBen |
|
|
|
09.04.2017 09:24:49 |
BigBen |
|
|
|
09.04.2017 10:18:55 |
Gast18830 |
|
|
|
09.04.2017 10:29:16 |
BigBen |
|
|
Selection.ShapeRange(2).Delete: unterschiedlich in PPT 2013 und 365 |
09.04.2017 21:42:03 |
Stephan |
|
|