SAK 図書館
VB ビジュアル編 (その八) その他関数 sendkeys、setfocus、IMEStatus
■MousePointer オブジェクトのマウスポインタを砂時計などに変更する。 '** マウスポインタ定数宣言 Public Const CUR_WAIT = 11 Public Const CUR_RESET = 0 '** マウスポインタ砂時計セット form1.MousePointer = CUR_WAIT '** マウスポインタリセット form1.MousePointer = CUR_RESET ■Me 現在のオブジェクトを示します。 unload form1 とする代わりに unload Me とするとこができます。 ■プリンタ設定ダイアログ(プリンタ制御、印刷ダイアログ) '** メソッド CommonDialog1.ShowPrinter 'ダイアログ表示 '** プロパティ CommonDialog1.Orientation '用紙方向 CommonDialog1.Copies '印刷部数 CommonDialog1.FromPage '印刷開始ページ CommonDialog1.ToPage '印刷終了ページ CommonDialog1.PrinterDefault 'TRUE は、システム既定プリンタを変更 '** プリンタオブジェクトプロパティ printer.PaperSize = 9 'A4 printer.Orientation = 2 'VbPRORLandscape printer.Copies = 2 '印刷部数 printer.DeviceName = "EPSON PM-2000C" 'プリンタ名 printer.DriverName = "EPIJNL10" 'プリンタドライバ名 '** その他プリンタ関係プロパティ object.PrintQuality = -3 |_ -1 VbPRPQDraft 簡易印刷 -2 VbPRPQLow 低品位 -3 VbPRPQMedium 中品位 -4 VbPRPQHigh 高品位 ■コントロール配列 テキストボックスなどは、コントロール配列にすると、フォーカス移動などの コードを添字で処理できる。 コントロール配列の作成は、クリップボードのコピー & ペーストでやると簡 単で良い。text1.index の index プロパティ に配列の添字がセットされる。 イベントプロシジャには、Index As Integer の引数が追加される。 この Index で、どのコントロールなのか判断してコードする。 コントロールへのアクセスは、Text1(添字).text のようになる。 ■ubound i = text1.ubound |_ 配列コントロール 配列コントロールの最大添字を返します。 次の例は、コントロール配列を関数内で制御します。 CtlArrayTest Text1 Sub CtlArrayTest(ctl As Variant) Dim i As Integer Dim n As Integer n = ctl.UBound For i = 0 To n MsgBox ctl(i).Text ctl(i).Text = i Next End Sub ■with オブジェクトに対する複数操作ができます。 with label1 .forecolor = &H000000FF& .caption = "処理エラーです。" end with ■appactivate 指定メインウィンドウをアクティブ(最前面) にします。 appactivate "電卓" ■doevents 溜まっているイベントを処理します。 ■sendkeys キーボードから入力されたかのように、現在の入力フォーカスのあるウィンド ウにデータを送ります。 特殊キーを送る場合は、次のとおり。 {ENTER} Enter キー {ESCAPE}, {ESC} Esc キー {TAB} Tab キー {INSERT} Insert キー {DELETE}, {DEL} Delete キー {BACKSPACE}, {BS}, {BKSP} Back space キー {LEFT} ← キー {RIGHT} → キー {UP} ↑ キー {DOWN} ↓ キー {PGUP} Page Up キー {PGDN} Page Down キー {HOME} Home キー {END} End キー {PRTSC} Print Screen キー {SCROLLLOCK} Scroll Lock キー {BREAK} Pause キー {NUMLOCK} Num Lock キー {CAPSLOCK} Caps Lock キー {F1} 〜 {F12} F1 〜 F12 キー (ファンクションキー) + Shift キー ^ Ctrl キー % Alt キー ** +, ^, % で、複数のキーを対象にする場合は、() でキーを囲む。 +(AB) は、シフトキーを押しながらの AB になります。 ** 画面コピーとしての {PRTSC} を sendkeys することはできない。 Windows API などを使用して対処するしかない。 ** 同じキーをリピートするには、{RIGHT 6} とすると → が 6 度押された 動作になる。 ■isnull データコントロールなどで、NULL 値がセットされているか調べます。 NULL と "" は違いますので注意して下さい。 (また、C の NULL とも意味が違います。) ■isnumeric こんなんあったんですね。数値かどうか調べられるらしいです。(^◇^;) ■printform フォームをハードコピーします。 ■setfocus 入力フォーカスを特定コントロールに移動します。 テキストボックスに入力フォーカスを位置付けたり、 コマンドボタンにフォーカスを位置付けできます。 (指定フォーカスへの移動) text1.setfocus command1.setfocus ■ActiveControl フォーカスのあるコントロールを返す。 form1.ActiveControl ■IMEStatus IME を設定、または、状態を取得する。 0 vbIMEModeNoControl 制御しない(既定値) 1 vbIMEModeOn オン 2 vbIMEModeOff オフ 3 vbIMEModeDisable 利用禁止 4 vbIMEModeHiragana 全角ひらがな 5 vbIMEModeKatakana 全角カタカナ 6 vbIMEModeKatakanaHalf 半角カタカナ 7 vbIMEModeAlphaFull 全角英数 8 vbIMEModeAlpha 半角英数 ■AutoRedraw、Redraw AutoRedraw = true は、フォームやピクチャボックスのイメージをメモリに 保存して高速に描画復元します。但し、メモリを大量に消費します。 既定値(デフォルト)の AutoRedraw = false は、C 言語などの WM_PAINT と 同じように描画復元します。 特別な事がない限り、既定値のまま使用するのが良いです。 Redraw = true は、階層フレキシブルグリッドコントロール(MSHFlexGrid) の 既定値(デフォルト)で、変更のある度、再描画します。 Redraw = false にすると、MSHFlexGrid は変更があっても再描画されません。 ■VB ビジュアル編資料
■VB 入門編資料
■VB 基礎編資料
■VB テクニック編資料