HOME > 即効テクニック > AccessVBA > ファイル操作・他アプリケーションとの連携 > ノートパッドを起動してテーブルの全フィールド名を出力する

即効テクニック

ファイル操作・他アプリケーションとの連携

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

(Access 97)
●詳細●
他のアプリケーションなどの実行可能なプログラムを実行する時は、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ステートメントで指定する動作に対するキーのコードは
ヘルプを参照してください。