Option Explicit Sub CngImg(ByVal cvsArgs) Dim aryArgs, strItem, intNumDst, intNumSrc, intStep, i, n aryArgs = Split(cvsArgs, ",") ' CVS を配列に分割 If UBound(aryArgs) <> 2 Then Exit Sub ' 配列要素数が 3 以外の時は Exit If Not IsNumeric(aryArgs(1)) Or Not IsNumeric(aryArgs(2)) Then Exit Sub ' 第 1~2 要素が数値でないときは Exit strItem = CStr(aryArgs(0)) ' 第 0 要素を文字列化(画像種類名) intNumDst = CInt(aryArgs(1)) ' 第 1 要素を数値化(ページ内で使用している当該画像の数(id="image1", …, id="image??" の ?? の最大値)) intStep = CInt(aryArgs(2)) ' 第 2 要素を数値化(いくつの画像を同じ画像にするか(1=それぞれ単独、2=image1とimage2が同じ画像、…、4=image1とimage2とimage3とimage4が同じ画像)) If intStep < 1 Or intStep > 4 Then Exit Sub ' 第 2 要素が 1~4 でないときは Exit Select Case strItem Case "ball" intNumSrc = 6 Case "cake" intNumSrc = 13 Case "cookie" intNumSrc = 11 Case "konpei" intNumSrc = 12 Case "kudamono" intNumSrc = 12 Case "note" intNumSrc = 15 Case "pin" intNumSrc = 14 Case "ribbon" intNumSrc = 11 Case "sakana" intNumSrc = 20 Case "shell" intNumSrc = 15 Case "stone" intNumSrc = 11 Case Else Exit Sub ' 該当がないときは Exit End Select Randomize() For i = 1 To intNumDst Step intStep n = Int(Rnd() * intNumSrc) + 1 Document.Images("image" & i).Src = "images/" & strItem & n & ".gif" ' 画像を設定 If intStep > 1 Then Document.Images("image" & i + 1).Src = "images/" & strItem & n & ".gif" ' +1 の番号も image?? も同じ画像に設定 If intStep > 2 Then Document.Images("image" & i + 2).Src = "images/" & strItem & n & ".gif" ' +2 の番号も image?? も同じ画像に設定 If intStep > 3 Then Document.Images("image" & i + 3).Src = "images/" & strItem & n & ".gif" ' +3 の番号も image?? も同じ画像に設定 Next End Sub