難易度:★☆☆(かんたん)

※当校の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の画面を再度表示させてからコードをよく見て修正し、もう一度①から再度実行してください。