目次
ファイル操作
ExcelVBAで、ファイルを作成する。
Windows API
WindowsのAPIを用いて、Excel VBAからキーボードを操作する。
- Shell関数などを用いて、他のアプリケーションを起動した際、通常のキーであれば、SendKeysによって操作できるが、Alt+TabやAlt+PrintScreenなどのキー操作はできない。その際に、以下のようにAPIを用いてキー操作を擬制する。
-
Visual BasicのKey Code 定数(MSDN)
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _ ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Private Const KEYEVENTF_EXTENDEDKEY As Long = &H1 Private Const KEYEVENTF_KEYUP As Long = &H2 Private Const VK_LMENU As Long = &HA4 Private Const fKEYDOWN = KEYEVENTF_EXTENDEDKEY Private Const fKEYUP = KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP 'Alt+Tabキーを押すマクロ Sub S_AltTab() keybd_event VK_LMENU, 0&, fKEYDOWN, 0& keybd_event vbKeyTab, 0&, fKEYDOWN, 0& keybd_event vbKeyTab, 0&, fKEYUP, 0& keybd_event VK_LMENU, 0&, fKEYUP, 0& End Sub 'PrintScreenキーを押すマクロ Sub S_PrintScreen() keybd_event vbKeySnapshot, 0&, fKEYDOWN, 0& keybd_event vbKeySnapshot, 0&, fKEYUP, 0& End Sub
ユーザーフォーム
Excelのワークシートをダブルクリックした際、クリック位置のおよそ右下にユーザーフォームを表示する。
-
シートの縮尺を変えたり、右スクロールをしてダブルクリックをするとうまくいかない。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With UserForm1 .StartUpPosition = 0 '表示位置を初期化 .Top = Target.Top + 100 '上端からの距離 .Left = Target.Left + 100 '左端からの距離 .Show '表示 End With End Sub
最終更新日時:2008年10月04日 05時37分28秒