1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

유저폼 크기 조절 가능하게 만들기

조회 수 6020 추천 수 0 2009.05.07 13:58:21
출처 : 엑사모_팁

관련파일 : VBA_UserForm-UserResizable.xls


 Option Explicit

Private Const MResizer = "ResizeGrab"
Private WithEvents m_objResizer As MSForms.Label
Private m_sngLeftResizePos As Single
Private m_sngTopResizePos As Single
Private m_blnResizing As Single

Private Sub m_AddResizer()
'
' 유저폼의 오른쪽 아래 코너에 크기조절 버튼을 추가합니다
'
    Set m_objResizer = Me.Controls.Add("Forms.label.1", MResizer, True)
    With m_objResizer
        With .Font
            .Name = "Marlett"
            .Charset = 2
            .Size = 14
            .Bold = True
        End With
        .BackStyle = fmBackStyleTransparent
        .AutoSize = True
        .BorderStyle = fmBorderStyleNone
        .Caption = "o"
        .MousePointer = fmMousePointerSizeNWSE
        .ForeColor = RGB(0, 0, 255)
        .ZOrder
        .Top = Me.InsideHeight - .Height
        .Left = Me.InsideWidth - .Width
    End With
    
End Sub


Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub m_objResizer_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    If Button = 1 Then
        m_sngLeftResizePos = X
        m_sngTopResizePos = Y
        m_blnResizing = True
    End If
    
End Sub
Private Sub m_objResizer_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    If Button = 1 Then
        With m_objResizer
            .Move .Left + X - m_sngLeftResizePos, .Top + Y - m_sngTopResizePos
            Me.Width = Me.Width + X - m_sngLeftResizePos
            Me.Height = Me.Height + Y - m_sngTopResizePos
            .Left = Me.InsideWidth - .Width
            .Top = Me.InsideHeight - .Height
        End With
        Me.cmdClose.Top = UserForm1.Height - Me.cmdClose.Height - 40
        Me.cmdClose.Left = UserForm1.Width - Me.cmdClose.Width - 20
    End If
    
End Sub
Private Sub m_objResizer_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Button = 1 Then
        m_blnResizing = False
    End If
End Sub
Private Sub UserForm_Initialize()

    m_AddResizer
    
End Sub
Private Sub UserForm_Terminate()

    Me.Controls.Remove MResizer
    
End Sub





문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 34919

엑셀 도구모음에 콤보박스로 매크로 실행하기.. +_+

  • [레벨:30]a☆
  • 2005-11-03
  • 조회 수 5595

[엑셀VBA 기본 규칙] 순환문..

  • [레벨:30]a☆
  • 2005-08-04
  • 조회 수 4298

특정영역에서 데이터베이스 끝까지, 수식 붙여넣기 또는 자동 채우기..

  • [레벨:30]a☆
  • 2005-07-29
  • 조회 수 6337

기타 VBE에서 휠마우스 사용가능하게 하기SpeedVB4 file

  • [레벨:30]아별
  • 2005-07-22
  • 조회 수 6972

엑셀에서 익스플로러 컨트롤하기..

  • [레벨:30]a☆
  • 2005-07-21
  • 조회 수 6323

엑셀의 내용을 복사해서 메모장을 띄우고 붙여넣기

  • [레벨:30]a☆
  • 2005-07-21
  • 조회 수 4927

하이퍼링크 일괄 제거하기

  • [레벨:30]a☆
  • 2005-07-21
  • 조회 수 5116

[엑셀VBA] 변수의 전달

  • [레벨:30]a☆
  • 2005-05-13
  • 조회 수 4800

[엑셀VBA] 메시지 박스 활용하기

  • [레벨:30]아별
  • 2004-12-22
  • 조회 수 7222

엑셀VBA 텍스트 박스에서 여러줄 입력하기

  • [레벨:30]a☆
  • 2004-11-15
  • 조회 수 7593

엑셀에서 줄바꿈에 대해서.. 줄바꿈하기 제거하기 등등..

  • [레벨:30]a☆
  • 2004-11-15
  • 조회 수 10203

엑셀의 사용자 정의 날짜/시간 형식(Format 함수)

  • [레벨:30]a☆
  • 2004-11-12
  • 조회 수 7345

엑셀에서 날짜 함수 컨트롤 하기

  • [레벨:30]a☆
  • 2004-10-29
  • 조회 수 6426

엑셀에서 매개변수의 전달과 외부함수 호출

  • [레벨:30]a☆
  • 2004-10-27
  • 조회 수 6596

엑셀에서 매크로 실행 동안 화면이 업데이트 되지 않게 하기..

  • [레벨:30]a☆
  • 2004-10-26
  • 조회 수 4015

엑셀.. 잡다구리.. 폼에서 홈페이지 링크 등..

  • [레벨:30]a☆
  • 2004-10-25
  • 조회 수 3507

엑셀 기본작업 매크로.. 선택/입력/복사 등

  • [레벨:30]a☆
  • 2004-10-25
  • 조회 수 3962

엑셀 실행시 자동으로 실행 // 종료시 자동으로 실행

  • [레벨:30]아별
  • 2004-10-25
  • 조회 수 5193

엑셀에서 에러 처리 [1]

  • [레벨:30]a☆
  • 2004-10-23
  • 조회 수 3845

엑셀에서 vba식으로 영역설정하기.. [2]

  • [레벨:30]a☆
  • 2004-10-21
  • 조회 수 6317