| 
    
     |  | ▼bykin さん: 
 >任意に停止/再開を繰り替えすんやったら、一旦プロシージャを抜けるようにして、
 >フラグで判定すればええんとちゃいまっか?
 
 ponponです。早速の回答ありがとうございます。
 試してみました。ばっちりです。しかし、・・・
 CurrentPos
 Flg
 の使い方がいまいちよくわかりません。
 Flgの方は時々コードに出てくるので、何となく判定に使っていることはわかります。
 この場合でいうと、一時停止の時にFlgをfalseにして、一旦プロシージャを抜ける。ということなんでしょうが。
 >Sub 一時停止()
 >  If Flg Then Flg = False
 >End Sub
 
 Sub 移動開始()やfunctionを実行しているときに、FlgがFalseになることで
 一旦プロシージャを抜けるというのが、理解できません。すみません。
 
 CurrentPos(カレントポジション?)というのは、stopしたところの頂点340+iの値だと思うのですが、
 >Sub 移動開始()
 >  If Not Flg Then
 >    Flg = True
 
 CurrentPos = 頂点の移動(CurrentPos)
 ↑この意味がわかりません。
 >  End If
 >End Sub
 
 また、Function 頂点の移動は、Flgがtrueの時は、頂点を動かし、Flgがfalseの時は、頂点のiの値を返す関数だと思うのですが、
 CurrentPos = 頂点の移動(CurrentPos)で移動が再開されるのかが、どうしてもわかりません。
 コードに書かれていることは、何となくわかるのですが、意味が理解できません。
 もし、時間があるのでしたら、考え方を教えていただけないでしょうか?
 こういった手法は、本にはあまり書かれていません。本を頼りに今まで下手なコードですましてきていますので、脱初心者へのステップにしたいと考えています。よろしくお願いします。
 >Function 頂点の移動(ByVal Counter As Long) As Long
 >  Dim i As Long
 >
 >  With Triangle
 >    With .Nodes
 >      For i = Counter To 250 Step 2
 >        If Flg Then
 >          If Counter = 250 Then Flg = False
 >          .SetPosition 2, 340 + i, 100
 >          DoEvents
 >          Sleep 100
 >        Else
 >          頂点の移動 = i
 >          Exit Function
 >        End If
 >      Next
 >    End With
 >    .Fill.Visible = msoTrue
 >    .Line.DashStyle = msoLineSolid
 >  End With
 >  Flg = False
 >  頂点の移動 = 0
 >End Function
 
 |  |