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 テクニック編資料