Excel VBA質問箱 IV

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

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


9414 / 13644 ツリー ←次へ | 前へ→

【27131】フォームの固定について N館 05/7/29(金) 14:23 質問[未読]
【27134】Re:フォームの固定について ちくたく 05/7/29(金) 15:03 回答[未読]
【27252】Re:フォームの固定について N館 05/8/3(水) 15:43 質問[未読]
【27312】Re:フォームの固定について [名前なし] 05/8/4(木) 23:16 回答[未読]
【27317】Re:フォームの固定について N館 05/8/5(金) 11:19 お礼[未読]
【27345】Re:フォームの固定について [名前なし] 05/8/5(金) 21:37 回答[未読]
【27497】Re:フォームの固定について N館 05/8/10(水) 14:36 お礼[未読]

【27131】フォームの固定について
質問  N館  - 05/7/29(金) 14:23 -

引用なし
パスワード
   ユーザフォームの位置を固定したいのですが、
どのようにすればよろしいでしょうか?

よろしくお願いします。

【27134】Re:フォームの固定について
回答  ちくたく  - 05/7/29(金) 15:03 -

引用なし
パスワード
   こんにちは。
「ユーザーフォーム 表示位置」とかでGoogle
例えば↓です。
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv230.html

▼N館 さん:
>ユーザフォームの位置を固定したいのですが、
>どのようにすればよろしいでしょうか?
>
>よろしくお願いします。

【27252】Re:フォームの固定について
質問  N館  - 05/8/3(水) 15:43 -

引用なし
パスワード
   質問の説明が足りなくてすみません。
フォームの初期表示位置を固定するのではなく、
マウス等でフォーム位置を動かせなくする(初期表示位置に固定する)には
どうすればよいのでしょうか?

よろしくお願いします。

【27312】Re:フォームの固定について
回答  [名前なし]  - 05/8/4(木) 23:16 -

引用なし
パスワード
   ▼N館 さん:
Private Sub UserForm_Layout()
  Top = 200
  Left = 200
End Sub
のような感じでしょうか。

StartUpPositionプロパティが 0 - 手動ではないのなら、

Dim DefLeft, DefTop 'フォームモジュールの先頭に記述

Private Sub UserForm_Layout()
  If DefLeft = 0 And DefTop = 0 Then
    DefLeft = Me.Left
    DefTop = Me.Top
  Else
    Me.Left = DefLeft
    Me.Top = DefTop
  End If
End Sub

なんて感じでいけるかと。

【27317】Re:フォームの固定について
お礼  N館  - 05/8/5(金) 11:19 -

引用なし
パスワード
   うまくいきました。
ありがとうございます。

欲を言うと、マウスでクリックしてウィンドウを
ぐるぐる動かせたくないのですが(XPのように視覚効果のある設定の場合)
画面がバグったようになるので。。
ちょこちょこっと設定を変えてできるのでしたら、ぜひ教えてください。

【27345】Re:フォームの固定について
回答  [名前なし]  - 05/8/5(金) 21:37 -

引用なし
パスワード
   ▼N館 さん:
>ちょこちょこっと設定を変えてできるのでしたら、ぜひ教えてください。
ちょこちょこではないですが、こんな方法もあります。
全てフォームモジュールに書いて実行してみてください。
フォームのシステムメニューの閉じるを削除します。


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" _
  (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" _
  (ByVal hMenu As Long, ByVal nPosition As Long, _
   ByVal wFlags As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
  (ByVal hWnd As Long) As Long
'↑ここまでは、全てフォームモジュールの先頭に書きます。
Private Sub UserForm_Initialize()
Dim hWnd As Long
Dim hMenu As Long
Const MF_BYCOMMAND = &H0&
Const SC_MOVE = &HF010

  hWnd = FindWindow(vbNullString, Me.Caption)
  hMenu = GetSystemMenu(hWnd, 0)
  Call DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND)
  DrawMenuBar (hWnd)
End Sub

【27497】Re:フォームの固定について
お礼  N館  - 05/8/10(水) 14:36 -

引用なし
パスワード
   理想な感じのフォームがしあがりました。

ありがとうございました。

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