Yeni bir Ofis Uygulamaları dersi makalesi ile birlikteyiz.,
Belgelere eklenen ActiveX denetimlerini VBA kodları yardımıyla dinamik olarak kullanabilir, üzerinde düzenlemeler yapabilirsiniz. Belgeye eklediğimiz Image nesnesi yardımıyla Puzzle oyunu yapmaya çalışacağız. Puzzle oyunu için belgenize 9 adet image, 1 adet buton, 1 adet textbox ekleyiniz.
Programa ait kodları yazalım.
Aşağıdaki kodları Module kısmına yazınız.
Public dizi(9) As Integer
Sub puzzle()
Randomize
For i = 1 To 9
dizi(i) = 0
Next
dizi(1) = Int((Rnd * 9) + 1)
Do
dizi(2) = Int((Rnd * 9) + 1)
Loop While dizi(2) = dizi(1)
Do
dizi(3) = Int((Rnd * 9) + 1)
Loop While dizi(3) = dizi(1) Or dizi(3) = dizi(2)
Do
dizi(4) = Int((Rnd * 9) + 1)
Loop While dizi(4) = dizi(1) Or dizi(4) = dizi(2) Or dizi(4) = dizi(3)
Do
dizi(5) = Int((Rnd * 9) + 1)
Loop While dizi(5) = dizi(1) Or dizi(5) = dizi(2) Or dizi(5) = dizi(3) Or dizi(5) = dizi(4)
Do
dizi(6) = Int((Rnd * 9) + 1)
Loop While dizi(6) = dizi(1) Or dizi(6) = dizi(2) Or dizi(6) = dizi(3) Or dizi(6) = dizi(4) Or dizi(6) = dizi(5)
Do
dizi(7) = Int((Rnd * 9) + 1)
Loop While dizi(7) = dizi(1) Or dizi(7) = dizi(2) Or dizi(7) = dizi(3) Or dizi(7) = dizi(4) Or dizi(7) = dizi(5) Or dizi(7) = dizi(6)
Do
dizi(8) = Int((Rnd * 9) + 1)
Loop While dizi(8) = dizi(1) Or dizi(8) = dizi(2) Or dizi(8) = dizi(3) Or dizi(8) = dizi(4) Or dizi(8) = dizi(5) Or dizi(8) = dizi(6) Or dizi(8) = dizi(7)
Do
dizi(9) = Int((Rnd * 9) + 1)
Loop While dizi(9) = dizi(1) Or dizi(9) = dizi(2) Or dizi(9) = dizi(3) Or dizi(9) = dizi(4) Or dizi(9) = dizi(5) Or dizi(9) = dizi(6) Or dizi(9) = dizi(7) Or dizi(9) = dizi(8)
Nesneleri_Dagit
ActiveDocument.TextBox1.Text = Empty
End Sub
Private Sub Nesneleri_Dagit()
With ActiveDocument
.Shapes(dizi(1)).Top = 0
.Shapes(dizi(1)).Left = 0
.Shapes(dizi(2)).Top = 70
.Shapes(dizi(2)).Left = 0
.Shapes(dizi(3)).Top = 140
.Shapes(dizi(3)).Left = 0
.Shapes(dizi(4)).Top = 0
.Shapes(dizi(4)).Left = 70
.Shapes(dizi(5)).Top = 70
.Shapes(dizi(5)).Left = 70
.Shapes(dizi(6)).Top = 140
.Shapes(dizi(6)).Left = 70
.Shapes(dizi(7)).Top = 0
.Shapes(dizi(7)).Left = 140
.Shapes(dizi(8)).Top = 70
.Shapes(dizi(8)).Left = 140
.Shapes(dizi(9)).Top = 140
.Shapes(dizi(9)).Left = 140
End With
End Sub
Aşağıdaki kodları Documan sayfasına yazınız.
Private Sub CommandButton1_Click()
puzzle
End Sub
Private Sub Image1_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image1.Left)
ust = Val(Image1.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image1.Left = sols
Image1.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Private Sub Image2_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image2.Left)
ust = Val(Image2.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image2.Left = sols
Image2.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Private Sub Image3_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image3.Left)
ust = Val(Image3.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image3.Left = sols
Image3.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Private Sub Image4_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image4.Left)
ust = Val(Image4.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image4.Left = sols
Image4.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Private Sub Image5_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image5.Left)
ust = Val(Image5.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image5.Left = sols
Image5.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Private Sub Image6_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image6.Left)
ust = Val(Image6.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image6.Left = sols
Image6.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Private Sub Image7_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image7.Left)
ust = Val(Image7.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image7.Left = sols
Image7.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Private Sub Image8_Click()
TextBox1.Text = Val(TextBox1.Text) + 1
sol = Val(Image8.Left)
ust = Val(Image8.Top)
sols = Val(Image9.Left)
usts = Val(Image9.Top)
If sol <> sols And ust <> usts Then Exit Sub
If sol - sols > 72 Or sols - sol > 72 Then Exit Sub
If ust - usts > 72 Or usts - ust > 72 Then Exit Sub
Image8.Left = sols
Image8.Top = usts
Image9.Left = sol
Image9.Top = ust
End Sub
Butona basarak oyunu başlatalım. Aşağıdaki sonucu görebilirsiniz.
Uygulamayı buradan indirebilir, sorunlarınızı ve önerilerinizi yorumlar kısmından bize ulaştırabilirsiniz.
|