難易度:★☆☆(かんたん)
※当校のExcel VBAコースを補足する内容となっています。
画面に表示させた1つのイラストが、5秒おきに2つ、4つ、8つ…と倍ずつ増えていくプログラムを作ってみましょう。
どこかで聞いたような…
VBAプログラムで再現してみよう
増えすぎると大変なので、1024個でストップさせるよ
まずはじめに、下の画像を右クリックして、Excelファイルと同じフォルダに「名前を付けて画像を保存」しておきましょう。ファイル名は「sweetbun.png」にします。
次に新しくExcelを立ち上げて、VBEの「コードウィンドウ」を出しておきましょう。
↓クリックすると、入力するコード(一例)が表示されます。まずはそのまま入力してみましょう。
Sub Baibain()
Dim myFileName As String
Dim myShape As Shape
Dim Pic As Shape
Dim i, j, i2, Cnt As Long
Dim x, y As Long
Const wFactor = 2 ^ 9
Const wWidth = 30
Const wHeight = 30
myFileName = ActiveWorkbook.Path & "\sweetbun.png"
i2 = 1
Cnt = 0
Randomize
With ActiveSheet
For i = 1 To 10
For j = Cnt + 1 To 2 ^ i
x = Int(wFactor * Rnd + 1)
y = Int(wFactor * Rnd + 1)
DoEvents
Set myShape = .Shapes.AddPicture( _
Filename:=myFileName, _
LinkToFile:=True, SaveWithDocument:=False, _
Width:=wWidth, Height:=wHeight, _
Left:=x, Top:=y)
Cnt = Cnt + 1
myShape.Name = "図" & Cnt
DoEvents
.Range("A1") = Cnt
Next j
Application.Wait (Now + TimeValue("0:00:05"))
Next i
End With
End Sub
コードを入力し終わったら、保存して実行します。
- コードを入力したウィンドウを閉じます。
- 「F12」キーを押して、「名前をつけて保存」をします。このとき、「ファイルの種類」を「Excelマクロ有効ブック」にしてください。
- 「Alt」キーを押しながら「F8」キーを押すと、マクロ選択のウィンドウが表示されます。「Baibain」を選んで実行してください。エラーが出たら、「Alt」キーを押しながら「F11」キーを押してVBEの画面を再度表示させてからコードをよく見て修正し、もう一度①から再度実行してください。