オブジェクトが特殊なタイプであるかどうかを知りたい場合は、次のコードを作成します。
TypeOf obj が ListItem の場合 ...
オブジェクトタイプの名前を取得したい場合は、次を使用します。
MsgBox "このアイテムは " & TypeName(obj)
長いループを制御するプログラムが長いループに入った場合、コマンド ボタンやキーをクリックすることはできません。これをユーザーが制御するのは非常に困難です。おそらくユーザーはループを実行したくないので、[キャンセル] ボタンをクリックして終了しますか?この問題を解決するにはどうすればよいでしょうか?答えは、DoEvents コマンドを使用することです。つまり、次のコードのように、ループの先頭で DoEvents コマンドを実行します。
ディム・アイ・アズ・ロング
i = 1 ~ 1000000 の場合
ドゥイベント
...
次は私
実際、DoEvents コマンドは 1 行目に配置する必要はなく、ループ内のどこにでも配置できます。これにより、ループを終了するコマンド ボタンなど、プログラムの他の部分がクリック イベントを受け入れる機会がまた増えます。
長いループの実行を高速化する一般に、プログラムの入力キューの値を確認するには、API 関数 GetInputState を使用する方がよいことがわかりました。 If ステートメントによってコードの実行が高速になる理由はわかりませんが、実際には問題なく動作します。
したがって、次のコード行は次のようになります。
ドゥイベント
と置き換えます
GetInputState() の場合は DoEvents
試してみてください!
実際、その理由は次のとおりです。DoEvents ステートメントを使用すると、独自のプログラムだけでなく、あらゆるアプリケーションが関連イベントを実行できるようになります。 GetInputState 判定を追加した後は、独自のプログラムからのみイベント アクションを受け入れることができます。
大文字と小文字の選択を簡単にする次の例を見てみましょう。ユーザーがタグのさまざまな組み合わせをクリックして文字列を構築します。
lbl(0) = "こんにちは"
lbl(1) = "コメントします: m "
lbl(2) = "幸せ"
lbl(3) = 「悲しい」
...
sub lbl_click (整数としてのインデックス)
string$ = string$+lbl(インデックス).caption
次に、この文字列を分析するために一連の select case ステートメントを作成する必要があります...
大文字と小文字を区別する文字列を選択$
ケース「こんにちは、コメントします: m Happy」
何かをする
ケース「こんにちは、コメントします:m」
これはエラーになります...
それ以外の場合
何か他のことをする
エンドセレクト
ご覧のとおり、特に多くのタグがあり、マージ操作の法的チェックが必要な場合、これは非常に複雑になります。
この問題を解決するために、タグの数と同じ長さの配列を作成しました。
arraylbl(n) を整数として
配列の開始値は 1 で、各項目の値は、次のように前の値に 2 を乗算した値 (値*2) になります: 1 2 4 8 16 32 64... このように、ラベルの各ペアの組み合わせにより、別の一意の値が生成されます
lbl(0) + lbl(1) = 1 + 2 = 3
lbl(0) + lbl(1) + lbl(4) = 1 + 2 + 16 = 19
ここで、ラベルをクリックすると、対応する lblarray() 値が変数に追加されます。このように、いくつかの数値に基づいて、select case ステートメントを簡単に作成できます。
IsLegal ケースを選択
ケース3
注: 文字列は有効でした
グッズに電話する
ケース19
注: 文字列は有効でした
グッズに電話する
ケースエルス
注: 無効です
ダメと呼ぶ
エンドセレクト
笑、文字をデジタル化すると思いがけない効果が得られることもありますよ!