ノートパッドを起動してテーブルの全フィールド名を出力する

 他のアプリケーションなどの実行可能なプログラムをAccessから実行する時は、
Shell関数を使います。

 サンプルでは、テーブル「住所録」のフィールド名をすべて取得して
Shell関数で起動したノートパッドに出力しています。

 出力は、SendKeysステートメントを使います。SendKeysステートメントは、
キーストロークまたはキーストロークの組み合わせを、キーボードから入力した
ときと同様にアクティブウィンドウに渡します。

● サンプル ●

Sub test()
    Dim db    As Database
    Dim tdf   As TableDef
    Dim fld   As Field
    Dim myID  As Variant
    Dim myMsg As String

    On Error GoTo err_rtn
    
    Set db = CurrentDb
    Set tdf = db.TableDefs!住所録
    
    For Each fld In tdf.Fields
        myMsg = myMsg & fld.Name & Chr(13)
    Next
    
    myID = Shell("C:\Windows\Notepad.exe", 1)
    
    SendKeys myMsg, True
    
    Exit Sub

err_rtn:
    MsgBox "ノートパッドが起動できませんでした"
    
End Sub


●補足説明●

(1)Shell関数の構文は次のとおりです。

<構文>Shell(pathname[,windowstyle])

 引数pathnameには、パスを含めたプログラム名を指定します。
 引数windowstyleには、実行するプログラムのウィンドウの状態を指定します。
指定できる定数と内容は次のとおりです。

定数        値  内容 

vbHide       0  フォーカスを持ち、非表示にされるウィンドウ

vbNormalFocus   1  フォーカスを持ち、元のサイズと位置に復元される
            ウィンドウ
            
vbMinimizedFocus  2  フォーカスを持ち、最小化表示されるウィンドウ

vbMaximizedFocus  3  フォーカスを持ち、最大化表示されるウィンドウ

vbNormalNoFocus  4  最後にウィンドウを閉じたときのサイズと位置に復元
            されるフォーカスを持たないウィンドウ。現在アクティブ
            なウィンドウは、アクティブのままです。
            
vbMinimizedNoFocus 6  最小化表示されるフォーカスを持たないウィンドウ。
            現在アクティブなウィンドウは、アクティブのままです。

(2)ノートパッドが存在するパスは確認してください。
(3)SendKeysステートメントで指定する動作に対するキーのコードは
   ヘルプを参照してください。

Access97/2000



戻る


Excel Word Access VBA! モーグ