タイトルだけ観ると、随分と長い複雑なもののように見えるけど、たいしたことない。 ACCESSのあるフォームに、こういう書式設定がしてある。 書式:"00000" 文字配置:左 この時、テキストボックスの表示幅が5桁を表示するぶんより十分余裕があったとき、その余裕部分をクリックすると、書式で規定した5文字目ラストにキャレットが置かれてしまう。 この時そのまま数字を入力してしまうと、書式エラーで引っかかる。それがユーザーが面倒だ、キャレットを左端、つまり先頭において欲しい、という。 この問題はキーボード操作ではF2を押すとキャレットは先頭に移動するのだが… ユーザーが複数いて、その人全部にそれぞれ同じように説明するのも面倒なんで、問題のテキストボックスにクリックイベントが発生したら、F2をSendKeysで送るようにした。ってはなしで。 SendKyes "{F2}", True
はじめに、と後から、というくらいの違いは知ってはいるけど。 改めてどう違うのか?を調べてみた。 書式の違いはこう(VBA) ・アーリーバインディングの例 Dim myApp as Excel.Application Set myApp = Application ・レイトバインディングの例 Dim myApp as Object Set myApp = Application もう一例 Dim myApp as Object Set myApp = CreateObject("Excel.Application") まあ、CreateObjectで書く事が多いよね。 でも、やっぱりアーリーバインディングで書く事には相応の違いがあるそうな。 一つは、たとえばメソッドの存在チェック。 アーリーバインディングでは、"myApp"内に当該メソッドが存在するかはコンパイル時にチェックされる。 一方レイトバインディングではプログラムが実際に実行されるまではチェックがされない。 つまり、動かしてみないと判らない、という事。 開発やテストの事を考えるとアーリーバインディングのほうがやっぱりいいんだろう。