アドベントカレンダー 11日目
コンプラの関係で離席する時は、パソコンにロックをしなさいと口うるさくなる今日この頃。
一定の操作がないとするロックがかかるような設定になったりとコンプラさまさまなわけですが…
ときおり、一部の人だけコードが動かないなんてことがおきるもんだから
その人の環境で調査するため、ログインされた状態で引き渡してもらうのですが
上記理由から、すぐにロックがかかったりするわけですよね。
もちろん、システムなんていじれないようにされてるので、
そうなると、なんかのキーを送信すりゃいいじゃん!
となるのでこうなった。
ひとまず、Ctrlを送信。
これだけでも、十分なんだけど、
これだと、実行しているのか止まっているのか不明なので
もうちょっと視認性を高めるとして、オートシェイプを追加して…
ボタンでスタート/ストップできるようにしてみると。
コンプラの関係で離席する時は、パソコンにロックをしなさいと口うるさくなる今日この頃。
一定の操作がないとするロックがかかるような設定になったりとコンプラさまさまなわけですが…
ときおり、一部の人だけコードが動かないなんてことがおきるもんだから
その人の環境で調査するため、ログインされた状態で引き渡してもらうのですが
上記理由から、すぐにロックがかかったりするわけですよね。
もちろん、システムなんていじれないようにされてるので、
そうなると、なんかのキーを送信すりゃいいじゃん!
となるのでこうなった。
Option Explicit Sub SampleCode() Dim WSH As Object Set WSH = CreateObject("Wscript.Shell") Do WSH.SendKeys "^" DoEvents Loop Set WSH = Nothing End Sub
ひとまず、Ctrlを送信。
これだけでも、十分なんだけど、
これだと、実行しているのか止まっているのか不明なので
もうちょっと視認性を高めるとして、オートシェイプを追加して…
ボタンでスタート/ストップできるようにしてみると。
Option Explicit Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) Dim Flag As Boolean Sub ToggleButton() Dim ToggleName As String ToggleName = Shapes("Button").TextFrame.Characters.Text If ToggleName = "スタート" Then Shapes("Button").TextFrame.Characters.Text = "ストップ" Flag = False Call Loooooop Else Shapes("Button").TextFrame.Characters.Text = "スタート" Flag = True End If End Sub Sub Loooooop() Dim WSH As Object '** Objectの生成 ** Set WSH = CreateObject("Wscript.Shell") Flag = False Do If Flag Then Exit Do WSH.SendKeys "^" Range("B1") = Time DoEvents Sleep (100) Loop Set WSH = Nothing MsgBox "停止" End Sub
0 件のコメント:
コメントを投稿