"Conditioneel" shapes selecteren

Status
Niet open voor verdere reacties.

Viggo

Gebruiker
Lid geworden
20 okt 2006
Berichten
26
Hallo,

Ik heb deze vraag al een tijdje geleden onder "Powerpoint" gezet, maar geen reactie gekregen, misschien had ik 'm hier moeten zetten...betreft het volgende:

Ik heb een PP-presentatie met muziek en veel animatie. Elke dia bevat een aantal autovormen, sommige mét foto, sommige zonder. Er wordt één foto per dia gebruikt ( verschillende vormen met dezelfde foto dus ). Deze PP wordt a.h.w. "gerecycleerd",
t.t.z. na verloop van tijd wordt ie opnieuw gebruikt, maar dan met andere foto's. Nu staan er - met die animaties - nogal behoorlijk wat overlappende shapes in, wat het selecteren een lastige en tijdrovende bezigheid maakt.

Wat ik graag zou hebben is een Vba-procedure die elke autoshape WAARIN EEN FOTO STAAT selecteert, en de andere dus ongemoeid laat. Vervolgens hoef ik dan maar rechts te klikken en de nieuwe foto in te laden. Als ik zo dia per dia kan afwerken zal mij dat heel wat tijd besparen.

Handig zou bvb. een extra menu'tje zijn dat verschijnt als ik de PP open, ik weet echter niet of dat kan ( zoals bij Excel in de Workbook_Open-procedure )?

Dank bij voorbaat________Viggo
 
Dag Viggo,

Je zou een dialoogvenster kunnen maken met een combobox met foto's en een combobox met dia's en een knop om ze te plaatsen c.q. te verwijderen.
Elke shape heeft een naam en een type aanduiding.

Gegroet,

Axel.
 
Axel,

Ik vrees dat ik niet helemaal mee ben:o ...kan je iets duidelijker zijn?

Groeten_________Viggo
 
Probeer de volgende macro eens
Code:
Sub VervangFoto()
Dim b As Integer
Dim i As Integer
Dim p As Integer

b = 0
For i = 1 To ActiveWindow.Selection.SlideRange.Shapes.Count
    p = ActiveWindow.Selection.SlideRange.Shapes(i).Fill.TextureType
    If p = 2 Then
        ActiveWindow.Selection.SlideRange.Shapes(i).Fill.UserPicture _
        "c:\temp\foto.jpg"  'Hier je eigen foto opgeven
        b = b + 1
    End If
Next
MsgBox (i - 1 & " shapes, waarvan " & b & " met foto")
End Sub
 
Jan,

Ik vermoed dat TextureType 2 dan een fotofill zal zijn. Ik heb de macro geprobeerd, maar
hij geeft steeds 0 foto's aan, hoewel er steeds een aantal shapes mét foto zijn.:(

Groeten_______Viggo
 
Heb snel een andere pp gemaakt met enkele shapes ( mét en zonder foto ) ==> daar werkt het wel, raar...maar de macro werkt dus. Wat het probleem is met de originele file knobbel ik nog wel uit.

Nog één dingetje: Aangezien elke dia een andere foto krijgt zou het handig zijn om een soort van "Application.Dialogs(xlDialogOpen).Show Arg1:="*.jpg"' te krijgen i.p.v. telkens het pad in de code te moeten aanpassen. Deze code blijkt echter in powerpoint niet te werken.

Als je dit nog voor elkaar zou krijgen...:D

Groeten________Viggo
 
xlDialogOpen = voor Excel (xl ;) )

Uit de help van VBA PowerPoint;
Code:
Sub Main()

    'Declare a variable as a FileDialog object.
    Dim fd As FileDialog

    'Create a FileDialog object as a File Picker dialog box.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    'Declare a variable to contain the path
    'of each selected item. Even though the path is a String,
    'the variable must be a Variant because For Each...Next
    'routines only work with Variants and Objects.
    Dim vrtSelectedItem As Variant

    'Use a With...End With block to reference the FileDialog object.
    With fd

        'Use the Show method to display the File Picker dialog box and return the user's action.
        'The user pressed the action button.
        If .Show = -1 Then

            'Step through each string in the FileDialogSelectedItems collection.
            For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem is a String that contains the path of each selected item.
                'You can use any file I/O functions that you want to work with this path.
                'This example simply displays the path in a message box.
                MsgBox "The path is: " & vrtSelectedItem

            Next vrtSelectedItem
        'The user pressed Cancel.
        Else
        End If
    End With

    'Set the object variable to Nothing.
    Set fd = Nothing

End Sub

Met enkele kleine aanpassingen kun je met deze code denk ik al ver komen.
Zoek in VBA help op FileDialog voor nog meer uitleg en voorbeelden.
 
Ben ondertussen al ff aan het prutsen geweest, maar krijg het niet voor elkaar. Het dialoogvenster oproepen is geen probleem, maar het in de code zetten dat ie de geselecteerde afbeelding in de foto - shapes moet zetten, lukt me niet. Met een inputbox lukt het wel, maar dan moet ik toch nog steeds het default - pad aanpassen, & dat is niet de bedoeling.

Viggo
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan