PowerPoint Jeopardy (3 / 5 steg)
Steg 3: Lägga till i koden
(Obs: alla "kod" kommer att vara i kursiv stil. När du skriver det i det finns inget behov av kursiv stil, det hjälper bara till att skilja den från resten av texten här.)
När vi skapade först vår makro, innan vi lagt till form, fanns det ett fönster med lite text i den. Vi vill markera att fönstret nu. Däremellan "Sub GameBoardControl ()" och "End Sub" du vill kopiera och klistra in följande:
Om Windows.Count = 0 då MsgBox "Det finns ingen aktiv fönster.", vbOKCancel, "Nr fönster är öppna"
ControlBoard.Show
Den första raden kommer att hjälpa oss att undvika fel på vägen, och den andra raden är vad som gör vår form vi gjorde bara visas när vi kör makrot. Utan "ControlBoard.Show" skulle vi aldrig se form när vi kör makrot. Naturligtvis, om du heter din form något annat än ControlBoard kommer du vill anpassa den till ditt namn.
Vi är nu klar med textfönstret och du kan nu stänga den, eller bara hålla det öppet.
Nästa vill vi flytta tillbaka till formuläret.
Dubbelklicka på din "Initiera spel ombord" kommandoknapp. Detta öppnar upp ett fönster med följande överst på skärmen:
Private Sub CmdIniGB_Click)
End Sub
Oavsett vilken kod som vi satt där emellan kommer att dessa två linjer köras när knappen trycks. Detta är den knapp som vi ska trycka på när vi vill initiera spelplanen. Vad vi vill ska hända är att ta de värden som anges i textrutan låg pris och öka och uppdatera den första bilden i presentationen med rätt pris värdena i varje ruta. Nästa vill vi gå igenom alla svar bilder och uppdatera titeln med rätt kategorinamn och pris värde för varje. Vi kommer att vilja sätta följande kod mellan dessa två linjer (jag ska ge en förklaring av varje bit när vi går längs):
Dim boardPos As Integer boardPos = 1
Dim prizeValue As Integer
Dim prizeValueIncrease As Integer
Ställa in gameBoard = ActivePresentation.Slides(1)
prizeValue = ControlBoard.LowPrizeBox.Text
prizeValueIncrease = ControlBoard.IncreaseBox.Text
I de tre första raderna deklarerar vi variabler som vi kommer att arbeta med i det här avsnittet. Detta innebär att vi nu kan använda boardPos, prizeValue och prizeValueIncrease som variabler och sätta deras värde till (nästan) alla integer (heltal). I den fjärde raden anger vi gameBoard lika med ActivePresentation.Slides(1). Vad detta innebär är att när vi använder "gameBoard" i koden, programmet kommer att erkänna det som den första bilden i vår presentation (som om du kommer ihåg, den första bilden i vår presentation är våra spelplanen). I de tre sista raderna jag tar de variabler som vi nyligen förklarade och ger dem värden. Om inte de få ändrade senare i koden, boardPos har värdet 1, och prizeValue och prizeValueIncrease måste värdet av vad som finns i de textrutor som vi gjort på ControlBoard.
För boardPos = 1-5
gameBoard.Shapes(boardPos). TextFrame.TextRange.Text = prizeValue
Nästa boardPos
Vad den första raden här säger oss är att vi kommer att köra kod på andra raden så länge den variabla boardPos är nummer 1, 2, 3, 4 eller 5. Den andra raden är kod som det kommer att köras. Vad detta innebär är att ta prizeValue och ändra texten i motsvarande form på spelplanen. Eller med andra ord, när boardPos är 1, det går till spelfältet (vår första bild i presentationen) och tar former nummer 1 (det är därför vi sa tidigare att det var viktigt att veta numret på varje form läggas till. Om du lägger din i en annan ordning, kommer du vill göra ändringen i koden) och ändrar texten (vad som skrivs på datorskärmen) till det heltal som är i variabeln prizeValue (som bara en sekund sedan vi satt lika med textrutan pris värde på styrelsen kontrollen). Den sista raden gör att boardPos ökar med 1. Det kommer att fortsätta göra så tills den tredje raden kod i det här avsnittet gör boardPos inrease till 6. När det är 6, flyttar till följande:
prizeValue = prizeValue + prizeValueIncrease
Vad detta innebär är inställd den variabla prizeValue lika med summan av prizeValue plus prizeValueIncrease. Den tidigare uppsättningen kod ändras texten i formen på den första raden i svar till lägsta värdet av priserna. Denna kodrad blir oss redo för den andra raden av svar.
I följande kod gör vi vad vi gjorde ovan, förutom att vi flyttar ner styrelsen och ökar priset värdet för varje rad. Låt mig veta om någon mer förklaring behövs:
För boardPos = 6-10
gameBoard.Shapes(boardPos). TextFrame.TextRange.Text = prizeValue
Nästa boardPos
prizeValue = prizeValue + prizeValueIncrease
För boardPos = 11 till 15
gameBoard.Shapes(boardPos). TextFrame.TextRange.Text = prizeValue
Nästa boardPos
prizeValue = prizeValue + prizeValueIncrease
För boardPos = 16-20
gameBoard.Shapes(boardPos). TextFrame.TextRange.Text = prizeValue
Nästa
All tidigare kod användes för att lägga till rätt pris värdena i rutorna svar på våra spelplanen (bild 1). I följande kod används för att ändra titeln på varje svar bild (bilder 2-21) till motsvarande kategori och pris värde:
(Obs: koden följande detta bör alla på 1 rad i programmet. Tyvärr ser det ut trasiga upp här)
ActivePresentation.Slides(2). Shapes(1). TextFrame.TextRange.Text =
ActivePresentation.Slides(1). Shapes(21). TextFrame.TextRange.Text + "$" +
ActivePresentation.Slides(1). Shapes(1). TextFrame.TextRange.Text
Okej, kan bryta detta ner bit för bit. Den första delen (ActivePresentation.Slides(2). Shapes(1). TextFrame.TextRange.Text) säger att vi vill ta den första formen (bör formen "title") i bild två (som vi sa tidigare skulle vara CatOne som lägsta pris-värde) och ändra texten i formen på vad är efter likhetstecknet (som vid det här laget bör du kunna gissa vad det är). Form 21 (om du minns) är den form som motsvarar texten i den första kategorin och form 1 är texten i den lägsta pris värdet för de kategorierna. Det innebär att denna bit av koden bör ändra titeln i bild 2 till "CatOne $100."
Grattis! Vi har nu bara att lägga till i koden för resten av svaret bilder och vi är färdiga med detta kommandoknapp (kopiera och klistra in koden men ändra bildnummer och formnummer med lämpliga dem)! (Resten av koden kan ses i PowerPoint-presentationen, men om du vill kan jag skicka den till dig). Om du inte minns vilket nummer är formerna på spelplanen, bara kolla bilden nedan för en repetitionskurs.