Accessから他のソフト(メモ帳)を制御する : Access

Shell と Sendkeys を使い、Excelからメモ帳(ノートパッド)を制御します。

Sendkeysで操作するには、対象ソフトがアクティブでないといけません。又、想定以外のことが発生した場合、うまくいかなくなります。例えば今回の場合、同名のファイルが存在する場合、「上書きしますか?」のメッセージが出る為、うまくできません。




BackHome BackTips Backメニュー

下の流れはこのようになります。
1)メモ帳(ノートパッド)を起動
2)文字を入力
3)メニューを開きファイルの保存を実行 「ALT」+「F」「S]キー
4)Enterキー
5)メモ帳を'終了します。「ALT」+「F4」キー


[Accessフォーム実行画面]
「メモ帳を起動し制御」ボタン

メモ帳にSendkeysで文字が入力された画面

■ Access VBA 実行コード

Option Compare Database
Option Explicit

Private Sub AcMemo()
    'メモ帳(ノートパッド)を起動
    Shell "c:\windows\system32\notepad.exe", vbNormalFocus
    DoEvents
    '文字を入力
    SendKeys "他のソフトを制御テスト"
    'メニューの保存 「ALT」+「F」「S]
    SendKeys "%FS", True
    'ファイル名
    SendKeys "c:\test01.txt", True
    'Enterキー
    SendKeys "{ENTER}", True
    '既に同名のファイルが存在する場合、
    '「上書きしますか?」のメッセージが出る為、
    'うまく終了できません。
    '終了します。「ALT」+「F4」
    SendKeys "%{F4}", True
End Sub

Private Sub コマンド6_Click()
    AcMemo
End Sub

BackHome BackTips Backメニュー

Copyright(C) FeedSoft