コードのブログへの書き方練習
書いたコードをvbaのeditorに戻すと文字化けしてたので,ちょっと練習。
せっかくなので コード実行中のキー操作を受け入れさせる方法とスリープAPIで。
Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long Declare Sub Sleep Lib "kernel32" (ByVal dwmiliseconds As Long) Sub test(図形 as Shape) Dim TSlide As Slide: Set TSlide = ActivePresentation.Slides(図形.Parent.SlideIndex) Dim trgSleep As TextRange: Set trgSleep = TSlide.Shapes("スリープ").TextFrame.TextRange Dim flgStop As Boolean: flgStop = False Dim slpTime As Long Do 'いろいろ動作させる----------------- 'いろいろ終わり-------------------- DoEvents '一度解消&ほかのボタンとかの結果を受け入れれるように。 If GetAsyncKeyState(16) <> 0 Then Exit Do 'シフトを押したらループを抜けさせる If GetAsyncKeyState(vbKeyNumpad4) <> 0 Then slpTime = slpTime + 5 'テンキー4押したらスリープ増やす If GetAsyncKeyState(vbKeyNumpad1) <> 0 Then slpTime = slpTime - 5 'テンキー1押したらスリープ減らす If slpTime < 0 Then slpTime = 0 '0以下は許可しない trgSleep = slpTime 'テキストの更新を入れて,オートシェイプの描画や変更を画面にちゃんと反映させる Sleep slpTime 'スリープで速度調整 If flgStop = True Then Exit Sub 'ほかのボタンで flgStopをtrueにされたらループを抜ける Loop End Sub
ためし終わり。
上のコードを使ってみる下準備
コードを動かすボタンと,スリープという名前の図形(スリープの数値が出力されます)を準備してないと怒られます。
むしろ,パワーポイントはエラーが起きたとき,何も言わずに静かに終わるのが大変(;´▽`A``
visual basic editorから実行してあげたりしないとエラー箇所わからなくて困りますね。。
そういうときは,上のコードじゃ動かないので
Sub test() ' 図形 As Shape) Dim TSlide As Slide: Set TSlide = ActivePresentation.Slides(1) '図形.Parent.SlideIndex)
引数を取らないようにマクロを変えて,
[F5]や実行ボタンを使うか,イミディエイトウィンドウから実行してあげてください。
安定するまではだいたい上の状態でやってます。
横幅は狭いのが残念だけど,はみ出てるの面倒だけど・・・
幅が広いテンプレートがありました。
文字化けない!すごい。
はてなブログ初心者丸出しですみません(;´▽`A``