Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


22359 / 76732 ←次へ | 前へ→

【59756】Re:Spreadsheetコントロールの操作について
発言  Yuki  - 09/1/7(水) 11:43 -

引用なし
パスワード
   ▼いのっち さん:
>
>※追加質問ですみませんが、今、UserForm1が固定の大きさ(プロパティのHeight200,Width500位)なのですが、UserForm1が表示された時、ユーザーが自由に大きさを変えられるようにすることは可能でしょうか?(SpreadSheetの方の兼ね合いもあるかもしれませんネ)。

フォームのサイズ変更とSpreadsheetの位置も自由に動かせるものです。
上記が出来るからSpreadsheetのサイズ変更も可にしてもOKかな?
strClassの値ですがSpreadsheetのバージョンで違うので注意して下さい。

Private Declare Function GetWindowLong Lib "user32" _
          Alias "GetWindowLongA" _
          (ByVal hWnd As Long, _
          ByVal nIndex As Long) As Long
          
Private Declare Sub SetWindowLong Lib "user32" _
          Alias "SetWindowLongA" _
          (ByVal hWnd As Long, _
          ByVal nIndex As Long, _
          ByVal dwNewLong As Long)
          
Private Const GWL_STYLE As Long = -16
Private Const WS_CAPTION = &HC00000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000
Private Const WS_THICKFRAME = &H40000
Private Const WS_OVERLAPPED = &H0
Private Const WS_OVERLAPPEDWINDOW = _
       (WS_OVERLAPPED Or _
       WS_CAPTION Or _
       WS_SYSMENU Or _
       WS_THICKFRAME Or _
       WS_MINIMIZEBOX Or _
       WS_MAXIMIZEBOX)

Private Sub UserForm_Initialize()
  Dim strMClass  As String
  Dim strSClass  As String
  Dim strClass  As String
  Dim fhWnd    As Long
  Dim mhWnd    As Long
  Dim shWnd    As Long
  
  strMClass = "ThunderDFrame"
  fhWnd = FindWindow(strMClass, Me.Caption)
  ' フォームのサイズ変更可
  SetWindowLong fhWnd, GWL_STYLE, _
  GetWindowLong(fhWnd, GWL_STYLE) Or WS_OVERLAPPEDWINDOW
  'Spredsheetの移動可
  strSClass = "F3 Server 60000000"
  mhWnd = FindWindowEx(fhWnd, 0&, strClass, vbNullString)
  If mhWnd = 0 Then Exit Sub
  strClass = "ATL:38CAE248"    ' Spreadsheet 10 の時
  strClass = "ATL:10EDB528"    ' Spreadsheet 11 の時
  shWnd = FindWindowEx(mhWnd, 0&, strClass, vbNullString)
  If shWnd = 0 Then Exit Sub
  SetWindowLong shWnd, GWL_STYLE, _
  GetWindowLong(shWnd, GWL_STYLE) Or WS_CAPTION
  'Spredsheetのサイズ変更不可
'  Me.Spreadsheet1.AutoFit = True
End Sub

2 hits

【59733】Spreadsheetコントロールの操作について いのっち 09/1/5(月) 11:47 質問
【59735】Re:Spreadsheetコントロールの操作について ichinose@今年初投稿 09/1/5(月) 19:32 発言
【59743】Re:Spreadsheetコントロールの操作について いのっち 09/1/6(火) 18:47 お礼
【59750】Re:Spreadsheetコントロールの操作について ichinose 09/1/7(水) 8:22 発言
【59754】Re:Spreadsheetコントロールの操作について... ichinose 09/1/7(水) 10:00 発言
【59755】Re:Spreadsheetコントロールの操作について... いのっち 09/1/7(水) 11:39 お礼
【59756】Re:Spreadsheetコントロールの操作について Yuki 09/1/7(水) 11:43 発言
【59757】Re:Spreadsheetコントロールの操作について Yuki 09/1/7(水) 11:46 発言
【59759】Re:Spreadsheetコントロールの操作について ichinose 09/1/7(水) 12:52 発言

22359 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free