Excelノート 11-02 ユーザーフォーム

HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ 

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

21  UserFormから、マウスでセルをクリックせずにシートにキーボードで入力するには?
22  ユーザーフォームを、シート上に図として貼り付けるには?
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

21 UserFormから、マウスでセルをクリックせずにシートにキーボードで入力するには?
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200207/02070006.txt 
UserForm作業中にマウスでセルをクリックせずにキーボード操作を可能するには…? 【VBAラウンジ】
Sub test()
 UserForm1.Show vbModeless
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

Private Sub CommandButton1_Click()
 AppActivate "Microsoft Excel"
 Range("A1").Select
End Sub

  このコードの使い方は、マクロの使い方(4)ユーザーフォームのモジュールにあります。

22 ユーザーフォームを、シート上に図として貼り付けるには?
http://www.ae.wakwak.com/cgi-bin/sbox/~efc21/wwwlng.cgi?print+200210/02100073.txt
 「ユーザフォームを印刷したいのですが。」 【VBAラウンジ】
WinArrow's Web ARENAのWinArrowさんから提供いただいたコードです。ありがとうございます♪m(_ _)m
ユーザーフォームに【CommandButton1】を配置して押すと、【Sheet1】A1セルにユーザーフォームが貼り付きます。
Win9x系(95/98/ME)用 (Win2000では、シート全体が図として貼り付きます)

' 【標準モジュール】
Public Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Public Const VK_SNAPSHOT = &H2C
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

' 【フォームのコマンドボタン】
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, _
 ByVal Shift As Integer, _
 ByVal X As Single, _
 ByVal Y As Single)
 Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0)
 Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
 DoEvents
 Unload Me
 '貼り付け
 Range("A1").Select
 ActiveSheet.Paste
 '
イメージ選択を解除
 Range("A1").Select
 '印刷方向を横に変える
 With Sheets("Sheet1").PageSetup
  .Orientation = xlLandscape
 End With
 '印刷プレビュー
 ActiveWindow.SelectedSheets.PrintPreview
End Sub
  このコードの使い方は、マクロの使い方(4)ユーザーフォームのモジュールにあります。

Win9x系、WinNT系判別処理付きのバージョン

' 【標準モジュール】
Option Explicit
Public Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Public Const VK_LMENU = &HA4
Public Const VK_SNAPSHOT = &H2C
Public Const VK_CONTROL = &H11
Public Const VK_V = &H56
Public Const VK_0x79 = &H79
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

' 【フォームのコマンドボタン】
Dim OSV As String
Private Sub CommandButton2_Click()
 ' フォームを閉じる
 Unload Me
End Sub
Private Sub UserForm_Activate()
 ' OS情報(バージョン)を取得
 OSV = Application.OperatingSystem
End Sub
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, _
 ByVal Shift As Integer, _
 ByVal X As Single, _
 ByVal Y As Single)
 ' OS情報の18桁目〜2桁="NT"を判別して、Win32APIインタフェースを切り分け
 ' ユーザーフォームを画像としてシートに貼り付ける。
 ' Win32API(PrintScreenキー使用)
 If Mid(OSV, 18, 2) = "NT" Then
  ' WinNT系のWin32APIインタフェース
  Call keybd_event(VK_LMENU, VK_V, KEYEVENTF_EXTENDEDKEY, 0)
  Call keybd_event(VK_SNAPSHOT, VK_0x79, KEYEVENTF_EXTENDEDKEY, 0)
  Call keybd_event(VK_LMENU, VK_V, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
  Call keybd_event(VK_SNAPSHOT, VK_0x79, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
 Else
  ' Win9x系のWin32APIインターフェース
  Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0)
  Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
 End If
 DoEvents
 Unload Me
 Range("A1").Select
 ActiveSheet.Paste
 Range("A1").Select
 ' 印刷用用紙A4横向き設定
 With Sheets("Sheet1").PageSetup
  .Orientation = xlLandscape
 End With
 ' 印刷プレビュー
 ActiveWindow.SelectedSheets.PrintPreview
End Sub
  このコードの使い方は、マクロの使い方(4)ユーザーフォームのモジュールにあります。

23  
 
24  
 
25  
 
26  
 
27  
 
28     
 
29  
 
30  
 
31  
 
32  
 
33  
 
34  
 
35  
 
36  
 
37  
 
38     
 
39  
 
40  
 

HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ 

このページのTOPへ

inserted by FC2 system