Creare un power point utilizzo di macro di excel

Ho un problema interessante, io sono sicuro di. Non ho lavorato con punto luce e hanno poco di macro di excel esperienza. Ho trovato molti problemi simili al mio, ma nessuno di loro è abbastanza in forma il conto. Sto aiutando il mio ente di beneficenza locale con una raccolta di fondi e hanno bisogno di un modo per fare un triva sorta di gioco. Il gioco sarà visualizzato con powerpoint, e tutte le domande, le scelte, e le risposte sono in un foglio di excel. Il modo in cui è articolata la nostra è una domanda per riga, e le colonne sono: Domanda, opzioni, le risposte e di categoria.

Ho gestito la categoria di ordinamento abbastanza abbastanza facile, ma ora ho bisogno di lavorare in qualche modo con la creazione di diapositive power point in modo tale che la domanda è il titolo, con le opzioni è il contenuto, e quindi la seguente slide è la risposta a quella domanda. Pertanto ogni domanda crea due scivoli, una domanda e una risposta diapositiva.

Esempio di riga (| denotano colonna):

Quale di questi è stato uno scultore italiano? | Michelangelo, tintoretto, da vinci, galilleo | michelangelo | Arte

In modo che il risultato sarebbe un lato con il titolo “Quale di questi è stato uno scultore italiano?” e il contenuto a) Michelangelo, b), tintoretto, c) da vinci, d) galilleo

slide semplicemente di essere “Michelangelo”

  • Non hai bisogno di VBA per fare questo. Utilizzando semplici formule in Excel per aggiornare i valori di una cella di riferimento per il database (probabilmente INDICE o la funzione di OFFSET e alcuni di convalida). Poi si dovrà collegare i due celle nella cartella di Power Point.
  • Non ho un database. Appena il file di excel con le colonne sopra indicato. Ci sono 700 righe del file e questo significa che ho bisogno di 1400 diapositive. Come può una cella la formula di creare una diapositiva di powerpoint?
  • Non hai bisogno di 1400 diapositive. Hai solo bisogno di 2 aggiornamenti quando viene effettuata una selezione nel tuo Foglio di Excel. E da database intendo il tuo Foglio di Excel.
  • Vedo quello che stai dicendo ora. Io in realtà non hanno bisogno di ognuno di diapositive per le finalità di come vengono esposte al pubblico. Anche perché questa è una cosa di tempo e le persone che saranno in esecuzione che non sono computer savy, il grande scivolo importo potrebbe essere più semplice. Inoltre, è ora al 100 domande in modo da 200 diapositive sono necessari ora.
  • Provare www.pptxbuilder.com
InformationsquelleAutor Clint L | 2015-04-15

 

2 Replies
  1. 3

    Sono riuscito a capire la codifica è ritrovato in una macro di excel. Non è la soluzione migliore, ma è facile da seguire e può essere modificata da qualcuno con lo stesso problema. FYI io sono l’asker di questa domanda, ma il mio computer è in serio bisogno di re-installare e non posso accedere a stack overflow…O bene. Ecco il mio codice che risolve questo problema. Si prega di notare che tutte le domande sono ordinate per categoria, prima così ho semplicemente cambiato l’inizio e la fine del loop di controllo variabili per fare nuove ppts dopo il salvataggio e la chiusura precedentemente creati. Il codice riportato di seguito potrebbe contenere codice preso da un altro stack overflow domande e riproposto:

    Sub CreatePowerPointQuestions()
    
     'Add a reference to the Microsoft PowerPoint Library by:
    '1. Go to Tools in the VBA menu
    '2. Click on Reference
    '3. Scroll down to Microsoft PowerPoint X.0 Object Library, check the box, and press Okay
    
    'First we declare the variables we will be using
        Dim newPowerPoint As PowerPoint.Application
        Dim activeSlide As PowerPoint.Slide
        Dim Question As String
        Dim Options As String 'comma separated list of options
        Dim Choices() As String 'split up options for printing
        Dim printOptions As String 'string to print in contents of slide
        Dim Answer As String
        Dim limit As Integer
    'set question amount:
        limit = 5
     'Look for existing instance
        On Error Resume Next
        Set newPowerPoint = GetObject(, "PowerPoint.Application")
        On Error GoTo 0
    
    'Let's create a new PowerPoint
        If newPowerPoint Is Nothing Then
            Set newPowerPoint = New PowerPoint.Application
        End If
    'Make a presentation in PowerPoint
        If newPowerPoint.Presentations.Count = 0 Then
            newPowerPoint.Presentations.Add
        End If
    
    'Show the PowerPoint
        newPowerPoint.Visible = True
    'Select worksheet and cells activate
        Worksheets("Sheet1").Activate
    
    'Loop through each question
        For i = 1 To limit
    
        'Add a new slide where we will paste the Question and Options:
            newPowerPoint.ActivePresentation.Slides.Add newPowerPoint.ActivePresentation.Slides.Count + 1, ppLayoutText
            newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.Count
            Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count)
    
        'Set the variables to the cells
            Question = ActiveSheet.Cells(i, 1).Value
            Options = ActiveSheet.Cells(i, 2).Value
            Answer = ActiveSheet.Cells(i, 3).Value
    
        'Split options into choices a,b,c,d based on comma separation
            Choices() = Split(Options, ", ")
        'Formate printOptions to paste into content
            printOptions = "A) " & Choices(0) & vbNewLine & "B) " & Choices(1) & vbNewLine & "C) " & Choices(2) & vbNewLine & "D) " & Choices(3)
            activeSlide.Shapes(2).TextFrame.TextRange.Text = printOptions
    
        'Set the title of the slide the same as the question for the options
            activeSlide.Shapes(1).TextFrame.TextRange.Text = Question
    
        'Add answer slide and select it
            newPowerPoint.ActivePresentation.Slides.Add newPowerPoint.ActivePresentation.Slides.Count + 1, ppLayoutText
            newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.Count
            Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count)
        'Set title:
            activeSlide.Shapes(1).TextFrame.TextRange.Text = "Answer:"
        'Set contents to answer:
            activeSlide.Shapes(2).TextFrame.TextRange.Text = Answer
        'Finished with a row (question)
        Next
    
    AppActivate ("Microsoft PowerPoint")
    Set activeSlide = Nothing
    Set newPowerPoint = Nothing
    
    End Sub
  2. 0

    Ho un commerciale PPT add-in che fa questo tipo di cosa, ma purtroppo non è questo esatta cosa.

    A grandi linee, si vuole iniziare con una presentazione PPT che ha due scivoli, ognuno dei quali ha il “segnaposto” caselle di testo … caselle di testo con il testo come @[email protected], @rispondere [email protected] e così via.

    Il codice sarebbe:

    Ottenere un conteggio del numero di righe di dati (cioè, il numero di Q&A far scorrere le coppie necessarie)

    Fare una copia della vostra partenza “modello” file PPT, quindi duplicare ogni diapositive originali n volte, dove n=numero di righe di dati nel foglio di calcolo.

    A piedi giù per le righe di dati, per ogni riga, sostituire la @[email protected] testo della diapositiva corrente, sostituire le opzioni nella diapositiva corrente, incrementare la diapositiva contatore, sostituire la @rispondere [email protected] nella diapositiva corrente, con la risposta della riga corrente di dati e così via.

    Si potrebbe scrivere in questo o in PPT o Excel; se hai dimestichezza con VBA/Excel, mi piacerebbe farlo anche lì.

Lascia un commento