LoginSignup
0
0

More than 3 years have passed since last update.

Access マクロアクション Calc.exeを起動

Last updated at Posted at 2019-11-10

VBAではなくアクションマクロです

Windows電卓、計算機と呼ばれるCalc.exeの起動はよくあるマクロで、とても便利です

Excelは実はQATにある

Quick Access Toolbarをすべてのコマンドにして「だ」行の読みができる漢字、
電子メールの下に電卓があります
image.png
image.png
電卓は演算誤差がありますし、最新の電卓は異常に使いづらくなっていますが、一応値のコピペができるという特徴があります。
このため電卓で計算した結果をエクセルに再度入力するという手順は、Windows電卓で計算して、その結果をコピペするほうが正確です。
しかし、電卓はこのようにクィックアクセスツールバーに登録できるので、あまり必要がありません。

AccessはQATにない

Excelと同じようにすべてのコマンドを表示します。
しかし、そのようなコマンドは存在しません。
電子メールの下に、電卓がないのです。
image.png

VBAより手軽なMacroActionで起動する

image.png
作成からマクロをクリックします。

隠しコマンドを表示

マクロツール アクションカタログ そしてすべてのアクションの表示の2つをクリックして選択状態にします。
image.png
アクションカタログに検索バーが表示されているのでアプリケーションのと入力します
image.png
するとアプリケーションの実行が表示されます。これをダブルクリックすると、左に命令が入ります。
image.png
このコマンドラインにcalc.exeを入れて、ctrlキー+wで閉じます。MacroAcrtionの名前はT_Calcとします。これは主にツール系のマクロアクションと言えるからです。
image.png
image.png
これでナビゲーションペインのマクロに表示されます。いつでもここから表示できます。

VBAからでもアクションマクロを使って電卓が起動可能で、コードもシンプル

Sub RunCalc()
DoCmd.RunMacro "T_Calc"
End Sub

シンプルと言うか、そのまんまです。
ところでなぜフルパスでなくていいのかは、おそらく、環境変数を読み込んでいることが原因と考えられます。

Docmd.Runcommandの補完

https://www.moug.net/tech/acvba/0090028.html
実はDoCmdに直接アプリケーションを実行する命令はありません。
RunCommadにもないです。
このため、このRunMacroを介してアプリケーションを実行する方法が必要になります。

応用としてNotepad

実はExcelとWordはQATにあるので、いらないといえばいりません。
しかし、Calc.exeと同様に

  • メモ帳なら Notepad.exe T_NotePad

というように応用できます。

英語名はRunApp

大体変わらないので2010でも十分ですが、ここに英語の対応表があります。
https://www.helpforest.com/access/ac_list/ac100002.htm
これによるとマクロアクションのアプリケーションの実行はRunAppになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0