アクセスキーは、ある画面を開いている時だけしか機能しないよね。でも、どの画面を開いている時でも、同じ処理をさせたい場合はどうしたらいいの?
例えば、[F2]キーを押したら終了時刻まであと何時間かが表示されたらうれしいな~
そんな時には、AutoKeysマクロを作成すればいいんだよ。
あるキーを押した時に実行されるマクロです。マクロ名を「AutoKeys」に、サブマクロ名にキー値を割り当てることによって実現します。
【前準備】まず、標準モジュールに下記のような終了時刻まであと何時間かが表示されるFunctionプロシージャを作成しておきます。
Function EndTimeGet()
On Error Resume Next
Dim TempS As String
Dim NowTime As Variant
NowTime = Time '現在時刻を代入
TempS = "現在時刻:" & Format(NowTime, "hh:nn") '現在時刻を、hh;nn形式で表示
TempS = TempS & vbCrLf & "終了時刻:17:00" '終了時刻は、17:00で固定
TempS = TempS & vbCrLf & vbCrLf & "終了時刻まで、あと" & Int(DateDiff("n", NowTime, "17:00") / 60) & "時間" & Int(DateDiff("n", NowTime, "17:00") Mod 60) & "分です。" '差分を計算
MsgBox TempS, vbInformation, "お疲れ様です!!" '時間情報を表示
End Function
【手順①】リボンの[作成]-[マクロ]を選択して、マクロを新規に作成します。
【手順②】リストから「サブマクロ」を選択します。
【手順③】サブマクロ名を{F2}とします。これで、[F2]キーを押した時に実行されるマクロになります。
【手順④】「新しいアクションの追加」欄に「プロシージャの実行」を選択します。
サブマクロ名(例) | 説明 |
---|---|
^A | [Ctrl]キー + [A]キー |
^1 | [Ctrl]キー + [1]キー |
{F1} | [F1]キー |
^{F1} | [Ctrl]キー + [F1]キー |
[F1]キーのように複数文字で一つのキーを表す場合は、{}で囲みます。[Ctrl]キーと他のキーを押す指定は、^記号を利用します。
【手順⑤】「プロシージャ名」に=EndTimeGet()と入力します。
【手順⑥】リボンの[実行]をクリックします。確認画面が表示されるので、[はい]をクリックします。
【手順⑦】マクロ名にAutoKeysと入力し、[OK]ボタンをクリックします。
マクロが実行されて、時刻情報が表示されます。
[F2]キーを押すと、何回でもマクロを実行できす。
Autokeysマクロ内に複数の「サブマクロ」を作成して、様々なキーに処理を割り当てることが可能です。
Accessで作成された無料でも利用できる便利な売上仕入在庫管理ソフトは下記から取得できます。
コメント