' [445.xls] ' [Module1] のコード '★★☆ ウィンドウの四隅の位置を指定してフォームを移動する ☆★★ Option Explicit Sub start() UserForm1.Show End Sub ' [UserForm1] のコード Option Explicit 'コントロールを配列に取り込む為の変数宣言 Dim op_btn As New Collection Dim i As Integer Dim Maxh As Long '画面の高さ Dim Maxw As Long '画面の幅 Private Sub CommandButton1_Click() '現在選択されているオプションボタンを調べる For i = 1 To 5 If op_btn(i).Value = True Then Exit For Next i '選択決定されているオプションボタンに応じてフォームを移動 'Select Case ステートメントを使うと 'If...Then...Else ステートメントを使うよりコードが見やすくなる Select Case i Case 1 Me.Top = (Maxh - Me.Height) / 2 Me.Left = (Maxw - Me.Width) / 2 Case 2 Me.Top = 0 Me.Left = 0 Case 3 Me.Top = Maxh - Me.Height Me.Left = 0 Case 4 Me.Top = 0 Me.Left = Maxw - Me.Width Case 5 Me.Top = Maxh - Me.Height Me.Left = Maxw - Me.Width End Select End Sub Private Sub UserForm_Initialize() Dim op_ctrl As Control Dim c As Integer '画面のサイズを取得 With Application .ScreenUpdating = False .WindowState = xlMaximized Maxh = .Height Maxw = .Width .WindowState = xlNormal .ScreenUpdating = True End With 'オプションボタンを配列に取り込む For c = 1 To 5 Set op_ctrl = Me.Controls("OptionButton" & c) op_btn.Add Item:=op_ctrl, Key:=op_ctrl.name Next End Sub