2.ショートカットを操作してのコピー・貼り付け・切り取り・元に戻す |
1.VB6.0の機能の SendKeys ステートメントを使ってショートカットを操作する 2.Win32 API 関数を使ってショートカットを操作する 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定: 使用 API: その他 :このサンプルは、 Win32 APIを使用しておりますので、ある程度Win32 API が理解できる方がお使い下さい。 :
|
1.VB6.0の機能の SendKeys ステートメントを使ってショートカットを操作する SampleNo.054 |
SendKeys ステートメント キーストロークまたはキーストロークの組み合わせを、キーボードから入力したときと同様にアクティブウィンドウに渡します。 SendKeys "^C" 'Ctrlキー+Cキーを送ります(コピー) SendKeys "^Z" 'Ctrlキー+Zキーを送ります(元に戻す) SendKeys "^X" 'Ctrlキー+Xキーを送ります(切り取り) SendKeys "^V" 'Ctrlキー+Vキーを送ります(貼り付け) SendKeys ステートメントは、OS によっては、誤作動や割り込みが入ったりとうまく動作しない場合があるのでご使用環境で十分テストしてから使用して下さい。 ・複数の SendKeys ステートメントが実行されると NumLock キーがオフになる ・Vista/VB6.0の環境で SendKeys で実行時エラー'70'が発生 他 動作に問題がなければ、簡単にクリップボードの操作ができ便利ですよね。 |
2.Win32 API 関数を使ってショートカットを操作する |
Option Explicit 'SampleNo=124 2002.03.29 '指定のウィンドウにメッセージを送る(P750) Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Private Const WM_COPY = &H301 'コピー (P837) Private Const WM_CUT = &H300 '切り取り(P840) Private Const WM_PASTE = &H302 '貼り付け(P876) Private Const WM_UNDO = &H304 '元に戻す(P892) Private Sub Command1_Click() 'コピー Dim lngRet As Long lngRet = SendMessage(Text1.hwnd, WM_COPY, 0, 0) End Sub Private Sub Command2_Click() '貼り付け Dim lngRet As Long lngRet = SendMessage(Text1.hwnd, WM_PASTE, 0, 0) End Sub Private Sub Command3_Click() '元に戻す Dim lngRet As Long lngRet = SendMessage(Text1.hwnd, WM_UNDO, 0, 0) End Sub Private Sub Command4_Click() '切り取り Dim lngRet As Long lngRet = SendMessage(Text1.hwnd, WM_CUT, 0, 0) End Sub 動作自体は、SendKeys ステートメントを使った方法と同じですが、こちらは、Win32 API 関数の SendMessage を使ってのショートカットキーの操作ですので、OS による誤動作や割り込みが入る事はありませんが、Win32 API 関数を使っておりますのでその分操作が少し複雑で面倒です。 |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
クリップボードをクリアする クリップボードの中身をクリアする ショートカット コピー 貼り付け 切り取り 元に戻す |