投稿日 | : 2006/04/12(Wed) 00:50 |
投稿者 | : ダンボ |
URL | : |
タイトル | : Re: なんだか解らないならば |
いなさん、どうもです。
自己流解説(解釈)の部分はVB言語システムの処理について推測を書きました。
わかりづらくてすみません。
VBは多分、文法等の事前チェック(コンパイル)を行った後実行に移す。
可能な限り事前チェックを厚くしようとして、コード内にActiveSheetと
明記されていれば、そこに含まれている(コントロール)オブジェクトも
チェック材料に含める。
ところがST As WorkSheetと引数でActiveSheetを渡そうとした場合は、
仮引数と実引数のバインドは多分文法チェック(コンパイル)の後の段階で
行うのでコンパイル時点ではそこに含まれている(コントロール)オブジェクト
が不明なままチェックを行う。従って見つからない。ST As Objectの
場合は使用者責任としてコンパイルは手薄く行う。
だからこれを回避するためにST As WorkSheetの場合でもcmdLockを明示的に
宣言すれば良いのではとも考えて試してみました。
Public Function ForceLock(ST As WorkSheet)
Dim cmdLock as MsForms.CommandButton
結果は、、、やっぱりコンパイルエラーになりましたわ。