Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ
ここではメモ帳を起動・文字入力・ファイルの保存・閉じるの操作をVBAで行います。
操作はShell関数と Sendkeysメソッドを使います。
Sendkeysで操作するには、対象ソフトがアクティブでないといけません。
又、想定以外のことが発生した場合、うまくいかなくなります。
例えば今回の場合、同名のファイルが存在する場合、「上書きしますか?」のメッセージが出る為、うまく制御できません。
Shell関数の構文
Shell(pathname[,windowstyle])
引数windowstyleで使用できる定数
定数 | 値 | 内容 |
vbHide | 0 | フォーカスを持った、非表示のウィンドウ |
vbNormalFocus | 1 | フォーカスを持った、元のサイズと位置に復元されたウィンドウ |
vbMinimizedFocus | 2 | (既定値)フォーカスを持った、最小化のウィンドウ |
vbMinimizedFocus | 3 | フォーカスを持った、最大化のウィンドウ |
vbNormalNoFocus | 4 | フォーカスを持たない、元のサイズと位置に復元されたウィンドウ |
vbMinimizedNoFocus | 6 | フォーカスを持たない、最小化のウィンドウ |
Sendkeysメソッドの構文
キーボード操作をアクティブなウィンドウに送信します。
SendKeys string, [ wait ]
関連する「Excelでランチャーソフトを作ってみよう」を掲載していますので参照してください。
Private Sub ExMemo()
'メモ帳(ノートパッド)を起動
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 CommandButton1_Click()
ExMemo
End Sub
「メモ帳をコントロール」ボタンをクリックすると、ExMemo()プロシージャが呼ばれます。
SendKeys "他のソフトを操作テスト" が実行された画面です。
文字が入力されています。
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します