CallStack
MS Access 2003 の VBAを見ることはできますか? つまり、何から何と呼ばれていたのprocedure
かを知ることができるでしょうか?function
function
4 に答える
実行時に、[表示]メニュー-> [コールスタック](またはCTRL + Lを押します)。
私が知っているコール スタックを表示するための VBA のプログラムによる方法はありません。この問題の通常の解決策は、関数の呼び出しを追跡するために何らかの構造を使用することですが、それは常に私には面倒に思え、実際には (実行時ではなく) プログラミング時にのみ使用されます。コール スタックを表示するための組み込み機能で十分です。
ところで、コール スタック ボタンは常に VBE ツールバーに配置しています。これは、私にとって最も頻繁に使用される機能の 1 つだからです。また、コンパイル ボタンも追加します。これがデフォルトでツールバーにないのはおかしいと思います。なぜなら、コンパイルを強制することなく人々がコードを書くことを奨励するからです。繰り返しになりますが、Access 2000 はデフォルトで Option Explicit を使用しませんでした (おそらく、VBE を使用する他のアプリとの一貫性のためです。つまり、コードほどではないアプリとの一貫性を保つために、Access をダムダウンします)。重い)。
しかし、私は脱線します...
最終的には、オプションのパラメーターを関数に追加し、呼び出し元の名前をそのように渡します。フォームの場合Me.Name
、パラメーターとして使用できます。
はい、可能ですが、あまり役に立ちません!
Private Declare Sub SetMode Lib "vba332.dll" Alias "EbSetMode" (ByVal lngMode As Long)
Private Declare Function GetCallStackCount Lib "vba332.dll" Alias "EbGetCallstackCount" (lngCount As Long) As Long
Private Declare Function GetCallStackFunction Lib "vba332.dll" Alias "EbGetCallstackFunction" (ByVal Lvl As Long, ByRef strBase As String, ByRef strModule As String, ByRef strFunction As String, ByRef Done As Long) As Long
GetCallStackCount と GetCallStackFunction を使用する前に、SetMode(2) を呼び出し、SetMode(1) の後に呼び出します。