扇形を動かす
タイマーを作ったときに扇形で遊んだので,それを書きます。
Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub test() ActivePresentation.SlideShowSettings.Run 'スライドショースタート Dim TSlide As Slide: Set TSlide = ActivePresentation.Slides(1) On Error Resume Next '図形をどんどん書いてしまうので,前のを消します。 TSlide.Shapes("扇形").Delete On Error GoTo 0 Dim shpPie As Shape:Set shpPie = TSlide.Shapes.AddShape(msoShapePie, 50, 50, 100, 100) Dim shpTxt As Shape:Set shpTxt = TSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 200, 50, 100, 100) shpPie.Name = "扇形" shpPie.Adjustments(1) = -90 Dim i As Long For i = 0 To 36 shpPie.Adjustments(2) = -89.9 + i * 10 shpTxt.TextFrame.TextRange = i * 10 '画面更新をきちんとするためにテキストを書かせる。 Sleep 100 DoEvents Next shpPie.Adjustments(2) = -90.5 '最後円に近い形で残るように微調整 shpTxt.Delete 'テキストさよなら SlideShowWindows(1).View.Exit 'スライドショーストップ Set TSlide = Nothing Set shpPie = Nothing End Sub
前準備がいらないように,全部コードで。
扇形のAdjustmentを動かしてあげるだけで扇形が変化していくので,タイマーとかと相性がいいなぁと思ってます。
タイマーはAPIのSetTimerとKillTimerでできます。
他の方のコードをちょこっといじっただけのものになってるので,載せるのはやめて・・・(;´▽`A``
リンクだけでも貼ろうかと思ったらソースが見当たらない・・ずいぶん前に見たしなぁ・・・
あれれ。 AddressOf演算子が使われてて参照渡しに興味を持つきっかけになったコードだったんですが
見当たりません。いつか書くことなくなったら載せてみます。