#8 その他のアクション

ここで使われるメソッド/アクション
  • Hourglass/砂時計ポインタ
  • MsgBox/メッセージボックス
  • SendKeys/キー送信
  • Beep/警告音
  • Quit/終了
  • RunApp/アプリケーションの実行

砂時計ポインタを表示する

'マウスポインタを砂時計にします
DoCmd.Hourglass True

'マウスポインタを元に戻します
DoCmd.Hourglass False

※一般的には、マウスポインタを砂時計に変えたら、最後には元の状態に戻しておきます。その間の処理でエラーが発生した場合も考慮して、エラートラップルーチンなどにも「DoCmd.Hourglass False」の1行を記述しておくとよいでしょう。

メッセージボックスを表示する

'情報メッセージを表示します
MsgBox "処理を完了しました!", vbInformation, "My App"

※「MsgBox」はDoCmdのメソッドではなく"関数"です。VBAではこの関数を使います。関数ということで、その返り値を取得することもできます。返り値とは、[OK]ボタンが押された、[キャンセル]ボタンが押された、[はい]ボタンが押された、といったユーザーの操作を表すものです。それによって、あとの処理を切り替えることができます。これらの引数は非常にたくさんありますので、詳細はヘルプをご覧ください。

Accessにキー送信する

'[Alt]キーを押しながらの[R]キー、続いて[F]キー、[A]キーを順番に送信します
'これは、メニューから[レコード]-[フィルタ]-[フィルタ/並べ替えの編集]を実行したのと同じです(この例はフォームが開いているときに有効です)
SendKeys "%RFA"

※SendKeysはDoCmdのメソッドではなく"ステートメント"です。
※通常は、SendKeysステートメントではなく、DocmdオブジェクトのRunCommandメソッドを使った方がよいようです。SendKeysステートメントは一方的に命令を送り出すだけなので、どうしても動作が不安定になってしまいます。
※CtrlキーやShiftキーを押しながらの操作や、ファンクションキーの送信など、さまざまなキーバリエーションがありますので、詳細についてはヘルプをご覧ください。

警告音を鳴らす

Beep

Accessを終了する

DoCmd.Quit

※Applicationオブジェクトにもまったく同じ動作をする Quitメソッドがあります。したがって、"Quit"という記述だけでもOKです。

他のアプリケーションを実行する

「アプリケーションの実行」アクションに対応するDoCmdオブジェクトのメソッドはありません。VBAでは「Shell関数」を使います。

'メモ帳を元のサイズと位置で実行します
Shell "NOTEPAD.EXE"

'メモ帳を最大化して実行します
Shell "NOTEPAD.EXE", vbMaximizedFocus


「Shell」は関数ですので、その返り値をチェックすることによって、指定したアプリケーションが正常に起動したかどうかチェックすることができます。

If Shell("NOTEPAD.EXE") = 0 Then
  Beep
  MsgBox "メモ帳を起動できませんでした!"
End If

| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved