Microsoft Forms 개체 모델 개요

Microsoft Forms 개체

Controls 컬렉션(Control 개체)


도구 상자란?

도구 상자란 폼이나 Frame, Page에 추가할 수 있는 여러 컨트롤이 포함되어 있는 상자입니다.

다음과 같은 여러 가지 방법으로 사용자 정의 도구 상자를 만들 수 있습니다.

  • 도구 상자에 페이지를 추가합니다.

  • 컨트롤을 하나의 페이지에서 다른 페이지로 이동합니다.

  • 페이지의 이름을 변경합니다.

  • 도구 상자에 ActiveX 컨트롤을 포함한 다른 컨트롤을 추가합니다.

  • 폼에서 사용자 정의된 컨트롤을 도구 상자로 복사합니다.

  • 예를 들어, 확인과 취소 단추는 특별한 CommandButton입니다. 도구 상자에 확인과 취소 템플릿을 추가하면, 이 템플릿을 다른 폼에 빨리 추가할 수 있습니다.


도구 상자 표시/숨기기

보기 메뉴에서 도구 상자 앞에 확인 표시를 나타낼지를 정합니다. 확인 표시가 있으면 도구 상자가 나타나고 그렇지 않으면 도구 상자는 숨겨집니다.

다음 중 하나를 수행하십시오.

  • 도구 상자를 표시하려면 도구 상자 앞에 확인 표시가 있는지 확인하고, 표시가 없으면 도구 상자를 선택합니다.

  • 도구 상자를 숨기려면 도구 상자 앞에 확인 표시가 없는지 확인하고, 표시가 있으면 도구 상자를 선택해서 확인 표시를 제거합니다.


도구 상자 크기 변경

  1. 마우스 포인터를 도구 상자의 가장자리나 모서리로 이동하면 포인터가 양방향 화살표로 변경됩니다.

  2. 도구 상자를 끌어서 크기를 변경합니다.


도구 상자에 컨트롤 추가

  1. 도구 상자의 컨트롤 아이콘이나 도구 상자 페이지의 빈 영역을 마우스 오른쪽 단추로 클릭합니다.

  2. 바로 가기 메뉴에서 컨트롤 추가를 선택합니다.

  3. 사용 가능한 컨트롤 목록에서 새 컨트롤을 선택합니다.

  4. 확인을 클릭합니다.


도구 상자에 사용자 정의 컨트롤 추가

  1. 컨트롤을 폼으로 가져와서 사용자 정의합니다.

  6. 예를 들어, 확인 단추를 만들려면, 폼에 CommandButton을 놓고 Caption 속성을 OK로 설정하고, Default 속성을 True로 설정합니다.

  7. 사용자 정의 컨트롤을 선택합니다.

  8. 컨트롤을 도구 상자로 끌어 놓습니다.

참고 컨트롤을 도구 상자로 끌어 놓을 때는 속성 값만 복사됩니다. 컨트롤에 작성된 코드는 컨트롤과 함께 복사되지 않기 때문에 아이콘에 대해 새로운 코드를 작성하거나 폼의 컨트롤에서 도구 상자의 컨트롤로 코드를 복사해야 합니다.


폼에 컨트롤 추가

폼에 도구 상자의 컨트롤을 추가하려면 다음과 같은 방법을 사용합니다. 폼에 있는 Frame이나 TabStrip, MultiPage에 컨트롤을 삽입할 때도 이 방법을 사용합니다.

  • 도구 상자에 있는 컨트롤을 클릭한 다음, 폼에서 마우스를 클릭합니다. 컨트롤은 기본 크기로 나타납니다. 컨트롤을 끌어서 크기를 변경할 수 있습니다.

  • 컨트롤을 도구 상자에서 폼으로 끌어 놓습니다. 컨트롤은 기본 크기로 나타납니다.

  • 도구 상자에서 컨트롤을 두 번 클릭한 다음, 만들고 싶은 수만큼 폼에서 마우스를 클릭합니다. 예를 들어, 4개의 명령 단추를 만들려면, 도구 상자에서 CommandButton을 두 번 클릭한 후 폼에서 마우스를 네 번 클릭합니다.


도구 상자의 항목 삭제

  1. 도구 상자에서 제거하려는 항목의 아이콘을 마우스 오른쪽 단추로 클릭합니다.

  2. 바로 가기 메뉴에서 삭제를 클릭합니다.

참고 컨트롤을 삭제하려면 바로 가기 메뉴에서 컨트롤 추가를 클릭한 다음 삭제할 컨트롤의 확인란을 모두 지우면 됩니다.


도구 상자 아이콘 사용자 정의

  1. 도구 상자에서 마우스 오른쪽 단추로 아이콘을 클릭합니다.

  2. 바로 가기 메뉴에서 사용자 정의를 선택합니다.

  3. 다음 중 하나를 수행하십시오.
    • 도구 설명을 변경하려면 도구 설명에 새 텍스트를 입력합니다.

    • 아이콘을 편집하려면 그림 편집을 선택합니다. 사용할 색을 선택하고 색을 적용할 이미지의 픽셀을 선택합니다.

    • 새로운 비트맵을 할당하려면 그림 로드를 선택하고 아이콘으로 사용할 비트맵을 가진 파일을 선택합니다. 아이콘의 크기보다 더 큰 그림을 읽어들이면 오류가 발생합니다.


도구 상자의 도구 설명 사용자 정의

  1. 도구 상자에서 컨트롤을 선택합니다.

  2. 마우스 오른쪽 단추를 클릭합니다.

  3. 바로 가기 메뉴에서 사용자 정의를 선택합니다. 사용자 정의 명령은 "레이블 사용자 정의"와 같이 컨트롤의 이름을 포함합니다.

  4. 도구 설명에 새 텍스트를 입력합니다.

  5. 확인을 클릭합니다.


도구 상자 페이지의 도구 설명 설정

  1. 도구 상자의 페이지를 선택합니다.

  2. 마우스 오른쪽 단추를 클릭합니다.

  3. 바로 가기 메뉴에서 이름 바꾸기를 선택합니다.

  4. 도구 설명에서 새 텍스트를 입력합니다.

  5. 확인을 클릭합니다.


도구 상자 페이지의 이름 바꾸기

  1. 이름을 변경할 도구 상자 페이지 탭을 마우스 오른쪽 단추로 클릭합니다.

  2. 바로 가기 메뉴에서 이름 바꾸기를 선택합니다.

  3. Caption 필드에 사용할 이름을 입력합니다.

  4. 확인을 클릭합니다.


도구 상자 페이지의 순서 바꾸기

  1. 도구 상자 페이지 탭에서 마우스 오른쪽 단추를 클릭합니다.

  2. 바로 가기 메뉴에서 이동을 선택합니다.

  3. 이동할 페이지의 이름을 선택합니다.

  4. 페이지가 페이지 목록에서 적절한 위치에 올 때까지 위로 이동이나 아래로 이동을 선택합니다.

  5. 확인을 클릭합니다.


새 도구 상자 페이지 만들기

  1. 도구 상자 페이지 탭을 마우스 오른쪽 단추로 클릭합니다. 새 페이지는 현재 페이지 다음에 삽입됩니다.

  2. 새 페이지를 선택합니다.


도구 상자 페이지 삭제

  1. 삭제할 도구 상자 페이지 탭을 마우스 오른쪽 단추로 클릭합니다.

  2. 페이지 삭제를 선택합니다. 페이지의 모든 컨트롤은 동시에 삭제됩니다.


도구 상자 페이지 가져오기/내보내기

  1. 도구 상자에서 페이지 탭을 마우스 오른쪽 단추로 클릭합니다. 페이지를 가져오면 현재 페이지 다음에 삽입됩니다.

  2. 다음 중 하나를 수행하십시오.
    • 페이지를 가져오려면, 페이지 가져오기를 선택하고 가져올 페이지 파일의 이름을 선택합니다.

    • 페이지를 내보내려면, 페이지 내보내기를 선택한 후 도구 상자 페이지의 복사본을 저장할 파일 이름을 입력합니다. 페이지를 내보내도 도구 상자에서 페이지 이름이 제거되지 않습니다.
  3. 확인을 클릭합니다.


다른 도구 상자 페이지로 항목 이동

  1. 도구 상자 페이지에 있는 컨트롤을 선택합니다.

  2. 컨트롤을 새 페이지 탭으로 끌어서 페이지가 도구 상자 앞에 나타날 때까지 마우스 포인터를 탭 위에 둡니다.

  3. 페이지의 주 영역 위로 컨트롤을 끕니다.

참고 컨트롤을 넣을 페이지가 보이지 않으면, 도구 상자의 너비를 조정하여 모든 페이지 탭을 나타낸 후 적절한 페이지로 컨트롤을 끕니다.


양방향이 가능한 폼과 대화 상자 만들기

모든 Microsoft Office 2000 응용 프로그램에서 Microsoft Forms 버전 2.0과 Visual Basic Editor를 사용하여 폼과 대화 상자를 만들 수 있습니다. Office 2000에서는 왼쪽 방향, 오른쪽 방향, 양방향 텍스트 사용을 위한 양방향 기능을 Microsoft Forms 2.0과 편집기에 제공합니다. 표준 도구에 대한 대략적인 설명은 현재 사용 중인 응옹 프로그램의 도움말에서 '폼' 항목을 참고하십시오.폼과 대화 상자에 양방향 기능을 추가하는 데에는 일반적으로 세 가지 Microsoft Forms 2.0 속성이 사용됩니다. 다음 표에 이러한 속성 목록과 설명이 나와 있습니다.

일반적으로 세 개의 Microsoft Forms 2.0 속성을 사용하여 폼과 대화 상자에 양 방향 기능을 추가할 수 있습니다. 다음 표는 이러한 속성 목록과 그 설명입니다.

속성 | 포커스 | 영향
Alignment | 컨트롤 | 컨트롤
TextAlign | 컨트롤 | 컨트롤
RightToLeft | 폼 | 폼과 컨트롤

이 속성들은 다음 표의 컨트롤들에 영향을 미치며, 이 속성들은 컨트롤 도구 상자에 들어 있습니다. 편집기의 [속성] 창이나 VBA 구문을 사용하여 이러한 속성을 설정할 수 있습니다.

컨트롤 | Alignment | TextAlign | RightToLeft
CheckBox | X | X | X
ComboBox |  | X | X
Frame |  |  | X
Label |  | X |
ListBox |  | X | X
MultiPage |  |  | X
OptionButton | X | X |
TabStrip |  |  | X
TextBox |  | X | X
ToggleButton |  | X |

참고 텍스트 읽기 순서는 일반적으로 컨트롤의 텍스트에 따라 정해집니다. 즉, 오른쪽 방향이 아닌 텍스트를 표시하는 읽기 순서는 왼쪽 읽기 순서로 표시되며 오른쪽 방향 문자로 시작하는 텍스트 문자열은 오른쪽 읽기 순서로 표시됩니다.


컨트롤 팁이란?

컨트롤 팁이란 컨트롤이나 Page, Tab을 설명하는 간략한 정보로, 마우스를 클릭하지 않은 상태에서 마우스 포인터가 컨트롤 위에 머무를 때 나타납니다. 컨트롤 팁과 도구 설명은 매우 유사합니다. 차이점은 도구 설명의 경우, Microsoft Forms의 디자인 모드에서 개발자에게 제공되는 반면, 컨트롤 팁은 실행 모드에서 개발자가 사용자에게 제공한다는 것입니다.

MultiPage나 TabStrip에 컨트롤 팁을 할당하면, MultiPage나 TabStrip 내의 개별 Page나 Tab 개체에 대한 컨트롤 팁은 나타나지 않습니다.


컨트롤에 컨트롤 팁 할당

  1. 컨트롤을 선택합니다.

  2. 속성 창에서 ControlTipText 속성을 선택합니다.

    코드를 통해 ControlTipText 값을 설정할 수 있습니다.

  3. 컨트롤 팁으로 사용할 문자열을 입력합니다.

팁 Page나 Tab에 컨트롤 팁을 할당하려면, Page나 Tab의 바로 가기 메뉴에서 이름 바꾸기 명령을 사용합니다.


페이지나 탭에 컨트롤 팁 할당

  1. 개별 Page나 Tab을 선택합니다.

    해당 MultiPage나 TabStrip이 아니라, 개별 Page나 Tab을 선택해야 합니다. Page나 Tab을 선택하면, 캡션 주위에 사각형이 나타납니다.

  2. 선택한 Page나 Tab을 마우스 오른쪽 단추로 클릭합니다.

  3. 바로 가기 메뉴에서 이름 바꾸기를 선택합니다.

  4. ControlTipText 필드에 컨트롤 팁으로 사용할 문자열을 입력합니다.

  5. 확인을 클릭합니다.

팁 MultiPage나 TabStrip에 컨트롤 팁을 할당하려면 ControlTipText 속성을 사용합니다.


도구 설명이란?

도구 설명이란 보통 몇 단어로 된 짧은 설명으로, 마우스 단추를 클릭하지 않고 마우스 포인터가 컨트롤이나 다른 사용자 인터페이스 부분에 잠시 머무를 때 나타납니다. 컨트롤과 도구 상자의 도구 설명을 사용자가 원하는 대로 정할 수 있습니다.

폼에서 도구 상자로 복사된 새 컨트롤의 기본값은 컨트롤 형식 앞에 오는 "New" 입니다. 예를 들어, 확인 단추 같은 사용자 정의 명령어 단추에 대한 기본 도구 설명은 "새 명령어 단추"입니다. 컨트롤이 도구 설명과 관련이 없으면, 기본값은 "알 수 없음"이 됩니다.

참고 도구 설명이란 Microsoft Forms가 디자인 모드에서 폼 개발자에게 제공하는 정보입니다. 각 컨트롤은 ControlTipText 라는 속성을 가지고 있는데, 이 속성은 응용 프로그램 실행 중에 폼 개발자가 사용자에게 "도구 설명"을 주도록 합니다.


도구 설명 표시/숨기기

  1. 도구 메뉴에서 옵션을 선택합니다.

  2. 일반 탭 시트를 선택합니다.

  3. 다음 중 하나를 수행하십시오.
    • 도구 설명을 표시하려면, 도구 설명 표시 상자의 확인 표시를 선택합니다.

    • 도구 설명을 숨기려면, 도구 설명 표시 상자의 확인 표시를 지웁니다.


바로 가기 메뉴란?

바로 가기 메뉴란 마우스 오른쪽 단추로 개체를 클릭했을 때 나타나는 메뉴입니다. Microsoft Forms에서 다음 개체들은 바로 가기 메뉴를 가지고 있습니다.

  • 도구 상자, 도구 상자의 각 페이지, 도구 상자 페이지의 각 항목

  • 폼 위의 개별 컨트롤

  • 컨트롤 그룹(Group 명령으로 만들어진 그룹)

  • 사용자 정의 폼과 같은 컨테이너

  • MultiPage의 개별 Page 개체

  • TabStrip의 개별 Tab 개체

  • 그룹에 속하지 않는 여러 컨트롤

바로 가기 메뉴의 명령은 선택한 개체에 따라 다양합니다. 예를 들어, 그룹에 속하지 않은 여러 컨트롤을 선택하면 바로 가기 메뉴는 Group이라는 명령을 포함합니다. 그러나 도구 상자에 대한 바로 가기 메뉴는 이와 다릅니다.

컨트롤이나 컨테이너에 대한 바로 가기 메뉴를 표시하려면 마우스 오른쪽 단추로 개체를 클릭하십시오.

MultiPage나 Page의 바로 가기 메뉴 표시에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오.

TabStrip이나 Tab의 바로 가기 메뉴 표시에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오.


여러 페이지나 페이지의 바로 가기 메뉴 표시

  1. 폼이 실행 중이 아닌지 확인합니다.

  2. 다음 중 하나를 수행하십시오.
    • 개별 Page의 바로 가기 메뉴를 보려면 해당 페이지 캡션을 마우스 오른쪽 단추로 클릭합니다.

    • 전체 MultiPage의 바로 가기 메뉴를 보려면 컨트롤의 Page 캡션을 제외한 영역을 마우스 오른쪽 단추로 클릭합니다.


연속 탭이나 탭의 바로 가기 메뉴 표시

  1. 폼이 실행 중이 아닌지 확인합니다.

  2. 다음 중 하나를 수행하십시오.
    • 개별 Tab의 바로 가기 메뉴를 보려면 해당 탭을 선택합니다.

    • 탭을 선택하면 점선으로 된 사각형이 탭 캡션 주위에 나타납니다.

      이때 선택한 캡션을 마우스 오른쪽 단추로 클릭합니다.

    • TabStrip의 바로 가기 메뉴를 보려면, 컨트롤의 Tab 캡션을 제외한 영역을 마우스 오른쪽 단추로 클릭합니다.


그룹의 바로 가기 메뉴 표시

  1. 그룹을 선택합니다.

  2. 그룹을 둘러싼 사각형 내부에서 마우스 오른쪽 단추를 클릭합니다.

팁 메뉴에 있는 명령을 사용하고 싶지 않으면 바로 가기 메뉴를 제외한 그룹의 아무 곳이나 클릭합니다. 그러면 바로 가기 메뉴가 없어집니다.


Microsoft Forms의 실행 취소와 다시 실행

Microsoft Forms는 여러 단계의 실행 취소와 다시 실행 명령을 제공합니다. 이것은 하나의 동작이 아니라 여러 가지 일련의 동작을 취소할 수 있다는 의미입니다.

실행 취소의 바로 가기 키는 Ctrl+Z이고 다시 실행의 바로 가기 키는 Ctrl+Y입니다.

맨 뒤로 보내기나 맨 앞으로 가져오기와 같은 겹침 명령에는 실행 취소나 다시 실행 명령을 사용할 수 없습니다. 예를 들어, 개체를 선택하고 바로 가기 메뉴에서 뒤로 이동을 실행했다면, 이 동작을 실행 취소하거나 다시 실행할 수 없습니다.


컨트롤에 비트맵 할당

속성 창에서,

  1. Picture 속성을 선택합니다.

  2. 그림 대화 상자에서 그림의 이름과 위치를 입력합니다.

그림의 크기가 컨트롤의 크기보다 크면 Microsoft Forms는 그림이 속성 창을 통해 할당되었는지 코드에 의해 할당되었는지 여부에 상관 없이 그림의 크기를 컨트롤의 크기에 맞춥니다. PictureAlignment 속성은 컨트롤 내에서 그림을 맞추는 방법을 결정하는 속성입니다.


컨트롤의 그림 위치 맞추기

Picture 속성은 컨트롤에 비트맵이나 다른 그림을 할당하는 속성입니다. 컨트롤에 그림을 할당한 후에는 다음 중 하나를 수행하여 컨트롤의 그림 위치를 맞출 수 있습니다.

  • Image 내에서 그림을 가운데에 위치하도록 하거나 그림의 모서리를 Image의 모서리에 맞추려면 PictureAlignment 속성을 사용합니다.

  • Image 내에서 그림을 잘라내거나 늘이거나 확대/축소하려면 PictureSizeMode 속성을 사용합니다. 그림을 늘이면 그림이 일그러질 수 있지만, 확대/축소하면 일그러지지 않습니다.

  • Image 내에서 그림의 여러 복사본을 나타내려면 PictureTiling 속성을 사용합니다.


컨트롤의 비트맵 삭제

속성 창에서,

  1. "비트맵"이라 된 Picture 속성 값을 선택합니다.

  2. Delete 키를 누릅니다.

또는 코드에서,

  • 다음 문장을 입력합니다. Object.Picture = LoadPicture("")


Image 컨트롤의 그림을 사용한 여러 가지 작업

Image 컨트롤은 그 자체로는 그림이 아니라, 독립된 파일에 저장된 그림을 포함합니다. Image의 속성으로 그림을 편집할 수는 없지만, 그림이 Image에 나타나는 방법을 지정하는 데 사용할 수 있습니다.

Image를 사용하는 응용 프로그램에서 흥미로운 것은 이미지를 응용 프로그램의 배경 그림으로 사용할 수 있다는 것입니다. Image를 폼과 같은 크기로 만들면 배경 위에 다른 컨트롤을 넣을 수 있습니다.


기준 컨트롤 설정에 대한 팁

여러 컨트롤을 선택할 때 다음의 방법 중 하나를 사용하여 기준 컨트롤을 설정할 수 있습니다.

  • Shift+Click: 기준 컨트롤은 Shift+Click을 사용하여 선택하는 첫 번째 컨트롤입니다.

  • Ctrl+Click: 기준 컨트롤은 Ctrl+Click을 사용하여 선택하는 마지막 컨트롤입니다.

  • 도구 상자에서 개체 선택 포인터: 기준 컨트롤은 선택하려는 컨트롤에 사각형 그리기 작업을 시작할 때 마우스 포인터에 가장 근접한 컨트롤입니다.

선택한 컨트롤에서 Ctrl+Click을 두 번 클릭하면 그 컨트롤은 기준 컨트롤이 됩니다.


Microsoft Forms의 투명성

Microsoft Forms는 컨트롤의 배경과 컨트롤에서 사용되는 비트맵, 이 두 가지 영역에 대해 투명성을 지원합니다.

BackStyle 속성은 컨트롤의 투명 여부를 결정합니다. 투명한 컨트롤은 폼에서 그 뒤에 무엇이 있는지를 볼 수 있습니다. 이것은 폼 위에 배경 장식이 있거나 컨트롤 뒤에 숨어있는 배경을 최소화할 때 유용한 속성입니다. 컨트롤 투명성에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오.

Microsoft Forms에서는 많은 컨트롤에 비트맵을 나타낼 수 있습니다. 어떤 컨트롤은 투명한 비트맵을 지원합니다. 투명한 비트맵은 하나 또는 그 이상의 배경색이 투명한 것을 말합니다. 비트맵 투명성은 컨트롤 속성에 의해 조절되는 것이 아니라 이미지의 왼쪽 아래 색상에 의해 조절됩니다. Microsoft Forms는 비트맵을 편집하는 방법이 아니라 단지 그것을 투명하게 만드는 방법을 제공할 뿐이므로 이 용도로만 그림 편집기를 사용하십시오.

IMicrosoft Forms에서 비트맵은 다음 컨트롤에 대해 항상 투명합니다.

  • CheckBox

  • CommandButton

  • Label

  • OptionButton

  • ToggleButton

투명한 그림에는 가끔 불투명한 모양이 있습니다. 불투명한 모양을 좋아하지 않으면, 불투명한 이미지를 지원하는 컨트롤에 그림을 표시합니다.

투명한 비트맵을 지원하지 않는 컨트롤에 투명한 비트맵을 사용하면 비트맵은 제대로 나타나지만 비트맵 뒤에 있는 것을 볼 수 없습니다. Microsoft Forms에서 다음 컨트롤들은 투명한 비트맵을 지원하지 않습니다.

  • 폼 창(UserForm)

  • Frame

  • Image

  • MultiPage


투명 컨트롤 만들기

  1. 폼에 기본 컨트롤을 넣습니다.

  2. 컨트롤의 속성들을 살펴 봅니다.

  3. BackStyle 속성을 Transparent로 설정합니다.

  4. 컨트롤이 BorderStyle 속성을 지원하면, None으로 설정합니다.

참고 컨트롤을 투명하게 만들면 배경색이 나타나지 않기 때문에 BackColor 속성은 무시됩니다. 그러나 BackColor 설정은 바뀌지 않습니다.


캡션이란?

캡션이란 컨트롤 주위나 컨트롤 위에 직접 나타나는 텍스트로 CheckBox, CommandButton, Frame, Label, OptionButton, ToggleButton 컨트롤은 캡션을 가질 수 있습니다. MultiPage나 TabStrip의 일부분인 Page 또는 Tab 개체 역시 캡션을 가질 수 있습니다.


캡션 할당

CheckBox, CommandButton, Frame, Label, OptionButton, ToggleButton에 캡션을 할당하려면,

  1. 컨트롤의 속성 창을 표시합니다.

  2. Caption 속성을 선택합니다.

  3. 캡션으로 사용할 텍스트를 입력합니다.

Page나 Tab에 캡션을 할당하려면,

  1. Page나 Tab을 포함하는 MultiPage나 TabStrip을 선택합니다.

  2. 개별 Page나 Tab을 선택합니다. Page나 Tab을 선택하면, 캡션 주위에 사각형이 나타납니다.

  3. 선택한 MultiPage나 TabStrip을 마우스 오른쪽 단추로 클릭합니다.

  4. 바로 가기 메뉴에서 이름 바꾸기를 선택합니다.

  5. Caption 필드에 캡션으로 사용할 텍스트를 입력합니다.

  6. 확인을 클릭합니다.


여러 페이지란?

MultiPage란 페이지 컬렉션 한 개 이상을 포함하는 컨트롤입니다.

MultiPage의 각 Page는 그 자신의 컨트롤을 포함하고 있는 하나의 폼이기 때문에 자신만의 유일한 레이아웃을 가질 수 있습니다. 일반적으로 MultiPage의 페이지는 탭을 가지고 있어서 탭으로 각 페이지를 선택할 수 있습니다.

MultiPage는 기본적으로 Page1과 Page2라는 페이지 두 개를 가지고 있는데, 이들 각각은 Page 개체이며 모두 MultiPage의 Pages 컬렉션을 나타냅니다. 페이지를 추가하면 동일한 Pages 컬렉션의 일부가 됩니다.


연속 탭이란?

TabStrip이란 탭 컬렉션 한 개 이상을 포함하는 컨트롤입니다.

TabStrip의 각 Tab은 사용자가 선택할 수 있는 별도의 개체입니다. 외관상 TabStrip도 TabStrip의 모든 탭들이 공유하는 클라이언트 영역을 포함합니다.

TabStrip은 기본적으로 Tab1과 Tab2라는 페이지 두 개를 가지고 있는데, 이들 각각은 Tab 개체이며 모두 TabStrip의 Tab 컬렉션을 나타냅니다. 페이지를 추가하면 동일한 Tab 컬렉션의 일부가 됩니다.


여러 페이지나 연속 탭의 사용

데이터에 대해 단일 레이아웃을 사용하면, TabStrip을 사용해서 Tab에 각 데이터 집합을 배치합니다. 데이터에 대해 다양한 레이아웃이 필요하면, MultiPage를 사용해서 Page에 각 레이아웃을 할당합니다.

MultiPage의 Page와는 달리 TabStrip의 클라이언트 영역은 독립된 폼이 아니라 TabStrip을 포함하는 폼의 일부분입니다. TabStrip의 테두리는 탭과 관련된 폼의 영역을 정의합니다. TabStrip의 클라이언트 영역에 컨트롤을 놓는 것은, TabStrip을 포함하는 폼에 컨트롤을 추가하는 것을 의미합니다.


페이지나 탭의 바로 가기 키 할당

  1. 디자인 모드에서 개별 Page나 Tab을 선택합니다. 연결된 MultiPage나 TabStrip이 아니라, Page나 Tab을 선택해야 합니다. Page나 Tab을 선택하면, Page나 Tab의 캡션 주위에 사각형이 나타납니다.

  2. 선택한 Page나 Tab을 마우스 오른쪽 단추로 클릭합니다.

  3. 바로 가기 메뉴에서 이름 바꾸기를 선택합니다.

  4. 이름 바꾸기 대화 상자에서 바로 가기 키 필드에 문자 하나를 입력합니다.

팁 컨트롤의 캡션에 있는 문자를 사용합니다. 선택된 문자는 컨트롤의 캡션에서 밑줄이 그어집니다.


여러 페이지나 연속 탭의 페이지 순서 변경

  1. MultiPage나 TabStrip에서 페이지를 선택합니다.

  2. 페이지 캡션을 마우스 오른쪽 단추로 클릭합니다.

  3. 바로 가기 메뉴에서 이동을 선택합니다.

  4. 이동 대화 상자에서 이동할 페이지를 선택합니다.

  5. 페이지의 위치를 변경하기 위해 위로 이동이나 아래로 이동을 선택합니다.

  6. 원하는 대로 모두 변경한 다음 확인을 클릭합니다.

참고 속성 창을 통해 페이지 순서를 변경하려면 Index 속성을 사용할 수 있습니다. 첫째 페이지의 Index는 0, 둘째 페이지의 Index는 1 등 순서대로 값이 지정됩니다.


입력란 사용에 대한 팁

TextBox는 Text, MultiLine, WordWrap, AutoSize 속성에 의해 조절되는 다루기 쉬운 컨트롤입니다.

Text는 입력란에 나타나는 텍스트를 가지고 있는 속성입니다.

MultiLine은 TextBox에서 단일 줄이나 여러 줄로 텍스트를 표시할 수 있는지를 조절하는 속성입니다. 새로운 줄의 문자들은 한 줄이 끝나고 다른 줄이 시작되는 곳을 확인합니다. MultiLine이 False로 설정되면 텍스트는 줄을 바꾸지 않고 잘립니다.

WordWrap은 TextBox에서 TextBox의 너비보다 더 긴 텍스트를 입력할 때, 텍스트를 입력란의 너비에 맞게 덮어쓰도록 하는 속성입니다.

WordWrap을 사용하지 않으면 TextBox는 텍스트의 새로운 줄 문자와 만나는 곳에서 새로운 텍스트를 시작합니다. WordWrap이 선택되지 않으면 텍스트는 TextBox에 완전히 맞지 않을 수 있습니다. TextBox는 그 너비에 맞는 텍스트 부분은 보여주고, 맞지 않는 텍스트 부분은 잘립니다. WordWrap은 MultiLine이 True가 아니면 적용할 수 없습니다.

AutoSize는 TextBox에서 모든 텍스트 표시 여부를 조정하는 속성입니다. TextBox에서 AutoSize를 사용할 때, TextBox의 너비는 TextBox의 문자의 양과 텍스트를 보여주는데 사용한 글꼴 크기에 따라 줄어들거나 늘어납니다.

AutoSize는 다음 상황에서 유용하게 쓰입니다.

  • 한 줄 이상의 캡션을 표시합니다.

  • 단일 줄 TextBox의 내용을 표시합니다.

  • 사용자 읽기 전용인 여러 줄 TextBox의 내용을 표시합니다.

참고 MultiLine과 WordWrap 속성을 사용하는 비어 있는 TextBox에는 AutoSize 사용을 피합니다. 이런 속성을 가진 TextBox에 텍스트를 입력하면, TextBox는 자동적으로 텍스트의 길이와 너비에 맞는 크기로 조정됩니다.


목록 상자 스타일

ListBox는 두 가지 프레젠테이션 스타일을 선택할 수 있습니다. 각 스타일은 목록에서 항목을 선택하는데 있어 서로 다른 방법을 제공합니다.

스타일이 Plain이면, 각 항목은 분리된 행에 나타나는데, 하나 이상의 행을 반전하면 항목이 선택됩니다.

스타일이 Option이면, 각 행의 앞에 옵션 단추나 확인란이 나타나는데, 항목을 선택하려면 옵션 단추나 확인란을 클릭합니다. 확인란은 MultiSelect 속성이 True일 때만 나타납니다.


표준 목록 상자 만들기

  1. 속성 창에서 ListStyle 속성을 선택합니다.

  2. 드롭다운 화살표를 클릭하면 사용 가능한 스타일 목록이 나타납니다.

  3. 목록에서 Plain을 선택합니다.


옵션 단추나 확인란이 있는 목록 상자 만들기

  1. 속성 창에서 ListStyle 속성을 선택합니다.

  2. 사용 가능한 스타일의 목록을 표시하기 위해 드롭다운 화살표를 클릭합니다.

  3. 목록에서 Option을 선택합니다.

ListStyle 속성이 Option으로 설정되면, MultiSelect 속성은 목록에 확인란이나 옵션 단추 표시 여부를 결정합니다. MultiSelect가 Single이면, 옵션 단추가 목록에 나타납니다. MultiSelect가 Multi이거나 Extended이면, 확인란이 목록에 나타납니다.


목록 상자와 콤보 상자의 데이터 입력 방법

AddItem 메서드는 단일 열을 가진 ListBox나 ComboBox의 목록에 개별 항목을 효과적으로 추가하는 메서드입니다. 그러나 이것과는 다르게 여러 열 ListBox나 ComboBox에서 List와 Column 속성은 2차원 배열로 목록을 로드하여 목록을 추가합니다.


여러 열 목록 상자와 콤보 상자를 사용한 여러 가지 작업

여러 열 ListBox나 ComboBox의 열 너비를 조절하려면, ColumnWidths 속성에서 모든 열에 대한 너비를 지정합니다. 특정 열의 너비를 0으로 지정하면 해당 열을 숨길 수 있습니다.

ListBox나 ComboBox의 열 하나를 제외한 모든 열을 숨기려면, 다른 열의 ColumnWidths 속성을 0으로 설정하고, 나타낼 열의 ColumnWidths 속성을 기본값으로 설정하고 TextColumn 속성을 사용하십시오. 사용자가 행을 선택하면, 컨트롤의 Text 속성은 TextColumn 속성에 의해 지정된 열의 값으로 설정됩니다. 콤보 상자에서, TextColumn 속성에 의해 지정된 열이 컨트롤의 입력란 부분에 나타납니다.

이와 유사하게, BoundColumn 속성에 열 번호를 지정하면 컨트롤에 사용할 열을 정할 수 있습니다.


List나 Column 속성으로 목록에 항목 추가

  1. 여러 열 ListBox나 ComboBox를 만듭니다.

  2. 목록에 넣을 항목이 포함된 2차원 배열을 만듭니다.

  3. ListBox나 ComboBox의 ColumnCount 속성을 설정하여 목록 내의 항목 수와 일치하게 합니다.

  4. 다음 중 하나를 수행하십시오.
    • List 속성 값으로 배열을 할당하면, ListBox의 내용은 배열의 내용과 정확히 일치할 것입니다.

    • Column 속성 값으로 배열을 할당하면, Column 속성은 행과 열을 바꾸어서 ListBox의 각 행은 배열의 열과 일치하게 됩니다.


목록에서의 항목 일치 방법

Microsoft Forms는 ListBox나 ComboBox의 목록에서 사용자가 입력한 값과 일치하는 항목을 찾는 세 가지 방법을 제공합니다.

  • 일치하지 않음 - 목록에서 사용자 입력과 일치하는 항목을 찾지 못합니다.

  • 첫 번째 문자 - 가장 최근에 입력한 문자와 목록에 있는 각 항목의 첫 번째 문자를 비교해서 첫 번째로 일치하는 것을 선택합니다.

  • 완전히 일치 - 사용자 항목을 비교해서 목록의 항목과 완전히 일치하는 것을 찾습니다.

일치할 부분은 2초 후(극동 지역 버전은 6초 후)에 다시 설정됩니다. 예를 들어, 미국 50개 주 이름의 목록에서 "CO"를 재빨리 입력하면 "Colorado"를 찾을 것입니다. 그러나 "CO"를 천천히 입력하면 "Ohio"를 찾게 됩니다. 이것은 자동-수행 검색이 문자들을 다시 설정하기 때문입니다.

완전히 일치를 선택할 때는 목록 항목을 알파벳 순으로 정렬하는 것이 좋습니다. 이렇게 하려면 TextColumn 속성을 사용합니다. 왜냐하면 목록이 알파벳 순으로 정렬이 되어 있지 않으면 정확한 일치가 수행되지 않을 수도 있습니다. 예를 들어, Alabama, Louisiana, Alaska 순으로 된 목록이 있을 때, "ala"를 입력하면 "Alabama"를 완전한 일치 항목으로 간주합니다. 사실 목록에는 사용자가 입력한 것과 일치할 수 있는 항목이 두 개가 있기 때문에 이 결과는 정확하지 않은 것입니다. 하지만 알파벳 순으로 정렬을 하면 이러한 문제를 없앨 수 있습니다.


컨트롤 겹침에 화면 상의 순서 사용

화면 상의 순서(z 순서)로 볼 때 앞뒤로 컨트롤을 배치하려면,

  1. 위치를 바꿀 컨트롤을 선택합니다.

  2. 서식 메뉴에서 순서를 선택합니다.

  3. 계단식 메뉴에서 맨 앞으로 가져오기 또는 맨 뒤로 보내기를 선택합니다.

화면 상의 순서에서 컨트롤 위치를 조정하려면,

  1. 위치를 바꿀 컨트롤을 선택합니다.

  2. 서식 메뉴에서 순서를 선택합니다.

  3. 계단식 메뉴에서 앞으로 가져오기나 뒤로 보내기를 선택합니다.

참고 맨 뒤로 보내기나 맨 앞으로 가져오기와 같은 겹침 명령은 실행 취소나 다시 실행 명령을 사용할 수 없습니다. 예를 들어, 개체를 선택하고 바로 가기 메뉴에서 뒤로 보내기를 클릭하면, 그 동작에서 실행 취소나 다시 실행 명령을 사용할 수 없습니다.

맨 앞으로 가져오기, 앞으로 가져오기, 맨 뒤로 보내기, 뒤로 보내기 메뉴 선택은 다른 컨트롤과 관련된 컨트롤의 화면 상의 순서를 변경합니다. 폼이 어떤 ListBox나 Frame, MultiPage 컨트롤을 포함하면, 그 컨트롤들은 자동으로 스택의 맨 위와 가능한 가깝게 이동합니다. 예를 들어, ListBox나 Frame, MultiPage에 뒤로 보내기를 적용하면 다른 ListBox나 Frame, MultiPage 컨트롤 아래로 컨트롤이 이동하지만, 스택의 다른 형식 컨트롤 아래로 이동하지 않습니다. 이와 비슷하게 ListBox나 Frame, MultiPage 외의 컨트롤에 앞으로 가져오기를 적용하면 스택의 맨 위와 가장 가깝게 컨트롤을 이동하지만, 스택의 ListBox나 Frame, MultiPage 위로는 이동하지 않습니다.

ListBox, Frame, MultiPage와 다른 Microsoft Forms 컨트롤이 폼에서 같은 위치에 있다면 ListBox, Frame, MultiPage는 항상 다른 컨트롤 위에 나타납니다. 만일 ListBox, Frame, MultiPage가 다른 ListBox, Frame, MultiPage와 같은 위치에 있다면 컨트롤의 화면 상의 순서에 따라 맨 위에 나타날 컨트롤이 정해집니다.


활성 컨트롤과 선택한 컨트롤

모든 컨트롤은 활성 상태와 선택 상태를 가지고 있습니다. 컨트롤을 활성화한다는 것은 컨트롤의 내용을 가지고 작업을 한다는 의미이고, 컨트롤을 선택한다는 것은 컨트롤 그 자체를 가지고 작업을 한다는 의미입니다.

대부분의 컨트롤은 폼 위에 올려놓으면 자동으로 선택됩니다. 디자인 모드에서 컨트롤을 선택하면 컨트롤 테두리 주위에 크기 조정 핸들이 나타납니다. 컨트롤이 선택되어 있지 않으면 컨트롤을 한번 클릭하여 다시 선택할 수 있습니다.

선택 상태의 컨트롤을 클릭하면 활성 상태가 됩니다. 이 상태에서는 컨트롤의 캡션을 직접 편집할 수 있습니다.

선택 상태와 활성 상태에서는 삭제, 잘라내기, 복사 명령의 바로 가기 키로 Delete 키, Ctrl+X, Ctrl+C를 사용할 수 있습니다. 선택 상태에서 이 명령들은 바로 가기 메뉴에서 사용 가능하고, 컨트롤 그 자체에 영향을 줍니다. 활성 상태에서는 컨트롤 내에서 선택한 텍스트에 영향을 줍니다. 선택한 텍스트가 없으면 아무런 효과가 없습니다. 이런 명령들은 활성화된 컨트롤에 대한 바로 가기 메뉴에서는 사용할 수 없습니다.


폼 크기 변경

디자인 모드에서,

  • 폼이 원하는 크기가 될 때까지 폼의 크기 조정 핸들을 끕니다.

실행 모드에서,

  • 폼의 Height와 Width 속성을 적절한 값으로 설정합니다.


폼 위치 변경

사용자 인터페이스를 통해서,

  • 폼이 원하는 위치로 갈 때까지 제목 표시줄을 끕니다.

디자인 모드에서,

  • 속성 창이나 코드를 사용하여 폼의 Left와 Top 속성을 적절한 값으로 설정합니다.


눈금 표시/숨기기

  1. 도구 메뉴에서 옵션을 선택합니다.

  2. 일반 탭 시트를 선택합니다.

  3. 다음 중 하나를 수행하십시오.
    • 눈금을 표시하려면, 눈금 표시 상자의 확인 표시를 선택합니다.

    • 눈금을 숨기려면, 눈금 표시 상자의 확인 표시를 삭제합니다.
  4. 확인을 클릭합니다.


눈금 크기 선택

  1. 도구 메뉴에서 옵션을 선택합니다.

  2. 옵션 대화 상자에서 일반 페이지를 선택합니다.

  3. 폼 눈금 설정 그룹에서 각 눈금 블록에 대해 원하는 크기를 지정합니다. 작은 수를 지정하면 작은 눈금 블럭이 만들어집니다.

팁 단추 정렬 명령을 사용하여 응용 프로그램에 명령 단추를 배치하려면 눈금 값을 작게 지정합니다. 그러면 단추가 폼의 가장자리에 더 가깝게 위치합니다.


눈금에 맞춤

  1. 컨트롤을 선택합니다.

  2. 서식 메뉴에서, 눈금에 맞춤을 선택합니다.

    Microsoft Forms는 각 모서리가 눈금 끝에 맞도록 컨트롤의 크기를 조정해 줍니다.


자동 맞춤

  1. 컨트롤을 선택합니다.

  2. 서식 메뉴에서 자동 맞춤을 선택합니다.

    Microsoft Forms는 그림과 Caption 또는 Text 속성에 할당된 텍스트를 나타내기에 충분한 컨트롤 크기로 설정합니다.


그룹 내의 모든 컨트롤 크기 조정

  1. 그룹을 선택합니다.

    크기 조정 핸들을 가진 사각형이 그룹 주위를 둘러싸고 있으면 그룹이 선택되었음을 나타냅니다.

  2. 사각형의 크기를 변경하려면 크기 조정 핸들 중 하나를 누르고 원하는 위치로 끕니다.

  3. 마우스 단추를 놓습니다.

    각 컨트롤의 크기는 그룹 주위의 사각형이 변경된 방법에 비례하여 변경됩니다.


같은 크기 컨트롤 만들기

  1. 같은 크기로 만들려는 모든 컨트롤을 선택합니다.

  2. 기준 컨트롤을 선택합니다.

  3. 서식 메뉴에서 같은 크기로를 선택합니다.

  4. 계단식 메뉴에서 다음 중 하나를 선택하십시오.
    • 너비 — 선택한 모든 컨트롤을 기준 컨트롤과 같은 너비로 만듭니다.

    • 높이 — 선택한 모든 컨트롤을 기준 컨트롤과 같은 높이로 만듭니다.

    • 모두 — 선택한 모든 컨트롤을 기준 컨트롤과 같은 너비와 높이로 만듭니다.


여러 컨트롤 선택에 대한 팁

컨트롤 한 개 이상을 선택하는 데는 3가지 방법이 있습니다.

  • Shift+Click: Microsoft Forms는 선택한 컨트롤 주위에 보이지 않는 선택 사각형을 만들어서 사각형 내에 크기 조정 핸들을 둡니다.

  • Ctrl+Click: 크기 조정 핸들은 둘러싼 사각형 내에 있는 컨트롤이 아니라 선택한 컨트롤에만 나타납니다. 이 방법은 가끔 선택한 컨트롤 가까이에 있는 컨트롤을 추가로 선택할 수 있습니다. 이런 경우, 다음에 설명하는 개체 선택 포인터를 사용합니다.

  • 도구 상자의 개체 선택 포인터: 선택할 컨트롤 위에 사각형을 그리는 방법으로, 사각형 내에 있거나 사각형이 닿은 부분에 있는 모든 컨트롤을 선택합니다.

여러 컨트롤을 선택할 때, 선택한 컨트롤 중에서 한 개는 나머지 선택된 컨트롤에 대한 참조 사항이 되는 기준 컨트롤이라 불립니다.


컨트롤 맞춤

  1. 맞출 컨트롤을 선택합니다.

  2. 기준 컨트롤을 선택합니다.

  3. 서식 메뉴에서 맞춤을 선택합니다.

  4. 계단식 메뉴에서 다음 중 하나를 선택해서 선택한 컨트롤의 지정된 부분을 기준 컨트롤의 동일한 부분으로 맞춥니다.
    • 왼쪽 - 왼쪽 가장자리를 맞춥니다.

    • 가운데 - 컨트롤의 가운데를 맞춥니다. 즉, 기준 컨트롤의 가운데에 그려지는 수직선에 선택한 모든 컨트롤의 가운데가 포함됩니다.

    • 오른쪽 - 오른쪽 가장자리를 맞춥니다.

    • 위쪽 - 맨 위를 맞춥니다.

    • 중앙 - 선택한 컨트롤의 가운데를 맞춥니다. 즉, 기준 컨트롤의 가운데에 그려진 수평선에 맞춥니다.

    • 아래쪽 - 아래쪽을 맞춥니다.

    • 눈금에 맞춤 - 선택한 컨트롤의 왼쪽 위 모서리를 가장 가까운 눈금 끝에 맞춥니다. 이 옵션은 기준 컨트롤의 위치에 영향을 받지 않습니다.

참고 메뉴의 각 명령에는 컨트롤 맞춤 방법을 보여주는 작은 그림이 있습니다.


컨트롤에 텍스트 맞춤

  1. 속성 창에서 TextAlign 속성을 선택합니다.

  2. 속성 값 다음에 있는 드롭다운 화살표를 누르면 사용 가능한 선택 항목 목록이 나타납니다.

  3. 다음 중 하나를 선택하십시오.
    • 왼쪽 - 텍스트를 컨트롤의 왼쪽 가장자리에 맞춥니다.

    • 오른쪽 - 텍스트를 컨트롤의 오른쪽 가장자리에 맞춥니다.

    • 가운데 - 텍스트 길이에 비례하여 컨트롤의 가운데에 맞춥니다.

TextAlign은 ComboBox, Label 그리고 TextBox에서 사용 가능합니다.


폼에서 컨트롤 가운데 맞춤

  1. 가운데에 놓을 컨트롤이나 그룹을 선택합니다.

  2. 서식 메뉴에서 폼의 가운데로를 선택합니다.

  3. 계단식 메뉴에서 다음 중 하나를 선택하십시오.
    • 가로 방향

    • 세로 방향


컨트롤 간의 수평/수직 간격 조정

  1. 간격을 조정할 컨트롤을 선택합니다.

  2. 서식 메뉴에서 수평 간격 조정이나 수직 간격 조정을 선택합니다.

  3. 계단식 메뉴에서 다음 중 하나를 선택하십시오.
    • 모두 같게— 컨트롤 간의 수평과 수직 간격을 같은 크기로 조정합니다. 수평과 수직 간격은 컨트롤의 너비와 컨트롤을 나타내는데 사용 가능한 영역에 따라 다릅니다.

    • 넓게 — 눈금 블록 하나씩 컨트롤 간의 간격을 늘립니다.

    • 좁게 — 눈금 블록 하나씩 컨트롤 간의 간격을 줄입니다.

    • 제거 — 컨트롤 간의 간격을 제거합니다. 컨트롤은 겹치지 않고 서로 인접합니다.


단추 정렬

  1. 정렬할 CommandButton 컨트롤을 선택합니다.

  2. 서식 메뉴에서 단추 정렬을 선택합니다.

  3. 계단식 메뉴에서 다음 중 하나를 선택하십시오.
    • 아래쪽 - 폼의 왼쪽 아래 모서리에서 시작하는 행에 단추를 두고 모든 단추의 아래를 맞춥니다.

    • 오른쪽 - 폼의 오른쪽 위 모서리에서 시작하는 열에 단추를 두고 모든 단추의 오른쪽 가장자리를 맞춥니다.

단추를 정렬한 후에, 단추 사이의 간격을 조정하려면 서식 메뉴에 있는 수평 간격 조정이나 수직 간격 조정을 사용합니다.

팁 폼의 아래쪽이나 오른쪽에 가깝게 단추들을 위치시키려면 좁은 눈금 크기를 선택한 다음 이 명령을 실행합니다. 단추들이 놓인 다음에 눈금 크기를 변경하면 위치가 바뀌지 않습니다.


옵션 그룹 만들기

기본적으로 폼이나 MultiPage, Frame과 같은 컨테이너 위의 모든 OptionButton 컨트롤은 단일 옵션 그룹의 일부분이므로 여기서 단추 하나를 선택하면 폼의 다른 옵션 단추는 자동적으로 False로 설정됩니다.

폼 위에 옵션 그룹 한 개 이상을 배치할 때, 추가 그룹을 만드는 데는 두 가지 방법이 있습니다.

  • GroupName 속성을 사용하여 관련된 단추를 식별합니다.

  • 폼의 Frame에 관련된 단추를 넣습니다.

첫 번째 방법은 응용 프로그램의 컨트롤 수를 줄일 수 있기 때문에 두 번째 방법보다 더 많이 사용됩니다. 첫 번째 방법은 응용 프로그램에 필요한 디스크 공간은 줄이면서, 응용 프로그램 수행 능력을 향상시킬 수 있습니다.

참고 TabStrip은 컨테이너가 아닙니다. TabStrip의 옵션 단추는 폼의 옵션 그룹을 포함하고 있습니다. TabStrip에서 옵션 그룹을 만들려면 GroupName을 사용합니다.


GroupName 속성으로 옵션 그룹 만들기

  1. 폼에 필요한 모든 OptionButton 컨트롤을 배치합니다. MultiPage나 Frame 위의 옵션 단추는 자동으로 옵션 그룹을 형성합니다.

  2. 만들려는 각 그룹의 단추를 확인합니다.

  3. 각 컨트롤의 Name 속성 값을 입력합니다.

  4. 동일한 그룹에 속하는 각 단추에 대해 GroupName 속성을 동일한 값으로 설정합니다.


컨트롤 그룹을 사용한 여러 가지 작업

그룹이란 폼에서 한 단위로 처리되는 두 개 이상의 컨트롤로 이루어진 컨트롤입니다. 그룹은 폼에 있는 컨트롤을 포함할 수 있습니다. 컨트롤이 그룹에 속하게 되면, 전체 그룹으로 작업하거나 단일 개체를 선택할 수 있습니다.

Microsoft Forms는 그룹과 그룹 내의 컨트롤을 가지고 많은 방법으로 작업을 할 수 있는데, 그룹을 선택한 후에 다음과 같은 일들을 수행할 수 있습니다.

  • 동시에 그룹 내의 모든 컨트롤의 크기를 변경합니다. 자세한 내용을 보려면 [image] 을 클릭하십시오.
  • 그룹을 해제하면 각 컨트롤은 독립적으로 됩니다. 자세한 내용을 보려면 [image] 을 클릭하십시오.

  • 그룹 바로 가기 메뉴를 표시하여, 그룹에 영향을 주는 명령에 빨리 액세스하도록 합니다. 자세한 내용을 보려면 [image] 을 클릭하십시오.

  • 그룹을 해제하지 않고 그룹 내에 단일 컨트롤을 선택해서 다른 컨트롤에는 영향을 주지 않고 선택한 컨트롤의 속성 설정을 변경할 수 있습니다. 자세한 내용을 보려면 [image] 을 클릭하십시오.


컨트롤 그룹 만들기

  1. 폼에서 그룹에 포함할 컨트롤을 선택합니다.

  2. 서식 메뉴에서 그룹을 선택합니다.


컨트롤 그룹 해제

  1. 그룹을 선택합니다.

  2. 서식 메뉴에서 그룹 해제를 선택합니다.


그룹 내에서 컨트롤 선택

  1. 그룹을 선택합니다.

  2. 그룹 내에서 단일 컨트롤을 선택하면, 그룹 주위의 크기 조정 핸들은 밝게 바뀌고 선택한 컨트롤에는 어두운 핸들이 나타납니다.

    이 때 선택한 컨트롤의 속성 값을 변경할 수 있으며 모든 변경 사항은 선택한 컨트롤에만 적용됩니다.

  3. 선택한 컨트롤에 대한 작업이 끝난 후, 선택한 컨트롤이 아닌 그룹 내부의 아무 곳이나 클릭하면 그룹은 여전히 선택된 상태로 있게 됩니다.

    그룹이 선택된 상태로 있으면, 그룹 내의 다른 컨트롤을 선택하거나 필요한 다른 작업을 계속 수행할 수 있습니다.


사용자 정의 도움말 파일

응용 프로그램 개발자는 폼 응용 프로그램 사용 방법에 대한 정보를 제공하는 사용자 정의 도움말 파일을 사용할 수 있습니다.

사용자 정의 도움말 파일을 작성하려면 Windows 도움말 파일을 만드는 제품이나 도구를 사용합니다.

응용 프로그램의 각 컨트롤과 사용자 정의 도움말 파일의 특정 항목을 연결시키면, 응용 프로그램이 실행될 때 컨트롤을 선택하고 F1 키를 눌러서 도움말 항목을 볼 수 있습니다.


사용자 정의 도움말 항목을 컨트롤에 할당

이 프로시저는 사용자 정의 도움말 파일이 만들어져서 프로젝트와 연결되어 있다고 가정합니다. 도움말 파일과 프로젝트의 연결은 프로젝트 환경에 좌우됩니다.

  1. 사용자 정의 도움말 항목 작성을 위한 컨트롤을 선택합니다.

  2. 속성 창에서 HelpContextID 속성을 선택합니다.

  3. 사용자 정의 도움말 파일에서 항목에 적절한 컨텍스트 ID를 입력합니다.


Microsoft Forms 개체 모델

The Microsoft Forms 개체 모델은 다음과 같은 개체 형식을 포함하고 있습니다.

  • 컨트롤

  • 컬렉션

  • 개체(컬렉션 내)

Microsoft Forms 개체 모델의 구성 요소들은 원하는 방법으로 응용 프로그램을 만들기 위하여 사용할 수 있는 속성과 이벤트, 메서드의 조합을 가지고 있습니다.

Microsoft Forms는 세 가지 컬렉션을 가지고 있습니다.

Controls 컬렉션 - 폼이나 Frame, Page 위의 모든 컨트롤을 포함합니다.

Pages 컬렉션 - MultiPage에 있는 모든 Page 개체를 포함하며, 각 MultiPage는 개별적으로 Pages 컬렉션을 가집니다.

Tabs 컬렉션 - TabStrip에 있는 모든 Tab 개체를 포함하며, 각 TabStrip은 개별적으로 Tabs 컬렉션을 가집니다.


Microsoft Forms의 ByVal 참조

Microsoft Forms의 ByVal 키워드는 인수가 값으로 전달된다는 것을 가리킵니다. 이것이 Visual Basic에서 ByVal의 표준 의미입니다. 그러나 Microsoft Forms에서는 ByVal을 ReturnBoolean이나 ReturnEffect, ReturnInteger, ReturnString 개체로 사용할 수 있습니다. 전달된 값은 단순한 데이터 형식이 아니라 개체에 대한 포인터가 됩니다.

이러한 개체와 함께 사용할 경우 ByVal은 매개 변수를 전달하는 방법이 아니라 개체를 참조합니다. 위에 나열한 각 개체들은 Value 속성을 가지고 있는데, 이 값을 지정할 수도 있고 함수의 내부와 외부에 전달할 수도 있습니다. 개체 구성원의 값을 변경할 수 있기 때문에 이벤트 구문이 매개 변수를 ByVal로 지정해도 이벤트 프로시저는 계속 ByRef 동작을 하게 됩니다.

값을 ReturnBoolean, ReturnEffect, ReturnInteger 또는 ReturnString과 연결된 인수에 할당하면 다른 인수 값을 설정하는 것과 차이가 없습니다. 예를 들어, 이벤트 구문이 ReturnBoolean 개체를 사용하여 Cancel 인수를 표시하면 Cancel=True문은 다른 데이터 형식을 가지고 있는 것처럼 여전히 유효합니다.


DataObject와 클립보드의 차이점이란?

DataObject와 클립보드는 둘 다 데이터를 한 곳에서 다른 곳으로 이동하는 방법을 제공합니다. DataObject나 클립보드를 사용할 때는 기억해야 할 중요한 몇 가지 사항이 있습니다.

  • DataObject나 클립보드에는 각 데이터가 서로 다른 데이터 형식을 가질 때까지 한번에 데이터 하나 이상을 저장할 수 있습니다. 이미 사용 중인 형식으로 데이터를 저장하면, 새 데이터가 저장되고 이전 데이터는 없어집니다.

  • 클립보드는 그림 형식과 텍스트 형식을 지원하고, DataObject는 텍스트 형식만 지원합니다.

  • DataObject는 응용 프로그램이 실행 중일 때만 사용 가능하지만 클립보드는 운영 체제가 실행 중인 한 사용 가능합니다. 이것은 데이터를 클립보드에 넣어두고 응용 프로그램을 닫아도 데이터 손실이 없다는 것을 의미합니다. 이와 달리 DataObject는 DataObject에 데이터를 넣어두고 응용 프로그램을 닫으면 데이터를 잃게 됩니다.

  • DataObject는 표준 OLE 개체인 반면, 클립보드는 아닙니다. 이것은 클립보드는 표준 이동 작업(복사, 잘라내기, 붙여넣기)은 지원하지만 끌어서 놓기 작업은 지원하지 않는다는 것을 의미합니다. 끌어서 놓기 작업을 지원하는 응용 프로그램을 만들려면 DataObject를 사용해야 합니다.

팁 SetText 메서드를 사용하여 데이터를 클립보드나 DataObject로 이동할 때, 사용자 데이터 형식을 정의할 수 있습니다. 이것은 응용 프로그램이 이동하는 텍스트와 사용자가 이동하는 텍스트를 구분하는데 도움을 줍니다.


컨트롤 모양 변경 방법

Microsoft Forms는 응용 프로그램의 컨트롤 모양을 정의하는 여러 가지 속성들을 포함하고 있습니다.

  • ForeColor

  • BackColor, BackStyle

  • BorderColor, BorderStyle

  • SpecialEffect

ForeColor는 전경색을 결정하는 속성입니다. 전경색은 캡션이나 컨트롤 목차와 같이 컨트롤과 연관된 텍스트에 적용됩니다.

BackColor와 BackStyle은 컨트롤의 배경색에 적용되는 속성입니다. 배경이란 컨트롤의 테두리를 제외한 텍스트를 둘러싼 영역과 같은 컨트롤 테두리 내부에 있는 영역을 말합니다. BackColor는 배경색을 결정하는 속성입니다. BackStyle은 배경색이 투명한지를 결정하는 속성입니다. 투명한 컨트롤 배경은 응용 프로그램 디자인에서 기본 배경으로 그림을 넣은 뒤 컨트롤 뒤쪽의 그림이 비치도록 할 때 유용한 속성입니다.

BorderColor와 BorderStyle, SpecialEffect는 컨트롤의 테두리에 적용되는 속성입니다. 테두리 형식을 선택하려면 BorderStyle이나 SpecialEffect를 사용합니다. 이 두 가지 속성은 동시에 한 가지 속성만 사용할 수 있습니다. 이 속성 중 하나에 값을 할당하면, 시스템은 다른 속성을 None으로 설정합니다. SpecialEffect는 테두리 스타일 여러 가지에서 하나를 선택하지만, 시스템 색만 사용할 수 있습니다. BorderStyle은 한 가지 테두리 스타일만을 지원하지만, BorderColor에 대해서 유효한 색을 선택할 수 있습니다. BorderColor는 BorderStyle을 사용하여 테두리를 만들 때만, 컨트롤의 테두리 색을 지정할 수 있습니다.


중요한 정보를 보호하는 방법

많은 응용 프로그램들이 데이터를 특정 사용자에게만 사용할 수 있도록 합니다. Microsoft Forms에서 중요한 정보를 보호하는 방법에는 여러 가지가 있습니다.

  • 권한이 없는 사용자에게는 컨트롤과 그 데이터가 보이지 않게 코드를 작성하십시오. Visible 속성은 컨트롤이 보이게 혹은 보이지 않게 합니다. Visible 속성에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오.

  • 권한이 없는 사용자가 응용 프로그램을 실행할 때 컨트롤의 전경색과 배경색을 같은 색상으로 설정하는 코드를 작성하십시오. 이것은 권한이 없는 사용자로부터 정보를 숨기는 역할을 합니다. ForeColor와 BackColor 속성은 전경색과 배경색을 결정합니다. ForeColor에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오. BackColor에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오.

  • 권한이 없는 사용자가 응용 프로그램을 실행할 때 컨트롤을 사용 불가능하게 코드를 작성하십시오. Enabled 속성은 컨트롤이 사용 불가능한 때를 결정합니다. Enabled에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오.

  • 응용 프로그램이나 특정 컨트롤에 액세스할 때 암호를 요구하십시오. 사용자가 문자를 입력할 때 자리 표시자를 사용할 수 있습니다. PasswordChar 속성은 자리 표시자를 정의하는 속성입니다. PasswordChar에 대한 자세한 내용을 보려면 [image] 을 클릭하십시오.

참고 암호나 위에 열거된 다른 방법을 사용하면 응용 프로그램 보호를 강화시킬 수는 있지만, 권한이 없는 데이터에 대한 액세스 금지가 완전히 보장되는 것은 아닙니다.


컨트롤을 데이터 크기로 자동 조정

속성 창에서 AutoSize 속성을 True로 설정합니다.


바로 가기 키 할당

  1. 디자인 모드에서 폼 위의 컨트롤을 선택합니다.

  2. 속성 창에서 Accelerator 속성을 선택합니다.

  3. Accelerator의 값으로 문자 하나를 입력합니다.

팁 컨트롤의 캡션에 있는 문자를 사용합니다. 선택된 문자는 컨트롤의 캡션에서 밑줄이 그어집니다.


탭 순서 대화 상자로 탭 순서 설정

  1. 선택한 컨트롤이 하나도 없는지 확인합니다.

  2. 컨트롤이 아닌 폼에서 마우스 오른쪽 단추를 클릭합니다.

  3. 바로 가기 메뉴에서 탭 순서를 선택합니다.

  4. 탭 순서에서 순서를 바꾸려는 컨트롤의 이름을 선택합니다.

  5. 컨트롤 이름이 적절한 탭 순서에 위치할 때까지 위로 이동이나 아래로 이동을 선택합니다.


TabIndex 속성으로 탭 순서 설정

  1. 폼에서 사용할 탭 순서를 확인합니다.

    탭 순서에서 첫 번째 컨트롤의 탭 인덱스는 0, 두 번째 탭 인덱스는 1 등 순서대로 값이 지정됩니다.

  2. 탭 순서대로 컨트롤을 선택합니다.

  3. 속성 창에서 TabIndex 속성을 선택합니다.

  4. 탭 순서대로 컨트롤 위치를 구분하려면 적절한 수를 입력합니다.


AddControl 이벤트

컨트롤이 폼, Frame 그리고 MultiPage의 Page에 삽입되었을 때 발생합니다.

구문

프레임일 경우,
Private Sub object_AddControl( )

여러 페이지일 경우,
Private Sub object_AddControl( index As Long, ctrl As Control)

AddControl 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Index | 필수 요소로서 새 컨트롤을 포함하는 Page의 인덱스입니다.
Ctrl | 필수 요소로서 추가될 컨트롤입니다.

주의

AddControl 이벤트는 컨트롤이 런타임에 추가될 때 발생합니다. 이 이벤트는 디자인 모드에서 컨트롤을 추가할 때는 초기화되지 않습니다. 또한 런타임에서 처음부터 폼을 불러오고 표시할 때도 초기화되지 않습니다.

이 이벤트의 기본 동작은 지정된 폼, Frame 또는 MultiPage에 컨트롤을 추가하는 것입니다.

Add 메서드는 AddControl 이벤트를 초기화합니다.


AfterUpdate 이벤트

컨트롤의 데이터가 사용자 인터페이스를 통해 변경된 후에 발생합니다.

구문

Private Sub object_AfterUpdate( )

AfterUpdate 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

AfterUpdate 이벤트는 컨트롤이 바운드인지의 여부에 관계없이(즉, RowSource 속성이 컨트롤의 데이터 원본을 지정할 때) 발생합니다. 이 이벤트는 취소될 수 없습니다. 업데이트된 내용을 취소하려는 경우(컨트롤의 이전 값을 저장하기 위해서는), BeforeUpdate 이벤트를 사용하고 Cancel 인수를 True로 설정합니다.

AfterUpdate 이벤트는 현재 컨트롤에 대해서는 Exit 이벤트 전과 BeforeUpdate 이벤트 후에 발생하고, 탭 순서의 다음 컨트롤에 대해서는 Enter 이벤트 전에 발생합니다.


BeforeDragOver 이벤트

끌어서 놓기 작업이 진행 중일 때 발생합니다.

구문

프레임일 경우,
Private Sub object_BeforeDragOver(ByVal Cancel As MSForms.Return Boolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

여러 페이지일 경우,
Private Sub object_BeforeDragOver( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

연속 탭일 경우,
Private Sub object BeforeDragOver( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

다른 컨트롤일 경우,
Private Sub object_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

BeforeDragOver 이벤트 구문은 다음 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Index | 필수 요소로서 끌어서 놓기 작업이 영향을 줄 MultiPage의 Page 인덱스입니다.
Cancel | 필수 요소로서 이벤트 상태입니다. False이면(기본값) 컨트롤이 이벤트를 처리해야 함을 나타내고 True이면 응용 프로그램이 이벤트를 처리해야 함을 나타냅니다.
Ctrl | 필수 요소로서 끌어다 놓을 컨트롤입니다.
Data | 필수 요소로서 끌어서 놓기 작업에서 끌어다 놓은 데이터입니다. 데이터는 DataObject에서 패키지됩니다.
X, Y | 필수 요소로서 컨트롤 위치의 가로와 세로 좌표입니다. 두 좌표는 포인트 단위로 측정됩니다. X는 컨트롤의 왼쪽 가장자리에서부터 측정하고, Y는 컨트롤의 위쪽에서부터 측정합니다.
DragState | 필수 요소로서 끌어다 놓은 데이터의 이동 상태입니다.
Effect | 필수 요소로서 끌어서 놓을 원본이 지원한 작업입니다.
Shift | 필수 요소로서 Shift, Ctrl, Alt 키의 상태를 지정합니다.

설정

DragState 설정은 다음과 같습니다.

상수 | 값 | 설명
fmDragStateEnter | 0 | 마우스 포인터가 대상 범위 내에 있습니다.
FmDragStateLeave | 1 | 마우스 포인터가 대상 범위 외에 있습니다.
FmDragStateOver | 2 | 마우스 포인터가 새 위치에 있습니다. 하지만 같은 대상 범위 내에 남아 있습니다.

Effect 설정은 다음과 같습니다.

상수 | 값 | 설명
fmDropEffectNone | 0 | 끌어서 놓을 원본을 끌어서 놓을 대상으로 복사하거나 이동하지 않습니다.
FmDropEffectCopy | 1 | 끌어서 놓을 원본을 끌어서 놓을 대상에 복사합니다.
FmDropEffectMove | 2 | 끌어서 놓을 원본을 끌어서 놓을 대상에 이동합니다.
FmDropEffectCopyOrMove | 3 | 끌어서 놓을 원본을 끌어서 놓을 대상에 복사하거나 이동합니다.

Shift의 설정은 다음과 같습니다.

상수 | 값 | 설명
fmShiftMask | 1 | Shift 키를 눌렀습니다.
FmCtrlMask | 2 | Ctrl 키를 눌렀습니다.
FmAltMask | 4 | Alt 키를 눌렀습니다.

주의

유효한 끌어서 놓을 대상에 직접적으로 진입, 이탈, 정지할 때 마우스 포인터를 조정하려면 이 이벤트를 사용하십시오. 끌어서 놓기 작업 진행 중 사용자가 마우스를 움직이고 마우스 단추를 누르거나 놓을 때 시스템은 이 이벤트를 초기화합니다. 마우스 포인터 위치가 이 이벤트를 받는 대상 개체를 결정합니다. DragState 인수를 검사하여 마우스 포인터 상태를 결정할 수 있습니다.

컨트롤이 이 이벤트를 다룰 때, 끌어서 놓기 동작을 수행하고 있는지 확인하기 위하여 Effect 인수를 사용할 수 있습니다. Effect를 fmDropEffectCopyOrMove로 설정하면, 끌어서 놓을 원본은 복사(fmDropEffectCopy), 이동(fmDropEffectMove), 또는 취소(fmDropEffectNone) 작업을 지원합니다.

Effect를 fmDropEffectCopy로 설정하면, 끌어서 놓을 원본은 복사 작업 또는 취소(fmDropEffectNone) 작업을 지원합니다.

Effect를 fmDropEffectMove로 설정하면, 끌어서 놓을 원본은 이동 작업 또는 취소(fmDropEffectNone) 작업을 지원합니다.

Effect를 fmDropEffectNone으로 설정하면, 끌어서 놓을 원본은 취소 작업을 지원합니다.

대부분의 컨트롤은 Cancel이 False일 동안 끌어서 놓기를 지원하지 않는 것이 기본 설정입니다. 이것은 컨트롤의 어떤 것도 끌어서 놓기를 하지 않는다는 뜻이며, 컨트롤은 BeforeDropOrPaste 이벤트를 초기화하지 않습니다. TextBox와 ComboBox 컨트롤은 예외입니다. 이 두 가지 컨트롤은 Cancel이 False라도 끌어서 놓기 작업을 지원합니다.


BeforeDropOrPaste 이벤트

사용자가 데이터를 개체에 놓거나 붙여넣을 때 발생합니다.

구문

프레임일 경우,
Private Sub object_BeforeDropOrPaste( ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

여러 페이지일 경우,
Private Sub object_BeforeDropOrPaste( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

연속 탭일 경우,
Private Sub object_BeforeDropOrPaste( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

다른 컨트롤일 경우,
Private Sub object_BeforeDropOrPaste( ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

BeforeDropOrPaste 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Index | 필수 요소로서 놓기나 붙여넣기 작업이 영향을 줄 MultiPage의 Page 인덱스입니다.
Cancel | 필수 요소로서 이벤트 상태를 나타냅니다. False이면(기본값) 컨트롤이 이벤트를 처리해야 함을 나타내고 True이면 응용 프로그램이 이벤트를 처리해야 함을 나타냅니다.
Ctrl | 필수 요소로서 대상 컨트롤입니다.
Action | 필수 요소로서 현재 키보드 설정에 따라 보류 중인 끌어서 놓기 작업의 결과를 가리킵니다.
Data | 필수 요소로서 끌어서 놓기 작업에서 끌어다 놓은 데이터입니다. 데이터는 DataObject에 모두 포함됩니다.
X, Y | 필수 요소로서 놓기 작업을 할 때 마우스 포인터의 가로와 세로 위치입니다. 양 좌표들은 포인트로 측정됩니다. X 좌표는 컨트롤의 왼쪽 가장자리에서부터 측정되고, Y 좌표는 컨트롤의 위쪽에서부터 측정됩니다.
Effect | 필수 요소로서 대상 컨트롤에 관한 끌어서 놓기 작업으로 생기는 효과입니다.
Shift | 필수 요소로서 Shift, Ctrl, Alt 키의 상태를 지정합니다.

설정

Action의 설정은 다음과 같습니다.

상수 | 값 | 설명
fmActionPaste | 2 | 선택된 개체를 끌어서 놓을 대상에 붙여넣습니다.
FmActionDragDrop | 3 | 사용자가 개체를 원본에서 끌어서 놓을 대상으로 끌어다 놓은 것과 끌어서 놓을 대상에 놓은 것을 나타냅니다.

Effect에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmDropEffectNone | 0 | 끌어서 놓을 원본을 끌어서 놓을 대상에 복사하거나 이동시키지 않습니다.
FmDropEffectCopy | 1 | 끌어서 놓을 원본을 끌어서 놓을 대상에 복사합니다.
FmDropEffectMove | 2 | 끌어서 놓을 원본을 끌어서 놓을 대상에 이동합니다.
FmDropEffectCopyOrMove | 3 | 끌어서 놓을 원본을 끌어서 놓을 대상에 복사하거나 이동합니다.

Shift에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmShiftMask | 1 | Shift 키를 눌렀습니다.
FmCtrlMask | 2 | Ctrl 키를 눌렀습니다.
FmAltMask | 4 | Alt 키를 눌렀습니다.

주의

MultiPage나 TabStrip에 대해서, 응용 프로그램용 Visual Basic은 데이터 개체를 컨트롤에 전송할 때, 이 이벤트를 초기화합니다.

다른 컨트롤에 대해서, 시스템은 놓거나 붙여넣기 작업에 앞서 이 이벤트를 즉시 초기화합니다.

컨트롤이 이 이벤트를 처리할 때, 끌어서 놓기 동작을 수행하고 있는지 확인하기 위하여 Action 인수를 새로 고칠 수 있습니다. Effect가 fmDropEffectCopyOrMove에 설정되어 있으면, Action 값을 fmDropEffectNone, fmDropEffectCopy, fmDropEffectMove에 지정할 수 있습니다. Effect가 fmDropEffectCopy나 fmDropEffectMove에 설정되어 있으면, Action 값을 fmDropEffectNone에 재지정할 수 있습니다. 그러나 Effect가 fmDropEffectNone에 설정되어 있을 경우에는 Action을 재지정할 수 없습니다.


BeforeUpdate 이벤트

컨트롤의 데이터가 변경되기 전에 발생합니다.

구문

Private Sub object_BeforeUpdate( ByVal Cancel As MSForms.ReturnBoolean)

BeforeUpdate 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Cancel | 필수 요소로서 이벤트 상태를 나타냅니다. False는 컨트롤이 이벤트를 처리해야 한다는 것을 나타냅니다(기본 설정). True는 업데이트를 취소하고 응용 프로그램이 이벤트를 처리해야 한다는 것을 나타냅니다.

주의

BeforeUpdate 이벤트는 컨트롤이 바운드인지의 여부에 관계 없이(즉, RowSource 속성이 컨트롤의 데이터 원본을 지정할 때) 발생합니다. 이 이벤트는 컨트롤의 AfterUpdate와 Exit 이벤트 전에 발생하고 포커스를 받은 다음 컨트롤에 대해서는 Enter 이벤트 전에 발생합니다.

Cancel 인수를 True로 설정하는 경우 포커스는 컨트롤에 남아 있고, AfterUpdate 이벤트나 Exit 이벤트 어느 것도 발생하지 않습니다.


Change 이벤트

Value 속성이 변경될 때 발생합니다.

구문

Private Sub object_Change( )

Change 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

설정

Change 이벤트는 인터페이스의 코드 실행 결과나 사용자 명령 실행 결과에 상관 없이, Value 속성 설정을 변경할 때 발생합니다.

아래는 Value 속성을 변경한 예제입니다.

  • CheckBox, OptionButton 또는 ToggleButton을 클릭합니다.

  • ComboBox, ListBox 또는 TextBox에 새 텍스트 값을 입력하거나 선택합니다.

  • TabStrip에서 다른 탭을 선택합니다.

  • ScrollBar의 스크롤 상자를 이동합니다.

  • SpinButton의 위쪽 화살표나 아래쪽 화살표를 클릭합니다.

  • MultiPage에서 다른 페이지를 선택합니다.

주의

Change 이벤트 프로시저는 컨트롤 사이에서 표시되는 데이터를 동기화하거나 조화시킬 수 있습니다. 예를 들면, ScrollBar 값을 표시하는 TextBox의 내용을 업데이트하기 위해, ScrollBar의 Change 이벤트 프로시저를 사용합니다. 또는 Change 이벤트 프로시저를 사용하여 작업 영역에 데이터와 숫자 식을 표시하고 다른 영역에는 결과를 표시할 수 있습니다.

참고 어떤 경우 Value 속성이 변할 때 Click 이벤트가 함께 발생하기도 합니다. 그러나, Change 이벤트 사용이 속성의 새 값을 발견하는 더 좋은 방법입니다.


Click 이벤트

다음 경우에 발생합니다.

  • 사용자가 마우스로 컨트롤을 클릭합니다.

  • 사용자가 최종적으로 한 개 이상의 가능한 값으로 컨트롤 값을 선택합니다.

구문

여러 페이지, 연속 탭일 경우,
Private Sub object_Click( index As Long)

다른 모든 컨트롤일 경우,
Private Sub object_Click( )

Click 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
index | 필수 요소로서 이 이벤트와 관련된 MultiPage 또는 TabStrip의 페이지나 탭 인덱스입니다.

주의

Click 이벤트가 발생하는 두 가지 경우 중 첫 번째 경우는 CommandButton, Frame, Image, Label, ScrollBar, SpinButton에 적용됩니다. 두 번째 경우는 CheckBox, ComboBox, ListBox, MultiPage, TabStrip, ToggleButton에 적용됩니다. 값이 True로 변경될 때 OptionButton에도 적용됩니다.

다음은 Click 이벤트를 초기화하는 동작의 예제입니다.

  • 폼의 공백이나 목록 상자는 제외한 사용할 수 없는 컨트롤을 클릭합니다.

  • CommandButton을 클릭합니다. 명령 단추가 포커스를 가지고 있지 않은 경우, Enter 이벤트는 Click 이벤트 전에 발생합니다.

  • CommandButton이 포커스를 가질 때 스페이스바를 누릅니다.

  • 컨트롤을 클릭합니다.

  • 다른 명령 단추가 포커스를 가지고 있지 않는 동안, Default 속성이 True로 설정된 명령 단추가 있는 폼에서 Enter 키를 누릅니다.

  • 다른 명령 단추가 포커스를 가지고 있지 않는 동안, Cancel 속성이 True로 설정된 명령 단추가 있는 폼에서 Esc 키를 누릅니다.

  • 컨트롤의 바로 가기 키를 누릅니다.

컨트롤을 클릭하여 Click 이벤트가 발생할 때, Click 이벤트를 발생시키는 이벤트 순서는 다음과 같습니다.

  1. MouseDown

  2. MouseUp

  3. Click

어떤 컨트롤에서는 Value 속성이 변할 때 Click 이벤트가 발생합니다. 그러나, Change 이벤트를 사용하는 것이 속성의 새 값을 찾는 더 좋은 방법입니다. 다음은 컨트롤에 새 값을 지정하여 Click 이벤트를 초기화하는 동작의 예제입니다.

  • MultiPage 또는 TabStrip의 다른 페이지나 탭을 클릭합니다. 이런 컨트롤의 Value 속성은 현재 Page나 Tab을 나타냅니다. 현재 페이지나 탭을 클릭하는 것은 컨트롤 값을 변경하거나 Click 이벤트를 초기화하지 않습니다.

  • 이런 컨트롤 중 하나가 포커스를 갖게 될 때 스페이스바를 누르면서, CheckBox나 ToggleButton을 클릭합니다. 또는 이런 컨트롤 중 하나에서 바로 가기 키를 누르거나 코드의 컨트롤 값을 변경하며 확인란이나 토글 단추를 클릭합니다.

  • OptionButton의 값을 True로 변경합니다. 그룹의 OptionButton 하나를 True로 설정하면 그룹의 다른 단추들은 False로 설정됩니다. 그러나 Click 이벤트는 값이 True로 변경된 단추에만 발생합니다.

  • 컨트롤의 드롭다운 목록 항목과 일치하기 위하여 ComboBox나 ListBox 값을 설정합니다. 예를 들어, 목록을 정렬하지 않은 경우, 편집 영역에 입력된 문자열의 첫 번째 일치는 목록에서 유일하지 않습니다. 따라서 이런 값을 선택하여 Click 이벤트를 초기화할 수 없습니다. 목록을 정렬한 경우에는, 선택된 값은 사용자가 입력한 텍스트의 유일한 일치를 보증하는 입력 일치를 사용할 수 있습니다.

Value가 Null로 설정될 때 Click 이벤트를 초기화할 수 없습니다.

참고 마우스 왼쪽 단추를 클릭하면 컨트롤 값이 변경되고 따라서 Click 이벤트가 초기화됩니다. 마우스 오른쪽 단추를 클릭하면 컨트롤 값이 변경되지 않아 Click 이벤트가 초기화되지 않습니다.


DblClick 이벤트

사용자가 개체를 가리키고 마우스 단추를 두 번 클릭했을 때 발생합니다.

구문

여러 페이지, 연속 탭일 경우,
Private Sub object_DblClick( index As Long, ByVal Cancel As MSForms.ReturnBoolean)

다른 컨트롤일 경우,
Private Sub object_DblClick( ByVal Cancel As MSForms.ReturnBoolean)

DblClick 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
index | 필수 요소로서 Page 또는 Tabs 컬렉션 내에서 Pages 또는 Tab 개체의 위치입니다.
Cancel | 필수 요소로서 이벤트 상태를 나타냅니다. True이면 응용 프로그램이 이벤트를 처리해야 한다는 것을 나타내고 False이면 컨트롤이 이벤트를 처리해야 한다는 것을 나타냅니다(기본값).

주의

발생할 이벤트에서 두 번 클릭은 시스템의 두 번 클릭 속도 설정에 의해 지정된 시간 간격 동안에 발생해야 합니다.

Click 이벤트를 지원하는 컨트롤에서 DblClick 이벤트를 발생시키는 이벤트 순서는 다음과 같습니다.

  1. MouseDown

  2. MouseUp

  3. Click

  4. DblClick

TextBox와 같은 컨트롤이 Click 이벤트를 지원하지 않는 경우, Click 이벤트는 DblClick 이벤트를 발생시키는 이벤트 순서에 나타나지 않습니다.

사용자가 마우스를 두 번 클릭할 때 Cancel의 값을 True로 반환한 경우, 컨트롤은 두 번째 클릭을 무시합니다. 이것은 토글 단추를 두 번 클릭한 것과 같이 두 번째 클릭이 첫 번째 클릭 효과를 반전시키는 경우 유용합니다. Cancel 인수는, 폼이 두 번째 클릭을 무시하게 하여, 한 번 클릭과 두 번 클릭의 효과를 같게 합니다.


DropButtonClick 이벤트

드롭다운 목록이 나타나거나 사라질 때마다 발생합니다.

구문

Private Sub object_DropButtonClick( )

DropButtonClick 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

사용자 인터페이스에서 어떤 동작을 취하거나 코드를 통해서 DropButtonClick 이벤트를 초기화합니다.

코드에서는 DropDown 메서드를 호출하여 DropButtonClick 이벤트를 초기화합니다.

사용자 인터페이스에서 다음 동작들은 이벤트를 초기화합니다.

  • 컨트롤에서 드롭다운 단추 클릭

  • F4 키 누르기

코드나 인터페이스에서 위의 동작 중 하나를 실행하면 드롭다운 상자를 컨트롤에 나타나게 합니다. 시스템은 드롭다운 상자가 사라질 때 DropButtonClick 이벤트를 초기화합니다.


Enter, Exit 이벤트

실제로 컨트롤이 같은 폼의 컨트롤에서부터 포커스를 받기 전에 Enter 키 효과가 발생합니다. Exit는 컨트롤이 같은 폼의 다른 컨트롤에 포커스를 잃기 바로 전에 발생합니다.

구문

Private Sub object_Enter( )

Private Sub object_Exit( ByVal Cancel As MSForms.ReturnBoolean)

Enter와 Exit 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Cancel | 필수 요소로서 이벤트 상태를 나타냅니다. False이면 컨트롤이 이벤트를 처리해야 한다는 것을 나타내고(기본값), True이면 응용 프로그램이 이벤트를 처리하고 포커스는 현재 컨트롤에 남아 있어야 한다는 것을 나타냅니다.

주의

Enter와 Exit 이벤트는 Visual Basic의 GotFocus나 LostFocus 이벤트와 유사합니다. Enter와 Exit 이벤트는 GotFocus나 LostFocus 이벤트와 달리 폼이 포커스를 얻거나 잃을 때 발생하지 않습니다.

예를 들어, Enter 이벤트를 초기화하는 확인란을 선택한다고 가정합니다. 그 후 같은 폼의 다른 컨트롤을 선택하면 포커스가 같은 폼에 다른 개체로 이동하고 있기 때문에 Exit 이벤트는 확인란을 초기화시키고, 폼의 둘째 컨트롤에 대해서 Enter 이벤트가 발생합니다.

포커스가 특정 컨트롤로 이동하기 전에 Enter 이벤트가 발생하기 때문에, 지시 사항을 표시하기 위하여 Enter 이벤트 프로시저를 사용할 수 있습니다. 예를 들어, 작은 폼이나 메시지 상자를 표시하기 위하여 매크로나 이벤트 프로시저를 사용할 수 있습니다.

참고 컨트롤이 포커스를 잃는 것을 방지하기 위해 Exit 이벤트의 Cancel 인수를 True로 지정합니다.


Error 이벤트

컨트롤이 오류를 탐지하고 호출한 프로그램에 오류 정보를 반환하지 못했을 때 발생합니다.

구문

여러 페이지일 경우,
Private Sub object_Error( index As Long, ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As SCode, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.Return Boolean)

다른 컨트롤일 경우,
Private Sub object_Error( ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As SCode, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)

Error 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Index | 필수 요소로서 이 이벤트와 관련된 MultiPage의 페이지 인덱스입니다.
Number | 필수 요소로서 오류를 구별하기 위하여 컨트롤이 사용하는 고유한 값을 지정합니다.
Description | 필수 요소로서 오류의 내용을 설명합니다.
Scode | 필수 요소로서 오류의 OLE 상태 코드를 지정합니다. 하위 16 비트는 Number 인수에 해당하는 값을 지정합니다.
Source | 필수 요소로서 이벤트를 초기화하는 컨트롤을 식별하는 문자열입니다.
HelpFile | 필수 요소로서 오류를 설명하는 도움말 파일의 확인된 전체 경로명을 지정합니다.
HelpContext | 필수 요소로서 오류에 대한 설명이 있는 도움말 파일 항목의 컨텍스트 ID를 지정합니다.
CancelDisplay | 필수 요소로서 메시지 상자에 오류 문자열을 표시할 수 있는지의 여부를 지정합니다.

주의

Error 이벤트용으로 작성된 코드는 컨트롤이 오류 조건에 반응하는 방법을 결정합니다.

오류 조건을 처리하기 위한 기능은 응용 프로그램에 따라 다릅니다. Error 이벤트는 응용 프로그램이 처리 준비를 못한 오류가 발생했을 때 초기화됩니다.


KeyDown, KeyUp 이벤트

사용자가 키를 누르거나 놓을 때 연속해서 발생합니다. KeyDown은 사용자가 키를 누를 때 발생합니다. KeyUp은 사용자가 키를 놓을 때 발생합니다.

구문

Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)

Private Sub object_KeyUp( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)

KeyDown과 KeyUp 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
KeyCode | 필수 요소로서 누르거나 눌렀다 놓은 키 코드를 나타내는 정수입니다.
Shift | 필수 요소로서 Shift, Ctrl, Alt 키의 상태를 표시합니다.

설정

Shift에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmShiftMask | 1 | Shift 키를 눌렀습니다.
fmCtrlMask | 2 | Ctrl 키를 눌렀습니다.
fmAltMask | 4 | Alt 키를 눌렀습니다.

주의

KeyDown 이벤트는 실행 중인 폼이나 그 폼의 컨트롤이 포커스를 가지고 있는 동안 사용자가 실행 중인 폼의 키를 눌렀을 때 발생합니다. KeyUp 이벤트가 발생할 때마다, KeyDown과 KeyPress 이벤트는 사용자가 키를 눌렀다 놓을 때까지 반복해서 바뀝니다. 포커스가 맞추어진 폼과 컨트롤은 모든 키 입력을 받습니다. 폼은 폼에 컨트롤이 없거나 보이는 폼들이 사용하지 못할 때만 포커스가 맞추어집니다.

이 이벤트는 매크로의 SendKeys 동작이나 Visual Basic의 SendKeys 문을 사용하여 폼이나 컨트롤에 키 입력을 보내는 경우 발생합니다.

KeyDown과 KeyUp 이벤트는 특정하게 다음과 같은 내용을 확인하거나 구분하는 데 사용합니다.

  • 기능 키와 같은 확장된 문자 키

  • Home, End, PgUp, PgDn, 위쪽 화살표, 아래쪽 화살표, 오른쪽 화살표, 왼쪽 화살표, Tab과 같은 키보드 명령

  • 키의 조합과 표준 키보드 변경자(Shift, Ctrl, Alt)

  • 숫자키 패드와 키보드 숫자 키

KeyDown과 KeyUp 이벤트는 다음 상황에서는 발생하지 않습니다.

  • 사용자가 Default 속성이 True로 설정된 명령 단추를 가진 폼에서 Enter 키를 눌렀을 경우

  • 사용자가 Cancel 속성이 True로 설정된 명령 단추를 가진 폼에서 Esc 키를 눌렀을 경우

KeyDown과 KeyPress 이벤트는 ANSI 키를 누르거나 보낼 때 발생합니다. KeyUp 이벤트는 키를 누르거나 보내어 생기는 컨트롤의 이벤트 다음에 발생합니다. 키 입력이 포커스를 한 컨트롤에서 다른 컨트롤로 이동시키는 경우, KeyDown 이벤트는 첫 번째 컨트롤에 대해 발생합니다. 반면에 KeyPress와 KeyUp 이벤트는 두 번째 컨트롤에 대해 발생합니다.

키보드와 관련된 이벤트는 다음과 같습니다.

  1. KeyDown

  2. KeyPress

  3. KeyUp

참고 KeyDown과 KeyUp 이벤트는 폼과 폼의 컨트롤에만 적용됩니다. ANSI 문자를 해석하거나 누른 키에 응답하는 ANSI 문자를 찾기 위해서 KeyPress 이벤트를 사용합니다.


KeyPress 이벤트

사용자가 ANSI 키를 누르면 발생합니다.

구문

Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)

KeyPress 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
KeyANSI | 필수 요소로서 표준 숫자 ANSI 키 코드를 나타내는 정수 값입니다.

주의

KeyPress 이벤트는 폼이나 폼의 컨트롤이 포커스를 가지고 있는 동안 실행 중인 폼에 사용자가 입력할 수 있는 문자(ANSI 키)를 만들어내는 키를 누를 때 발생합니다. 이벤트는 키를 누르기 전이나 후에 발생합니다. 이 이벤트는 또한 ANSI 키입력을 매크로의 SendKeys 동작이나 Visual Basic의 SendKeys 문을 사용하여 폼이나 폼의 컨트롤에 보내는 경우 발생합니다.

KeyPress 이벤트는 다음 키 중 하나를 누르면 발생합니다.

  • 출력할 수 있는 키보드 문자

  • 표준 영문자와 조합된 Ctrl 키

  • 특별한 문자와 조합된 Ctrl 키

  • 백스페이스

  • Esc 키

KeyPress 이벤트는 다음과 같은 상황에서는 발생하지 않습니다.

  • Tab 키 누르기

  • Enter 키 누르기

  • 화살표 키 누르기

  • 어떤 컨트롤에서 다른 컨트롤로 포커스를 이동하기 위해 키 입력할 때

참고 백스페이스는 ANSI 문자 집합의 일부이지만, Delete 키는 그렇지 않습니다. 백스페이스를 사용하여 컨트롤에서 문자를 삭제하면 KeyPress 이벤트를 일으키지만, Delete 키를 사용하여 문자를 삭제하면 일으키지 않습니다.

사용자가 ANSI 키 코드를 만드는 키를 누르고 있을 때, KeyDown과 KeyPress 이벤트는 반복해서 바뀝니다. 사용자가 키를 떼면 KeyUp 이벤트가 발생합니다. 포커스가 맞추어진 폼과 컨트롤은 모든 키 입력을 받습니다. 폼은 컨트롤이 없거나 보이는 폼을 사용하지 못할 때만 포커스가 맞추어집니다.

KeyPress 이벤트에 대한 기본 동작은 누른 키에 응답하는 이벤트 코드를 처리하는 것입니다. KeyANSI는 누른 키나 키 조합에 대응하는 ANSI 문자를 가리킵니다. KeyPress 이벤트는 두 개의 분리된 문자와 같은 분리된 키 코드로써 각 문자를 대문자와 소문자로 해석합니다.

키보드의 물리적 상태에 응답하거나 기능 키, 탐색 키, 키보드 변경자(Alt, Shift, Ctrl)와 같은 KeyPress 이벤트에 의해 인식되지 않는 키 입력을 처리하기 위하여 KeyDown과 KeyUp 이벤트 프로시저를 사용합니다.

키보드와 관련된 이벤트는 다음과 같습니다.

  1. KeyDown

  2. KeyPress

  3. KeyUp


Layout 이벤트

폼, Frame 또는 MultiPage 크기를 변경할 때 발생합니다.

구문

여러 페이지일 경우,
Private Sub object_Layout( index As Long)

다른 모든 컨트롤일 경우,
Private Sub object_Layout( )

Layout 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Index | 필수 요소로서 크기를 변경하는 MultiPage의 페이지 인덱스입니다.

주의

Layout 이벤트의 기본 동작은 컨트롤의 새 위치를 계산하고 화면에 다시 칠합니다.

사용자는 컨트롤의 크기를 변경하여 Layout 이벤트를 초기화할 수 있습니다.

AutoSize 속성을 지원하는 컨트롤에 대해서 Layout 이벤트는 AutoSize가 컨트롤의 크기를 변경할 때 초기화됩니다. 이는 사용자가 컨트롤의 크기에 영향을 주는 속성 값을 변경할 때 발생합니다. 예를 들어, TextBox나 Label의 글꼴 크기를 크게 하면 현저하게 컨트롤의 차원이 변경되고, Layout 이벤트가 초기화됩니다.


MouseDown, MouseUp 이벤트

사용자가 마우스 단추를 클릭할 때 발생합니다. MouseDown은 사용자가 마우스 단추를 누를 때 발생하고, MouseUp은 사용자가 마우스 단추를 놓을 때 발생합니다.

구문

여러 페이지, 연속 탭일 경우,
Private Sub object_MouseDown( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub object_MouseUp( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

다른 컨트롤일 경우,
Private Sub object_MouseDown( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub object_MouseUp( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

MouseDown과 MouseUp 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
index | 필수 요소로서 지정한 이벤트를 가진 MultiPage 또는 TabStrip의 페이지나 탭 인덱스입니다.
Button | 필수 요소로서 이벤트를 발생시킨 마우스 단추를 식별하는 정수 값입니다.
Shift | 필수 요소로서 Shift, Ctrl, Alt 키 상태를 표시합니다.
X, Y | 필수 요소로서 폼, Frame 또는 Page의 왼쪽이나 위쪽 가장자리에서 부터 포인트 단위로 측정한 가로 또는 세로 위치를 표시합니다.

설정

Button에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmButtonLeft | 1 | 왼쪽 단추를 눌렀습니다.
fmButtonRight | 2 | 오른쪽 단추를 눌렀습니다.
fmButtonMiddle | 4 | 가운데 단추를 눌렀습니다.

Shift에 대한 설정은 다음과 같습니다.

값 | 설명
1 | Shift 키를 눌렀습니다.
2 | Ctrl 키를 눌렀습니다.
3 | Shift+Ctrl를 눌렀습니다.
4 | Alt 키를 눌렀습니다.
5 | Alt+Shift를 눌렀습니다.
6 | Alt+Ctrl를 눌렀습니다.
7 | Alt+Shift+Ctrl를 눌렀습니다.

각 키보드 변경자를 다음 상수를 사용해 구별할 수 있습니다.

상수 | 값 | 설명
fmShiftMask | 1 | Shift 키를 검출하기 위한 마스크입니다.
fmCtrlMask | 2 | Ctrl 키를 검출하기 위한 마스크입니다.
fmAltMask | 4 | Alt 키를 검출하기 위한 마스크입니다.

주의

MultiPage에서 MouseDown 이벤트는 사용자가 컨트롤을 마우스 단추로 누를 때 발생합니다.

TabStrip에서 인덱스 인수는 사용자가 클릭한 탭을 식별합니다. 인덱스 -1은 사용자가 탭을 클릭하지 않았다는 것을 가리킵니다. 예를 들어, 컨트롤의 오른쪽 위 가장자리에 탭이 없는 경우 오른쪽 위 가장자리에서 클릭한 것은 인덱스를 -1로 설정합니다.

폼에서 사용자는 폼의 공백, 레코드 선택자, 스크롤 막대에서 마우스 단추를 눌렀다 떼어 MouseDown과 MouseUp 이벤트를 생성할 수 있습니다.

마우스와 관련된 일련의 이벤트는 다음과 같습니다.

  1. MouseDown

  2. MouseUp

  3. Click

  4. DblClick

  5. MouseUp

MouseDown이나 MouseUp 이벤트 프로시저는 마우스 단추를 누르거나 놓을 때 발생하는 동작을 지정합니다. MouseDown과 MouseUp 이벤트는 왼쪽, 가운데, 오른쪽 마우스 단추를 구별할 수 있도록 해줍니다. Shift, Ctrl, Alt 키보드 변경자를 사용하는 마우스 키보드 조합의 코드 역시 작성할 수 있습니다.

포인터가 폼이나 컨트롤에 있는 동안 마우스 단추를 누르면 그 개체는 마우스 위치를 포착하고 마지막 MouseUp 이벤트를 포함해 모든 마우스 이벤트를 받습니다. 이는 마우스 이벤트에 의해 반환된 X, Y 마우스 포인터 좌표가 항상 좌표를 받을 수 있는 개체의 경계 안에 있지 않을 수도 있다는 것을 의미합니다.

마우스 단추를 연속적으로 누르는 경우 마우스를 포착하는 개체는 모든 단추를 놓을 때까지 연속적인 마우스 이벤트를 모두 받습니다.

MouseDown이나 MouseUp 이벤트가 발생했을 때 Shift, Ctrl, Alt 키의 상태를 구별하기 위해 Shift 인수를 사용합니다. 예를 들어, Ctrl+Alt를 누르면 Shift의 값은 6이 됩니다.


MouseMove 이벤트

사용자가 마우스를 이동하면 발생합니다.

구문

여러 페이지, 연속 탭일 경우,
Private Sub object_MouseMove( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

다른 컨트롤일 경우,
Private Sub object_MouseMove( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

MouseMove 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Index | 필수 요소로서 이 이벤트와 관련된 MultiPage 또는 TabStrip의 페이지나 탭 인덱스입니다.
Button | 필수 요소로서 마우스 단추 상태를 구분하는 정수 값입니다.
Shift | 필수 요소로서 Shift, Ctrl, Alt 키 상태를 지정합니다.
X, Y | 필수 요소로서 컨트롤의 왼쪽이나 위쪽 가장자리에서 포인트 단위로 측정된 가로 또는 세로 위치를 나타냅니다.

설정

index 인수는 페이지나 탭의 클릭 여부를 지정합니다. –1은 사용자가 어떤 페이지나 탭도 클릭하지 않은 것을 나타냅니다.

Button에 대한 설정은 다음과 같습니다.

값 | 설명
0 | 단추를 누르지 않습니다.
1 | 왼쪽 단추를 누릅니다.
2 | 오른쪽 단추를 누릅니다.
3 | 오른쪽과 왼쪽 단추를 누릅니다.
4 | 가운데 단추를 누릅니다.
5 | 가운데와 왼쪽 단추를 누릅니다.
6 | 가운데와 오른쪽 단추를 누릅니다.
7 | 세 단추를 누릅니다.

Shift에 대한 설정은 다음과 같습니다.

값 | 설명
1 | Shift 키를 눌렀습니다.
2 | Ctrl 키를 눌렀습니다.
3 | Shift+Ctrl을 눌렀습니다.
4 | Alt 키를 눌렀습니다.
5 | Alt+Shift를 눌렀습니다.
6 | Alt+Ctrl을 눌렀습니다.
7 | Alt+Shift+Ctrl을 눌렀습니다.

각 키보드 변경자를 다음 상수를 사용해 구별할 수 있습니다.

상수 | 값 | 설명
fmShiftMask | 1 | Shift 키를 검출하기 위한 마스크입니다.
fmCtrlMask | 2 | Ctrl 키를 검출하기 위한 마스크입니다.
fmAltMask | 4 | Alt 키를 검출하기 위한 마스크입니다.

주의

MouseMove 이벤트는 폼, 폼의 컨트롤, 레이블에 적용됩니다.

MouseMove 이벤트는 마우스 포인터가 개체 위를 움직일 때 계속해서 발생합니다. 다른 개체가 마우스를 포착하지 않는 한, 개체는 마우스 위치가 개체의 경계선 안에 있을 때마다 MouseMove 이벤트를 인식합니다.

또한 마우스가 움직이지 않더라도 폼을 이동하면 MouseMove 이벤트가 발생합니다. MouseMove 이벤트는 폼이 포인터 아래로 움직일 때 발생합니다. 만약 매크로나 이벤트 프로시저가 MouseMove 이벤트에 응답하여 폼을 이동시키는 경우, 이벤트는 계속적으로 MouseMove 이벤트를 발생시킵니다.

두 개의 컨트롤이 밀접하여 같이 있고 그 사이를 마우스 포인터로 재빨리 이동할 수 있으면 MouseMove 이벤트가 그 공간에 대해서 발생하지 않을 수도 있습니다. 그런 경우 양쪽 컨트롤의 MouseMove 이벤트에 반응할 수도 있습니다.

마우스 단추 상태를 구분하기 위해 Button 인수의 반환된 값을 사용할 수 있습니다.

MouseMove 이벤트가 발생할 때 Shift, Ctrl, Alt 키의 상태를 구분하기 위하여 Shift 인수를 사용할 수 있습니다. 예를 들어, Ctrl+Alt를 누르면 Shift 값은 6이 됩니다.

참고 마우스 단추를 눌렀다 뗄 때 발생하는 이벤트에 반응하기 위하여 MouseDown과 MouseUp 이벤트 프로시저를 사용할 수 있습니다.


RemoveControl 이벤트

컨트롤이 컨테이너에서 삭제될 때 발생합니다.

구문

여러 페이지일 경우,
Private Sub object_RemoveControl( index As Long, ctrl As Control)

다른 컨트롤일 경우,
Private Sub object_RemoveControl( ctrl As Control)

RemoveControl 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Index | 필수 요소로서 삭제된 컨트롤을 포함한 MultiPage의 페이지 인덱스입니다.
Ctrl | 필수 요소로서 삭제된 컨트롤입니다.

주의

이 이벤트는 컨트롤이 폼에서 삭제되었을 때 발생합니다. 닫힌 폼으로 인하여 컨트롤이 언로드될 때는 발생하지 않습니다.


Scroll 이벤트

스크롤 상자의 위치가 바뀔 때 발생합니다.

구문

스크롤 막대일 경우,
Private Sub object_Scroll( )

여러 페이지일 경우.
Private Sub object_Scroll( index As Long, ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)

프레임일 경우,
Private Sub object_Scroll( ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)

Scroll 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Index | 필수 요소로서 이 이벤트와 관련된 MultiPage의 페이지 인덱스를 지정합니다.
ActionX | 필수 요소로서 수평 방향으로 발생한 동작입니다.
ActionY | 필수 요소로서 수직 방향으로 발생한 동작입니다.
RequestDx | 필수 요소로서 스크롤 막대가 수평 방향으로 이동하려는 포인트 단위 거리입니다.
RequestDy | 필수 요소로서 스크롤 막대가 수직 방향으로 이동하려는 포인트 단위 거리입니다.
ActualDx | 필수 요소로서 스크롤 막대가 수평 방향으로 이동한 포인트 단위 거리입니다.
ActualDy | 필수 요소로서 스크롤 막대가 수직 방향으로 이동한 포인트 단위 거리입니다.

설정

ActionX와 ActionY에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmScrollActionNoChange | 0 | 아무 변화도 일어나지 않았습니다.
fmScrollActionLineUp | 1 | 세로 스크롤 막대에서 위로 조금 올라가고, 가로 스크롤 막대에서 왼쪽으로 조금 이동합니다. 이동하는 것은 스크롤 막대를 움직이기 위해 키보드에서 위쪽이나 왼쪽 화살표 키를 누르는 것과 같습니다.
fmScrollActionLineDown | 2 | 세로 스크롤 막대에서 아래로 조금 내려가고, 가로 스크롤 막대에서 오른쪽으로 조금 이동합니다. 이동하는 것은 스크롤 막대를 움직이기 위해 키보드에서 아래쪽이나 오른쪽 화살표 키를 누르는 것과 같습니다.
fmScrollActionPageUp | 3 | 세로 스크롤 막대에서 한 페이지 위로 올라가고, 가로 스크롤 막대에서 한 페이지 왼쪽으로 이동합니다. 이동하는 것은 스크롤 막대를 움직이기 위해 키보드에서 Page Up 키를 누르는 것과 같습니다.
fmScrollActionPageDown | 4 | 세로 스크롤 막대에서 한 페이지 아래로 내려가고, 가로 스크롤 막대에서 한 페이지 오른쪽으로 이동합니다. 이동하는 것은 스크롤 막대를 움직이기 위해 키보드에서 Page Down 키를 누르는 것과 같습니다.
fmScrollActionBegin | 5 | 세로 스크롤 막대의 맨 위와 가로 스크롤 막대의 왼쪽 끝입니다.
fmScrollActionEnd | 6 | 세로 스크롤 막대의 맨 아래와 가로 스크롤 막대의 오른쪽 끝입니다.
FmScrollActionPropertyChange | 8 | 변경된 ScrollTop이나 ScrollLeft 속성의 값입니다. 이동 방향이나 이동량은 변경된 속성이 어느 것인지와 새 속성 값에 의존합니다.
FmScrollActionControlRequest | 9 | 컨트롤은 스크롤하기 위한 컨테이너를 요구합니다. 이동량은 특정한 컨트롤과 컨테이너에 따라 다릅니다.
FmScrollActionFocusRequest | 10 | 사용자는 다른 컨트롤로 이동합니다. 이동량은 선택된 컨트롤의 위치에 따라 다르고, 일반적으로 선택된 컨트롤을 움직여 사용자에게 완전히 보이도록 하는 효과가 있습니다.

주의

폼, Frame 또는 Page와 관련된 Scroll 이벤트의 결과는 ActionX, ActionY, ActualX, ActualY 인수를 반환합니다. ActionX와 ActionY는 발생한 동작을 알아냅니다. ActualX와 ActualY는 스크롤 상자가 이동한 거리를 알아냅니다.

기본 동작은 스크롤 상자의 새 위치를 계산하여 그 위치까지 이동하는 것입니다.

폼, Frame 또는 Page에 대한 Scroll 메서드를 생성함으로써 Scroll 이벤트를 초기화할 수 있습니다. 스크롤 상자를 움직여 Scroll 이벤트를 생성할 수 있습니다.

독립 실행형 ScrollBar와 관련된 Scroll 이벤트는, 사용자가 스크롤 상자를 다른 방향으로 움직였다는 것을 나타냅니다. 스크롤 상자가 아닌 ScrollBar를 누른 사용자나 코드에 의해 ScrollBar의 값이 변할 때 이 이벤트는 초기화될 수 없습니다.


SpinDown, SpinUp 이벤트

SpinDown은 사용자가 아래쪽이나 왼쪽 스핀 단추 화살표를 클릭할 때 발생합니다. SpinUp은 사용자가 위쪽이나 오른쪽 스핀 단추 화살표를 클릭할 때 발생합니다.

구문

Private Sub object_SpinDown( )

Private Sub object_SpinUp( )

SpinDown과 SpinUp 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

SpinDown 이벤트는 Value 속성을 감소시킵니다. SpinUp 이벤트는 Value 속성을 증가시킵니다.


Zoom 이벤트

Zoom 속성 값이 변경될 때 발생합니다.

구문

프레임일 경우,
Private Sub object_Zoom( Percent As Integer)

여러 페이지일 경우,
Private Sub object_Zoom( index As Long, Percent As Integer)

Zoom 이벤트 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Index | 필수 요소로서 이 이벤트와 관련된 MultiPage의 페이지 인덱스를 지정합니다.
Percent | 필수 요소로서 폼이 확대/축소되는 백분율을 지정합니다. 유효 값의 범위는 10%에서 400%까지입니다.

주의

Zoom 속성 값은 폼이나 Page의 크기를 변경하는 방법을 식별합니다. 속성 값은 컨트롤의 크기가 현재 크기에 비례하여 변경되는 방법을 나타냅니다. 100 미만의 수치는 표시된 폼의 크기를 감소시킵니다. 100을 초과하는 수치는 표시된 폼의 크기를 증가시킵니다.

이 속성을 10에서 400까지의 정수로 설정할 수 있습니다.


Add 메서드

TabStrip이나 MultiPage에 Tab 또는 Page를 추가하거나 삽입합니다. 또는 프로그램 식별자(ProgID)를 사용하여 페이지나 폼에 컨트롤을 추가합니다.

구문

여러 페이지, 연속 탭일 경우,
Set Object = object.Add( [ Name [, Caption [, index]]])

다른 컨트롤일 경우,
Set Control = object.Add( ProgID [, Name [, Visible]])

Add 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Name | 선택 요소로서 추가된 개체의 이름을 지정합니다. 이름이 지정되어 있지 않으면, 시스템은 폼이 사용하는 응용 프로그램의 규칙에 따라 기본 이름을 생성합니다.
Caption | 선택 요소로서 탭이나 컨트롤에 표시할 캡션을 지정합니다. 캡션이 지정되어 있지 않으면, 시스템은 폼이 사용하는 응용 프로그램의 규칙에 따라 기본 캡션을 만듭니다.
index | 선택 요소로서 Pages나 Tabs 컬렉션 내에서 페이지나 탭의 위치를 확인합니다. 인덱스가 지정되어 있지 않으면, 시스템은 Pages나 Tabs 컬렉션의 끝에 페이지나 탭을 추가하고 적당한 인덱스 값을 할당합니다.
ProgID | 필수 요소로서 프로그램 식별자입니다. 개체 클래스를 구분하는 공간이 없는 문자열입니다. ProgID의 표준 구문은 <Vendor >.<Component>.<Version>입니다. ProgID는 클래스 식별자(CLSID)와 연결되어 있습니다.
Visible | 선택 요소로서 True이면 개체가 보이고(기본값), False이면 개체가 보이지 않습니다.

설정

각 컨트롤의 ProgID 값은 다음과 같습니다.

CheckBox | Forms.CheckBox.1
ComboBox | Forms.ComboBox.1
CommandButton | Forms.CommandButton.1
Frame | Forms.Frame.1
Image | Forms.Image.1
Label | Forms.Label.1
ListBox | Forms.ListBox.1
MultiPage | Forms.MultiPage.1
OptionButton | Forms.OptionButton.1
ScrollBar | Forms.ScrollBar.1
SpinButton | Forms.SpinButton.1
TabStrip | Forms.TabStrip.1
TextBox | Forms.TextBox.1
ToggleButton | Forms.ToggleButton.1

주의

MultiPage 컨트롤에서 Add 메서드는 Page 개체를 반환합니다. TabStrip에서는 Tab 개체를 반환합니다. 첫 번째 Page나 컬렉션의 첫 번째 Tab에 대한 인덱스 값은 0이고, 두 번째 Page나 컬렉션의 두 번째 Tab에 대한 값은 1 등 순서대로 값이 지정됩니다.

개체의 Controls 컬렉션에서 Add 메서드는 컨트롤을 지정된 ProgID에 반환합니다. AddControl 이벤트는 컨트롤이 추가된 후에 발생합니다.

디자인 모드에서 사용자 폼의 Controls 컬렉션에 컨트롤을 추가할 수 있지만, 그러기 위해서는 응용 프로그램 확장 라이브러리용 Microsoft Visual Basic의 Designer 속성을 사용해야만 합니다. Designer 속성은 UserForm 개체를 반환합니다.

다음 구문은 지정된 컨트롤의 Text 속성을 반환합니다.

userform1.thebox.text

런타임에서 컨트롤을 추가하려면, 컨트롤 속성을 참조하기 위해 다음 감탄문을 사용합니다. 예를 들어, 런타임에서 추가된 컨트롤의 Text 속성을 반환하기 위해 다음 구문을 사용합니다.

userform1!thebox.text

참고 런타임에서 Add 메서드로 컨트롤을 추가할 때만 런타임에서 컨트롤의 Name 속성을 변경할 수 있습니다.


AddItem 메서드

단일 열 목록 상자나 콤보 상자에서는 목록에 항목을 추가합니다. 여러 열 목록 상자나 콤보 상자에서는 목록에 행을 추가합니다.

구문

Variant = object.AddItem [ item [, varIndex]]

AddItem 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Item | 선택 요소로서 추가할 항목의 행을 지정합니다. 첫 번째 항목의 행 숫자는 0입니다. 두 번째 항목의 행 숫자는 1 등 순서대로 값이 지정됩니다.
VarIndex | 선택 요소로서 새 항목이나 행이 위치한 개체 내에 위치를 지정하는 정수입니다.

주의

varIndex에 유효 값을 제공하는 경우, AddItem 메서드는 목록에서 항목이나 행을 그 위치에 놓습니다. varIndex 값을 생략한 경우, 메서드는 목록 끝에 항목의 행을 추가합니다.

varIndex 값은 ListCount 속성 값보다 반드시 작아야 합니다.

여러 열 ListBox나 ComboBox에서는 AddItem을 모든 행에 삽입합니다. 즉, 각 컨트롤 열에 항목을 삽입하는 것입니다. 값을 첫 번째 열 다음의 항목에 할당하기 위하여, List 속성 또는 Column 속성을 사용하고, 항목의 행과 열을 지정합니다.

컨트롤이 데이터에 바운드된 경우, AddItem 메서드는 수행할 수 없습니다.

참고 List를 사용하여 ComboBox나 ListBox에 한 번에 한 행 이상을 추가할 수 있습니다.


Clear 메서드

개체나 컬렉션에서 모든 개체를 제거합니다.

구문

object.Clear

Clear 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

MultiPage나 TabStrip에서, Clear 메서드는 개별 페이지나 탭을 삭제합니다.

ListBox나 ComboBox에서, Clear는 목록의 모든 항목을 제거합니다.

Controls 컬렉션의 경우, Clear는 런타임에서 Add 메서드로 만들어진 컨트롤을 삭제합니다. 디자인 모드에서 만들어진 컨트롤에 Clear를 사용하면 오류가 발생합니다.

컨트롤이 데이터에 바운드되면, Clear 메서드를 수행할 수 없습니다.


Copy 메서드

개체의 내용을 클립보드로 복사합니다.

구문

object.Copy

Copy 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

원래 내용은 개체에 남아 있습니다.

복사될 실제 내용은 개체에 따라 다릅니다. 예를 들어, Page에서 Copy 메서드는 현재 선택된 컨트롤 한 개나 여러 개를 복사합니다. TextBox나 ComboBox에서는 현재 선택된 텍스트를 복사합니다.

폼, Frame 또는 Page에서 Copy를 사용하면 현재 활성화된 컨트롤을 복사합니다.


Cut 메서드

개체에서 선택된 정보를 제거하고 클립보드로 전송합니다.

구문

object.Cut

Cut 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

ComboBox나 TextBox의 경우, Cut 메서드는 컨트롤에서 현재 선택된 텍스트를 클립보드로 삭제합니다. 이 메서드는 포커스가 있는 컨트롤을 요구하지 않습니다.

폼, Page 또는 Frame에서 Cut은 현재 선택된 컨트롤을 클립보드로 제거합니다. 이 메서드는 런타임에서 만들어진 컨트롤만 제거합니다.


DropDown 메서드

ComboBox의 목록 부분을 표시합니다.

구문

object.DropDown

DropDown 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

콤보 상자에서 목록을 열기 위해 DropDown 메서드를 사용합니다.


GetFormat 메서드

특정한 형식이 DataObject에 있는지를 나타내는 정수 값을 반환합니다.

구문

Boolean = object.GetFormat( [ format])

GetFormat 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
format | 선택 요소로서 DataObject에 존재할 수 있는 특정 형식을 지정하는 정수나 문자열입니다. 지정된 형식이 DataObject에 존재하면, GetFormat은 True를 반환합니다.

설정

format에 대한 설정은 다음과 같습니다.

값 | 설명
1 | 텍스트 형식
문자열이나 1이 아닌 모든 정수 | SetText에서 DataObject로 전달하는 사용자 정의 DataObject 형식

주의

GetFormat 메서드는 DataObject의 현재 형식 목록에서 형식을 찾습니다. 형식이 DataObject에 있는 경우, GetFormat은 True를 반환합니다. 형식이 없다면, GetFormat은 False를 반환합니다.

DataObject는 현재 텍스트 형식만 지원합니다.


GetFromClipboard 메서드

클립보드에서 DataObject로 데이터를 복사합니다.

구문

String = object.GetFromClipboard( [ format])

GetFromClipboard 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.

주의

DataObject는 여러 데이터 항목들을 포함할 수 있지만, 각 항목은 다른 형식이어야 합니다. 예를 들어, DataObject는 텍스트 항목 한 개와 사용자 정의 형식의 항목 한 개를 포함하지만 텍스트 항목 두 개를 포함할 수 없습니다.


GetText 메서드

특정 형식을 사용하여 DataObject로부터 문자열을 검색합니다.

구문

String = object.GetText( [ format])

GetText 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Format | 선택 요소로서 DataObject에서 검색하기 위하여 데이터 형식을 지정하는 문자열 또는 정수를 지정합니다.

설정

format에 대한 설정은 다음과 같습니다.

값 | 설명
1 | 텍스트 형식
문자열이나 1이 아닌 모든 정수 | SetText에서 DataObject로 전달하는 사용자 정의 DataObject 형식

주의

DataObject는 여러 형식을 지원하는데, 각 형식마다 데이터 항목 한 개만 지원합니다. 예를 들어, DataObject는 텍스트 항목 한 개와 사용자 정의 형식의 항목 한 개를 포함하지만 텍스트 항목 두 개를 포함할 수 없습니다.

어떤 형식도 지정하지 않은 경우, GetText 메서드는 DataObject로부터 텍스트 형식의 정보를 요청합니다.


Item 메서드

위치나 이름을 사용하여 컬렉션의 구성원을 반환합니다.

구문

Set Object = object.Item( collectionindex)

Item 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Collectionindex | 필수 요소로서 컬렉션 내에서 구성원의 위치나 인덱스를 지정합니다.

설정

collectionindex는 문자열이나 정수가 될 수 있습니다. 문자열인 경우, 그것은 유효한 구성원 이름입니다. 정수인 경우, 최소값은 0이고 최대값은 컬렉션의 항목 수보다 작은 값입니다.

주의

잘못된 인덱스와 이름이 지정되면 오류가 발생합니다.


Move 메서드

폼과 컨트롤을 이동하거나, Controls 컬렉션에 있는 모든 컨트롤을 이동합니다.

구문

폼 또는 컨트롤일 경우,
object.Move( [Left [, Top [, Width [, Height [, Layout]]]]])

컨트롤 컬렉션일 경우,
object.Move( X, Y)

Move 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Left | 선택 요소로서 개체의 왼쪽 가장자리의 가로 좌표를 포인트 단위로 나타내는 단정밀도 값입니다.
Top | 선택 요소로서 개체의 위쪽 가장자리의 세로 좌표를 포인트 단위로 나타내는 단정밀도 값입니다.
Width | 선택 요소로서 개체의 너비를 포인트 단위로 나타내는 단정밀도 값입니다.
Height | 선택 요소로서 개체의 높이를 포인트 단위로 나타내는 단정밀도 값입니다.
Layout | 선택 요소로서 Layout 이벤트가 이 이동에 따라 컨트롤의 상위 컨트롤을 초기화하는지의 여부를 나타내는 Boolean 값입니다. 기본값은 False입니다.
X, Y | 필수 요소로서 Controls 컬렉션에 있는 각 컨트롤의 현재 가로와 세로 위치로부터 변경을 포인트 단위로 지정하는 단정밀도 값입니다.

설정

Left, Top, Width, Height, X 그리고 Y 인수에 대한 최대값과 최소값은 응용 프로그램마다 다릅니다.

주의

폼이나 컨트롤에서, 선택을 포함하는 폼의 가장자리와 비교하여 지정된 위치로 선택을 이동합니다.

명명된 인수를 사용할 수 있습니다. 또는 위치를 사용해 인수를 입력할 수 있습니다. 명명된 인수를 사용하면, 어떤 순서로든 인수를 열거할 수 있습니다. 명명된 인수를 사용하지 않으면, 지정하지 않은 인수의 상대적인 위치를 지정하기 위해 쉼표를 사용하여 보이는 순서대로 인수를 입력해야 합니다. 지정되지 않은 인수는 변경되지 않은 상태로 남아 있습니다.

Controls 컬렉션으로, 폼에서 Frame 또는 Page의 현재 위치로부터 지정된 거리만큼 떨어져 있는 모든 컬렉션의 컨트롤을 이동할 수 있습니다.


Paste 메서드

클립보드의 내용을 개체에 전송합니다.

구문

object.Paste

Paste 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

ComboBox나 TextBox로 붙여넣어진 데이터는 텍스트로 처리합니다.

Paste 메서드가 폼과 함께 사용될 때, 폼에 개체를 붙여넣을 수 있습니다.


PutInClipboard 메서드

데이터를 DataObject에서 클립보드로 이동합니다.

구문

object.PutInClipboard

PutInClipboard 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

PutlnClipboard 메서드는 클립보드의 내용이 텍스트 형식의 DataObject 내용으로 바뀝니다.


RedoAction 메서드

가장 최근의 실행 취소 동작의 효과를 반대 방향으로 재생합니다.

구문

Boolean = object.RedoAction

RedoAction 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

다시 실행은 마지막 동작을 반드시 취할 필요 없는 마지막 실행 취소를 반대 방향으로 재생합니다. 모든 동작을 실행 취소할 수는 없습니다.

예를 들어, 텍스트를 TextBox에 붙여넣고 실행 취소 명령을 선택하여 텍스트를 제거하고, 텍스트를 다시 되돌리기 위해 다시 실행 명령을 선택할 수 있습니다.

참고 CanRedo 속성이 False인 경우, 다시 실행 명령은 사용자 인터페이스에서 사용할 수 없고, RedoAction 메서드는 코드에서 유효하지 않습니다.

성공적이면 RedoAction은 True를 반환합니다.


Remove 메서드

컬렉션에서 구성원을 제거합니다. 또는 폼, Frame, Page에서 컨트롤을 제거합니다.

구문

object.Remove( collectionindex)

Remove 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
collectionindex | 필수 요소로서 컬렉션 내의 구성원 위치나 인덱스를 지정합니다. 문자열 값은 물론 숫자까지 받아들입니다. 값이 숫자인 경우 최소값은 0이고, 최대값은 컬렉션의 구성원 수보다 1 작은 값입니다. 값이 문자열인 경우 유효한 구성원 이름에 대응해야 합니다.

주의

이 메서드는 런타임에서 추가된 컨트롤을 삭제합니다. 하지만 디자인 모드에서 추가된 컨트롤을 삭제하려고 하면 오류가 발생합니다.


RemoveItem 메서드

목록 상자나 콤보 상자의 목록에서 행을 제거합니다.

구문

Boolean = object.RemoveItem index

RemoveItem 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Index | 필수 요소로서 삭제할 행을 지정합니다. 첫째 행의 수는 0이고, 둘째 행의 수는 1 등 순서대로 값이 지정됩니다.

이 메서드는 ListBox가 데이터 바운드인 경우(즉, RowSource 속성이 ListBox의 데이터 원본을 지정할 때), 목록에서 행을 제거하지 않습니다.


Repaint 메서드

폼이나 페이지를 다시 그려서 화면을 업데이트합니다.

구문

Boolean = object.Repaint

Repaint 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

Repaint 메서드는 개체의 내용과 모양이 명백하게 변경되는 경우에는 유용합니다. 그리고 시스템이 자동으로 영역을 다시 표시하기 전까지 기다릴 필요가 없습니다.


Scroll 메서드

개체에서 스크롤 막대를 이동합니다.

구문

object.Scroll( [ ActionX [, ActionY]])

Scroll 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
ActionX | 선택 요소로서 수평 방향으로 발생할 동작을 구분합니다.
ActionY | 선택 요소로서 수직 방향으로 발생할 동작을 구분합니다

설정

ActionX와 ActionY에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmScrollActionNoChange | 0 | 지정된 방향으로 스크롤하지 않습니다.
fmScrollActionLineUp | 1 | 세로 스크롤 막대에서 위로 올라가거나, 가로 스크롤 막대에서 왼쪽으로 이동합니다. 이동은 스크롤 막대를 이동하기 위해 키보드에서 위쪽이나 왼쪽 화살표 키를 누르는 것과 같습니다.
fmScrollActionLineDown | 2 | 세로 스크롤 막대에서 아래로 내려가거나, 가로 스크롤 막대에서 오른쪽으로 이동합니다. 이동은 스크롤 막대를 이동하기 위해 키보드에서 아래쪽이나 오른쪽 화살표 키를 누르는 것과 같습니다.
fmScrollActionPageUp | 3 | 세로 스크롤 막대에서 한 페이지 위로 올라가고, 가로 스크롤 막대에서 한 페이지 왼쪽으로 이동합니다. 이동은 스크롤 막대를 이동하기 위해 키보드에서 Page Up 키를 누르는 것과 같습니다.
fmScrollActionPageDown | 4 | 세로 스크롤 막대에서 한 페이지 아래로 내려가고, 가로 스크롤 막대에서 한 페이지 오른쪽으로 이동합니다. 이동은 스크롤 막대를 이동하기 위해 키보드에서 Page Down 키를 누르는 것과 같습니다.
fmScrollActionBegin | 5 | 세로 스크롤 막대의 맨 위나 가로 스크롤 막대의 왼쪽 끝으로 이동합니다.
fmScrollActionEnd | 6 | 세로 스크롤 막대의 맨 아래나 가로 스크롤 막대의 오른쪽 끝으로 이동합니다.

주의

Scroll 메서드는 표시 영역보다 큰 폼, Frame 또는 Page에 나타난 스크롤 막대에 적용합니다. 이 메서드는 독립형 ScrollBar나 TextBox에 나타난 스크롤 막대에는 적용할 수 없습니다.


SetDefaultTabOrder 메서드

위쪽에서 아래쪽으로, 왼쪽에서 오른쪽으로의 기본 탭 순서를 사용하여 폼에 있는 각 컨트롤의 TabIndex 속성을 설정합니다.

구문

object.SetDefaultTabOrder

SetDefaultTabOrder 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

Microsoft Forms는 폼의 왼쪽 위 모서리의 컨트롤에서 시작하여 오른쪽으로 이동하는 탭 순서를 설정합니다. 탭 순서의 처음에 컨트롤을 폼의 왼쪽 가장자리에 가깝게 둡니다. 한 개 이상의 컨트롤이 폼의 왼쪽 가장자리에서부터 같은 거리에 있다면, 탭 순서의 값을 위에서 아래로 지정합니다.


SetFocus 메서드

포커스를 개체의 인스턴스로 이동합니다.

구문

object.SetFocus

SetFocus 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

포커스 설정이 실패하면 포커스는 이전 개체로 되돌아가고 오류가 발생합니다.

기본적으로 컨트롤에 포커스를 설정하는 것은 컨트롤 창을 활성화시키지 않거나, 그 창을 다른 컨트롤의 위에 둡니다.

SetFocus 메서드는 다른 컨트롤을 포함하는 Frame뿐만 아니라 빈 Frame에도 유효합니다. 빈 Frame은 자신의 포커스를 가지고, 다음 키보드 이벤트는 Frame에 적용됩니다. 다른 컨트롤을 가지고 있는 Frame에서, 포커스는 Frame의 첫째 컨트롤로 이동하고, 다음 키보드 이벤트는 포커스를 가지고 있는 컨트롤에 적용됩니다.


SetText 메서드

지정된 형식을 사용하여 문자열을 DataObject로 복사합니다.

구문

object.SetText( StoreData [, format])

SetText 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
StoreData | 필수 요소로서 DataObject에 저장하기 위하여 데이터를 정의합니다.
Format | 선택 요소로서 StoreData 형식을 지정하는 정수나 문자열입니다. DataObject에서 데이터를 검색할 때, 이 형식은 되살릴 데이터를 나타냅니다.

설정

format에 대한 설정은 다음과 같습니다.

값 | 설명
1 | 텍스트 형식
문자열이나 1이 아닌 정수 | 사용자 정의 DataObject 형식

주의

DataObject는 형식에 따라 데이터를 저장합니다. 사용자가 문자열을 제공할 때, DataObject는 지정된 형식 아래에서 텍스트를 저장합니다.

DataObject가 같은 형식의 데이터를 새 데이터로 갖는 경우, 새 데이터는 DataObject 안에서 기존의 데이터를 대신합니다. 새 데이터가 새 형식에 있으면, 새 데이터와 새 형식은 모두 DataObject에 추가되고, 기존 데이터도 함께 존재합니다.

아무런 형식도 지정되지 않은 경우, SetText 메서드는 텍스트 형식을 문자열에 할당합니다. 새로운 형식이 지정된 경우, DataObject는 시스템에 새 형식을 등록합니다.


StartDrag 메서드

DataObject에 대해서 끌어서 놓기 작업을 초기화합니다.

구문

fmDropEffect=Object.StartDrag([Effect as fmDropEffect])

StartDrag 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
Object | 필수 요소로서 유효한 개체입니다.
Effect | 선택 요소로서 대상 컨트롤에 대한 놓기 작업의 효과를 지정합니다.

설정

Effect에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmDropEffectNone | 0 | 끌어서 놓을 원본을 끌어서 놓을 대상으로 복사하거나 이동하지 않습니다.
FmDropEffectCopy | 1 | 끌어서 놓을 원본을 끌어서 놓을 대상으로 복사합니다.
FmDropEffectMove | 2 | 끌어서 놓을 원본을 끌어서 놓을 대상으로 이동합니다.
FmDropEffectCopyOrMove | 3 | 끌어서 놓을 원본을 끌어서 놓을 대상으로 복사하거나 이동합니다.

주의

끌기 동작은 현재 마우스 포인터 위치에서 현재 키보드 상태로 시작해 사용자가 마우스를 놓을 때 끝납니다. 끌어서 놓기 작업의 효과는 끌어서 놓을 대상의 선택 효과에 따라 다릅니다.

예를 들어, 컨트롤의 MouseMove 이벤트는 StartDrag 메서드를 포함할 수 있습니다. 사용자가 컨트롤을 클릭하고 마우스를 움직이면 마우스 포인터는 Effect가 끌어서 놓을 대상에 대해 유효한지를 나타내기 위해 변경됩니다.


UndoAction 메서드

실행 취소 명령을 지원하는 가장 최근의 동작을 반대 방향으로 재생합니다.

구문

Boolean = object.UndoAction

UndoAction 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

사용자 인터페이스의 실행 취소 명령은 UndoAction 메서드를 사용합니다. 예를 들어, 텍스트를 TextBox에 붙여넣은 경우, 텍스트를 삭제하고 TextBox의 이전 구문을 복구하기 위해 UndoAction을 사용할 수 있습니다.

모든 사용자 동작이 취소될 수는 없습니다. 동작이 취소될 수 없으면, 실행 취소 명령은 다음 동작을 사용할 수 없습니다.

참고 CanUndo 속성이 False이면, 실행 취소 명령은 사용자 인터페이스에서 사용할 수 없고 UndoAction은 코드에서 유효하지 않습니다.

UndoAction이 폼에 적용되는 경우, 현재 레코드에 대한 모든 변경 사항은 없어집니다. UndoAction이 컨트롤에 적용되는 경우, 컨트롤 자체만 영향을 받게 됩니다.

폼이나 컨트롤이 업데이트되기 전에 이 메서드를 적용해야 합니다. 필요한 경우, 폼의 BeforeUpdate 이벤트나 컨트롤의 Change 이벤트에 이 메서드를 넣어야 합니다.

이벤트 프로시저에 Esc 값을 보내기 위해 SendKeys 문을 사용하는 대신 UndoAction을 사용해도 됩니다.


ZOrder 메서드

화면 상의 순서(z 순서)로 볼 때 앞뒤로 개체를 위치시킵니다.

구문

object.ZOrder( [ zPosition])

ZOrder 메서드 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
zPosition | 선택 요소로서 컨테이너의 화면 상 순서에서 컨트롤의 전후 위치를 지정합니다.

설정

zPosition에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmTop | 0 | 화면 상의 순서로 볼 때 앞으로 컨트롤을 위치시킵니다. 그 컨트롤은 다른 컨트롤 위에 나타납니다(기본 설정).
FmBottom | 1 | 화면 상의 순서로 볼 때 뒤로 컨트롤을 위치시킵니다. 그 컨트롤은 다른 컨트롤 아래에 나타납니다.

주의

화면 상의 순서는 창과 컨트롤이 사용자에게 제공될 때 쌓이는 방법을 결정합니다. 화면 상의 순서에서 뒤의 항목은 더 가까운 항목으로 겹쳐집니다. 화면 상의 순서에서 앞의 항목은 뒤 항목의 최상위에 나타납니다. zPosition 인수를 생략할 때, 개체를 앞으로 가져갑니다.

디자인 모드에서 맨 앞으로 가져오기나 맨 뒤로 보내기 명령은 화면 상의 순서를 설정합니다. 맨 앞으로 가져오기는 ZOrder 메서드를 사용하는 것과 화면 상의 순서로 볼 때 앞으로 개체를 위치시키는 것이 동일합니다. 맨 뒤로 보내기는 ZOrder 메서드를 사용하는 것과 화면 상의 순서로 볼 때 뒤로 개체를 위치시키는 것이 동일합니다.

이 메서드는 Controls 컬렉션의 내용이나 컨트롤 시퀀스에 영향을 미치지 않습니다.

참고 맨 뒤로 보내기 또는 맨 앞으로 가져오기와 같은 중복 명령을 실행 취소나 다시 실행할 수 없습니다. 예를 들어, 한 개체를 선택하고 바로 가기 메뉴의 뒤로 이동을 클릭하면, 그 동작을 실행 취소하거나 재실행할 수 없습니다.


CheckBox 컨트롤

항목의 선택 상태를 표시합니다.

주의

사용자가 Yes/No, True/False 또는 On/Off와 같은 두 가지 값 사이에서 선택을 하려면 CheckBox를 사용합니다. 사용자가 CheckBox를 선택하면, X와 같은 특별한 표시가 나타나고 현재 설정 상태가 Yes, True 또는 On이 됩니다. CheckBox를 선택하지 않으면, 비어 있게 되고 설정은 No, False 또는 Off가 됩니다. TripleState 속성 값에 따라 CheckBox는 또한 null 값을 가지게 됩니다.

CheckBox가 데이터 원본에 바운드되면 설정을 변경하여 원본의 값을 변경합니다. 사용할 수 없는 CheckBox는 현재 값을 보여 주지만 흐리게 표시되고 사용자 인터페이스에서 값을 변경할 수 없습니다.

또한 그룹 상자 내의 확인란을 사용하여 여러 관련 항목의 그룹을 선택할 수 있습니다. 예를 들어, 각 항목에 우선하는 CheckBox를 이용하여, 사용 가능한 항목의 목록이 들어 있는 주문서를 만들 수 있습니다. 사용자는 해당 CheckBox를 선택함으로써 특정 항목이나 항목들을 선택할 수 있습니다.

CheckBox의 기본 속성은 Value 속성입니다.

CheckBox의 기본 이벤트는 Click 이벤트입니다.

참고 ListBox에도 선택한 옵션으로 확인 표시를 할 수 있습니다. 응용 프로그램에 따라 CheckBox 컨트롤 그룹을 사용하는 대신 ListBox를 사용할 수 있습니다.


ComboBox 컨트롤

ListBox와 TextBox의 기능을 결합시킵니다. 사용자는 TextBox에 새 값을 입력할 수 있거나 ListBox에서 기존의 값을 선택할 수 있습니다.

주의

ComboBox가 데이터 원본에 바운드되면 ComboBox는 사용자가 입력하거나 선택한 값을 데이터 원본에 삽입합니다. 여러 열 콤보 상자가 바운드되면 BoundColumn 속성은 바운드 데이터 원본에 저장될 값을 결정합니다.

ComboBox 내의 목록은 데이터 행으로 구성됩니다. 각 행은 열을 하나 또는 그 이상을 가질 수 있으며, 머리글이 있거나 머리글 없이 나타날 수 있습니다. 일부 응용 프로그램은 열 머리글을 지원하지 않으며, 다른 응용 프로그램에서는 제한적으로만 제공합니다.

ComboBox의 기본 속성은 Value 속성입니다.

ComboBox의 기본 이벤트는 Change 이벤트입니다.

참고 항상 표시할 목록을 한 줄 이상으로 하려면 ComboBox 대신 ListBox를 사용하십시오. ComboBox를 사용하고 목록들의 값을 제한하려면 컨트롤이 드롭다운 목록 상자처럼 보이도록 ComboBox의 Style 속성을 설정할 수 있습니다.


CommandButton 컨트롤

한 동작이나 연속 동작을 시작하고, 끝내거나 중지합니다.

주의

매크로나 이벤트 프로시저는 CommandButton's Click 이벤트를 지정하여 CommandButton을 수행할 것인지 결정합니다. 예를 들어, 다른 폼을 여는 CommandButton을 만들 수 있습니다. 또한 CommandButton에 텍스트, 그림 또는 모두를 나타낼 수 있습니다.

CommandButton의 기본 속성은 Value 속성입니다.

CommandButton의 기본 이벤트는 Click 이벤트입니다.


Controls 컬렉션

개체에 포함된 모든 컨트롤을 포함합니다.

Controls 컬렉션(Control 개체)

주의

개체의 Controls 컬렉션 내의 각 컨트롤은 그 값이 정수 또는 문자열로 고유 인덱스를 가집니다. 컬렉션 내에 첫 번째 컨트롤에 대한 인덱스 값은 0, 두 번째 컨트롤에 대한 인덱스 값은 1, 이런 순서를 가집니다. 이 값은 컬렉션이 추가되는 컨트롤의 순서를 지정합니다.

인덱스가 문자열이면 컨트롤의 이름을 나타냅니다. 컨트롤의 Name 속성 또한 컨트롤의 이름을 지정합니다.

개별적인 컨트롤의 순서를 나열하거나 계산을 하고 그 속성을 설정하려면 Controls 컬렉션을 사용할 수 있습니다. 예를 들어, 특정 폼의 Controls 컬렉션의 순서를 나열하고 지정된 값으로 각 컨트롤의 Height 속성을 설정합니다.

참고 For Each...Next 문은 컬렉션의 순서를 나열하는데 유용합니다.


DataObject 개체

전송 작업에서 서식 있는 텍스트 데이터를 위한 저장 영역으로 사용됩니다. 또한 DataObject에 대한 저장된 텍스트에 대한 형식 목록을 저장합니다.

주의

DataObject는 클립보드 텍스트 형식에 대한 텍스트의 한 부분과 사용자 정의, 사용자 정의 서식과 같이 추가된 각 텍스트 형식에 대한 텍스트의 한 부분을 포함할 수 있습니다.

DataObject는 클립보드와 구별됩니다. DataObject는 클립보드와 텍스트의 끌어서 놓기 동작을 포함하는 명령을 지원합니다. GetText와 같이 클립보드를 포함하는 작업이나 끌어서 놓기 작업을 시작할 때, 그 동작에 포함된 데이터는 DataObject로 이동합니다.

DataObject는 클립보드처럼 동작합니다. DataObject 에 텍스트 문자열을 복사하면 DataObject는 텍스트 문자열을 저장합니다. DataObject에 같은 형식의 두 번째 문자열을 복사하면 DataObject는 첫 번째 텍스트 문자열을 버리고 두 번째 문자열의 복사본을 저장합니다. 지정된 형식의 텍스트 한 부분을 저장하면 가장 최근의 작업에 대한 텍스트를 보존합니다.


Frame 컨트롤

기능적이고 시각적인 컨트롤 그룹을 만듭니다.

주의

Frame 내에 있는 옵션 단추들은 상호 배타적이므로 Frame을 사용하여 옵션 그룹을 만들 수 있습니다. 또한 컨트롤과 밀접하게 관련된 내용을 분류하기 위하여 Frame을 사용할 수 있습니다. 예를 들어, 고객의 주문을 처리하는 응용 프로그램에서 고객의 이름, 주소, 계좌 번호를 분류하기 위하여 Frame을 사용할 수 있습니다.

또한 토글 단추의 그룹을 만들 때도 Frame을 사용할 수 있습니다. 하지만, 이 때 토글 단추는 상호 배타적이지 않습니다.

Frame의 기본 이벤트는 Click 이벤트입니다.


Font 개체

컨트롤 또는 폼에서 사용되는 텍스트의 특성을 정의합니다.

주의

각 컨트롤이나 폼은 다른 컨트롤과 폼에 대해 정의된 특성과는 독립적으로 텍스트 특성을 설정할 수 있도록 자신의 Font 개체를 가집니다. 글꼴 이름을 지정하거나, 굵게 또는 밑줄 친 텍스트를 설정하거나, 텍스트의 크기를 조절하기 위하여 글꼴 속성을 사용합니다.

참고 폼이나 컨테이너의 글꼴 속성은 폼에 가져온 컨트롤의 기본 글꼴 속성을 결정합니다.

Font 개체의 기본 속성은 Name 속성입니다. Name 속성에 null 문자열이 포함되면 Font 개체는 시스템 글꼴을 사용합니다.


Image 컨트롤

폼에 그림을 표시합니다.

주의

Image는 그림을 폼에서 데이터의 일부로 표시할 수 있도록 해 줍니다. 예를 들어, 개인 신상 폼에서 직원들의 사진을 표시하려면 Image를 사용할 수 있습니다.

Image로 그림을 잘라내거나, 크기 조절, 확대/축소할 수는 있지만 그림의 내용을 편집할 수 없습니다. 예를 들어, 그림에서 색을 변경하거나 투명하게 만들거나 또는 그림의 이미지를 다듬는 데 Image를 사용할 수 없습니다. 이와 같은 목적은 이미지 편집 소프트웨어를 사용해야 합니다.

Image는 다음 파일 형식을 지원합니다.

  • *.bmp

  • *.cur

  • *.gif

  • *.ico

  • *.jpg

  • *.wmf

참고 Label에 그림을 표시할 수 있습니다. 하지만 Label로 그림을 잘라내기, 크기 조절, 확대/축소할 수는 없습니다.

Image의 이벤트는 Click 이벤트입니다.


Label 컨트롤

설명문을 표시합니다.

주의

폼에서 Label 컨트롤은 제목, 캡션, 그림 또는 간단한 설명과 같은 설명문을 표시합니다. 예를 들어, 주소록을 위한 레이블은 이름, 거리, 도시에 대한 Label을 포함할 있습니다. Label은 데이터 원본 또는 표현식에서 값을 표시하지 않습니다. 항상 언바운드이고 레코드에서 레코드로 이동한 대로 변경되지 않습니다.

Label의 기본 속성은 Caption 속성입니다.

Label의 기본 이벤트는 Click 이벤트입니다.


ListBox 컨트롤

값의 목록을 표시하고 하나 또는 그 이상을 선택하도록 합니다.

주의

ListBox가 데이터 원본에 바운드되면 ListBox는 데이터의 원본에서 선택된 값을 저장합니다.

ListBox는 목록으로 나타나거나 OptionButton 컨트롤 또는 CheckBox 컨트롤의 그룹으로 나타날 수 있습니다.

ListBox의 기본 속성은 Value 속성입니다.

ListBox의 기본 이벤트는 Click 이벤트입니다.

참고 텍스트는 드롭다운 ListBox에 놓을 수 없습니다.


MultiPage 컨트롤

한 설정으로 정보에 대한 여러 화면을 나타냅니다.

주의

MultiPage는 여러 분류 목록에서 정렬할 수 있는 많은 양의 정보를 작업할 때 유용합니다. 예를 들어, 인사 관리 응용 프로그램에서 정보를 표시하기 위하여 MultiPage를 사용합니다. 페이지 하나에 이름, 주소와 같은 개인적인 정보를 보관할 수 있고 다른 페이지에는 이전 직원들을 목록화할 수 있습니다. 세 번째 페이지는 참조 사항을 목록화할 수 있습니다. 즉시 액세스할 수 있도록 준비된 전체 레코드를 보관하는 동안 MultiPage로 관련된 정보를 시각적으로 결합시킬 수 있습니다.

새 페이지는 인접한 페이지보다 현재 선택된 페이지의 오른쪽에 추가됩니다.

참고 MultiPage는 Pages 개체를 하나 또는 그 이상을 포함한 각 Pages 컬렉션의 컨테이너입니다.

MultiPage 의 기본 속성은 Value 속성입니다. MultiPage의 Page 컬렉션에 현재 활성화된 Pages 인덱스를 반환합니다.

MultiPage의 기본 속성은 Change 이벤트입니다.


OptionButton 컨트롤

그룹 선택에서 항목 하나의 선택 상태를 보여 줍니다.

주의

그룹에서 한 항목이 선택되었는지 보려면 OptionButton을 사용합니다. Frame 내의 각 OptionButton은 상호 배타적임을 유의하십시오.

OptionButton이 데이터 원본에 바운드되면 OptionButton은 Yes/No, True/False 또는 On/Off로 그 데이터 원본의 값을 보여줄 수 있습니다. 사용자가 OptionButton을 선택하면 설정 상태가 Yes, True 또는 On으로 됩니다. 사용자가 OptionButton을 선택하지 않으면 설정 상태가 No, False 또는 Off로 됩니다. 예를 들어, 재고품 조사 응용 프로그램에서 OptionButton은 항목이 연속적이지 않은지를 보여줄 수 있습니다. 만약 OptionButton이 데이터 원본에 바운드되면 설정을 변경하여 그 데이터 원본의 값을 변경합니다. 사용할 수 없는 OptionButton은 흐리게 표시되고 값을 보여주지 않습니다.

TripleState 속성 값에 따라 OptionButton은 null 값을 가질 수 있습니다.

또한 관련된 항목 그룹을 하나 또는 그 이상을 선택하려면 그룹 상자 내에서 OptionButton을 사용할 수 있습니다. 예를 들어, 각 항목에 우선하는 OptionButton으로 사용 가능한 항목에 대한 목록을 포함하는 주문서를 만들 수 있습니다. 사용자는 해당 OptionButton을 검사하여 특정 항목을 선택할 수 있습니다.

OptionButton의 기본 속성은 Value 속성입니다.

OptionButton의 기본 이벤트는 Click 이벤트입니다.


Page 개체

MultiPage의 한 페이지이고 Pages 컬렉션의 한 구성원입니다.

주의

각 Page 개체는 자체의 컨트롤 설정을 포함하며 정보의 컬렉션에 있는 다른 페이지에 반드시 의존하지는 않습니다. Page는 컨테이너에서 일부 속성을 상속받고 각 상속된 속성 값은 컨테이너에 의해 설정됩니다.

Page는 Pages 컬렉션 내에 고유 이름과 인덱스 값을 가집니다. 이름이나 인덱스 값으로 Page를 참조할 수 있습니다. 컬렉션 내에서 첫 번째 Page의 인덱스는 0, 두 번째 Page의 인덱스는 1의 순서입니다. 두 Page 개체가 같은 이름을 가지게 되면 그 이름의 인덱스 값으로 각 Page를 참조해야 합니다. 코드 내의 이름을 참조하게 되면 이름을 사용하는 첫 번째 Page에만 액세스하게 됩니다.

첫 번째 Page의 기본 이름은 Page1이고 두 번째 Page의 기본 이름은 Page2입니다.


Pages 컬렉션

Pages 컬렉션은 MultiPage의 모든 페이지를 포함합니다.

주의

각 Pages 컬렉션은 컬렉션 내의 페이지 수를 관리하고 현재 사용 중인 페이지를 식별해 주는 기능을 제공합니다.

각 Page 개체는 Pages 컬렉션 내에 고유 이름과 인덱스 값을 가집니다. 이름이나 인덱스 값으로 Pages를 참조할 수 있습니다. 컬렉션 내에 첫 번째 Pages에 대한 인덱스는 0이고, 두 번째 Pages에 대한 인덱스는 1, 이런 순서입니다. 첫 번째 페이지의 기본 이름은 Page1이고, 두 번째 페이지의 기본 이름은 Page2 입니다.

Pages 컬렉션의 기본값은 컬렉션의 현재 Pages를 식별합니다.


ScrollBar 컨트롤

스크롤 상자의 위치를 기본으로 다른 컨트롤 값을 반환하거나 설정합니다.

주의

ScrollBar는 폼에 위치할 수 있는 독립형 컨트롤입니다. 시각적으로 ListBox 또는 ComboBox의 드롭다운 부분과 같은 개체에서 볼 수 있는 스크롤 막대와 유사합니다. 하지만 이 예제에서 스크롤 막대와는 다르게 독립형 ScrollBar는 다른 컨트롤의 완전한 구성 요소가 아닙니다.

다른 컨트롤 값을 설정하거나 읽기 위해 ScrollBar를 사용하려면 ScrollBar's 이벤트와 메서드에 대한 코드를 작성해야 합니다. 예를 들어, TextBox 값을 업데이트하기 위해 ScrollBar를 사용하면 ScrollBar의 Value 속성을 읽는 코드를 작성할 수 있으며 TextBox의 Value 속성을 설정합니다.

ScrollBar의 기본 속성은 Value 속성입니다.

ScrollBar의 기본 이벤트는 Change 이벤트입니다.

참고 수평 또는 수직 ScrollBar를 만들려면 폼에서 수평이나 수직으로 ScrollBar의 크기 조절 핸들을 끌어옵니다.


SpinButton 컨트롤

수를 증가시키고 감소시킵니다.

주의

SpinButton을 클릭하여 SpinButton 값만 변경합니다. 다른 컨트롤의 표시된 값을 업데이트하려면 SpinButton을 사용하는 코드를 작성합니다. 예를 들어, 날짜에 월, 일, 또는 연도를 변경하려면 SpinButton을 사용할 수 있습니다. 또한 값의 범위나 항목의 목록에 따라 스크롤하거나, 텍스트 상자에 표시된 값을 변경하려면 SpinButton을 사용할 수 있습니다.

SpinButton으로 업데이트한 값을 표시하려면 Label의 Caption 속성이나 TextBox의 Text 속성과 같은 컨트롤의 일부를 표시할 SpinButton 값을 지정해야 합니다. 수평 또는 수직 SpinButton을 만들려면, 폼에서 수평이나 수직으로 SpinButton의 크기 조절 핸들을 끌어옵니다.

SpinButton의 기본 속성은 Value 속성입니다.

SpinButton의 기본 이벤트는 Change 이벤트입니다.


Tab 개체

Tab은 Tabs 컬렉션의 개별적인 구성원입니다.

주의

시각적으로 Tab 개체는 더 큰 사각형 영역에서 튀어나온 사각형으로 또는 사각형 영역에 인접한 단추로 나타납니다.

Page와는 대조적으로 Tab은 어떤 컨트롤도 포함하지 않습니다. TabStrip으로 바운드된 영역 내에 나타나는 컨트롤은 TabStrip으로서 폼에 포함됩니다.

각 Tab은 자신의 속성 설정을 가지지만 메서드나 이벤트는 없습니다. 개별적인 Tab의 처리를 초기화하려면 적절한 TabStrip에서 이벤트를 사용해야 합니다.

각 Tab은 컬렉션 내에 고유 이름과 인덱스 값을 가집니다. 이름이나 인덱스 값으로 Tab을 참조할 수 있습니다. 첫 번째 Tab의 인덱스는 0, 두 번째 Tab의 인덱스는 1, 이런 순서입니다. 두 개의 Tab 개체가 같은 이름을 가지면 그 이름의 인덱스 값으로 각 Tab을 참조해야 합니다. 코드의 이름을 참조하게 되면 이름을 사용하는 첫 번째 Tab에만 액세스하게 됩니다.


Tabs 컬렉션

Tabs 컬렉션은 TabStrip의 모든 Tabs를 포함합니다.

주의

각 Tabs 컬렉션은 컬렉션의 탭 수를 관리하고 현재 사용 중인 탭을 식별하는 기능을 제공합니다.

Tabs 컬렉션의 기본값은 현재 컬렉션의 Tab을 식별합니다.

Tab 개체는 Tabs 컬렉션 내에 고유 이름과 인덱스 값을 가집니다. 이름이나 인덱스 값으로 Tab을 참조할 수 있습니다. 인덱스 값은 컬렉션 내에 Tab의 서수 위치를 반영합니다. 컬렉션 내에 첫 번째 Tab의 인덱스는 0, 두 번째 Tab의 인덱스는 1의 순서입니다.


TabStrip 컨트롤

관련된 컨트롤 설정을 시각적 그룹으로 나타냅니다.

주의

관련된 컨트롤에 대한 정보의 다른 설정을 보려면 TabStrip을 사용합니다.

예를 들어, 컨트롤은 그룹 내의 다른 개인에 대응하는 각 정보들을 설정하여 개인들의 그룹에 대한 매일 스케줄 정보를 나타낼 수 있습니다. 각 개인의 이름을 보려면 각 탭에 대한 제목을 설정하십시오. 그 다음 탭을 클릭하였을 때 탭에서 식별된 사람에 대한 정보를 보여주는 컨트롤을 업데이트하는 코드를 작성할 수 있습니다.

참고 TabStrip은 차례로 Tabs 개체 그룹을 포함하는 Tabs 컬렉션의 컨테이너로 수행됩니다.

TabStrip의 기본 속성은 SelectedItem 속성입니다.

TabStrip의 기본 이벤트는 Change 이벤트입니다.


TextBox 컨트롤

사용자 또는 조직화된 데이터 설정에서 정보를 표시합니다.

주의

TextBox는 사용자가 입력한 정보를 표시하기 위하여 가장 일반적으로 사용되는 컨트롤입니다. 또한 테이블, 쿼리, 워크시트 또는 계산 결과와 같은 데이터의 설정을 표시할 수 있습니다. TextBox가 데이터 원본에 바운드되면 TextBox의 내용을 변경하여 바운드 데이터 원본 값도 변경됩니다.

TextBox에서 텍스트 하나에 적용된 서식은 컨트롤의 모든 텍스트에 영향을 미치게 됩니다. 예를 들어, 컨트롤의 글꼴이나 한 문자의 크기를 변경하면 컨트롤의 모든 문자가 변경된 내용의 영향을 받게 됩니다.

TextBox의 기본 속성은 Value 속성입니다.

TextBox의 기본 이벤트는 Change 이벤트입니다.


ToggleButton 컨트롤

항목의 선택 상태를 보여 줍니다.

주의

항목이 선택되었는지 보려면 ToggleButton을 사용합니다. ToggleButton이 데이터 원본에 바운드되면 ToggleButton은 Yes/No, True/False, On/Off 또는 일부 두 가지 설정에 대한 선택으로 그 데이터 원본의 현재 값을 보여 줍니다. 사용자가 ToggleButton을 선택하면 현재 설정은 Yes, True 또는 On으로 됩니다. 사용자가 ToggleButton을 선택하지 않으면 설정은 No, False 또는 Off로 됩니다. ToggleButton이 데이터 원본에 바운드되면 설정을 변경하여 그 데이터 원본의 값을 변경합니다. 사용할 수 없는 ToggleButton은 값을 보여 주지만 흐리게 표시되고 사용자 인터페이스에서 값을 변경할 수 없습니다.

관련된 항목 그룹을 하나 또는 그 이상 선택하려면 Frame 내에서 ToggleButton을 사용할 수 있습니다. 예를 들어, 각 항목 앞의 ToggleButton으로 사용 가능한 항목의 목록을 포함하는 주문서를 만들 수 있습니다. 사용자는 적절한 ToggleButton을 선택하여 특정 항목을 선택할 수 있습니다.

ToggleButton의 기본 속성은 Value 속성입니다.

ToggleButton의 기본 이벤트는 Click 이벤트입니다.


UserForm 창


Accelerator 속성

컨트롤에 대한 바로 가기 키를 설정하거나 검색합니다.

구문

object.Accelerator [= String]

Accelerator 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 바로 가기 키로 사용할 문자입니다.

주의

바로 가기 키를 지정하려면, Accelerator 속성에 한 문자를 입력합니다. 컨트롤의 속성 시트나 코드에서 Accelerator를 설정할 수 있습니다. 이 속성 값에 두 개 이상의 문자가 있으면, 그 문자열의 첫 문자가 Accelerator의 값이 됩니다.

바로 가기 키를 사용할 때, 그 컨트롤이 Click 이벤트를 초기화시켰다는 것을 나타내는 시각적인 피드백(포커스 이외의)은 없습니다. 예를 들어, 바로 가기 키가 CommandButton에 적용되는 경우, 사용자는 인터페이스에서 눌러진 단추를 볼 수 없습니다. 하지만, 사용자가 바로 가기 키를 누를 때 그 단추는 포커스를 받습니다.

바로 가기 키가 Label에 적용된다면, Label보다 오히려 탭 순서에서 Label 다음에 있는 컨트롤이 포커스를 받습니다.


ActiveControl 속성

포커스가 있는 컨트롤의 조작을 식별하고 허용합니다.

구문

object.ActiveControl

ActiveControl 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

ActiveControl 속성은 읽기 전용이고 인터페이스에서 컨트롤을 선택할 때 설정됩니다. 속성을 설정하거나 메서드를 호출할 때 컨트롤 이름 대신 ActiveControl을 사용할 수 있습니다.


Alignment 속성

캡션에 비례하여 컨트롤 위치를 지정합니다.

구문

object.Alignment [= fmAlignment]

Alignment 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
FmAlignment | 선택 요소로서 캡션 위치를 지정합니다.

설정

fmAlignment에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmAlignmentLeft | 0 | 캡션을 컨트롤의 왼쪽에 둡니다.
FmAlignmentRight | 1 | 캡션을 컨트롤의 오른쪽에 둡니다(기본값).

주의

컨트롤의 캡션 텍스트는 왼쪽 정렬입니다.

참고 ToggleButton에 Alignment 속성이 존재할 수 있으나 사용할 수 없습니다. ToggleButton의 속성 값을 설정하거나 반환할 수 없습니다.


AutoSize 속성

전체 내용이 표시되도록 자동으로 개체 크기를 조정할 것인지의 여부를 지정합니다.

구문

object.AutoSize [= Boolean]

AutoSize 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 컨트롤 크기를 조정할 것인지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 전체 내용이 표시되도록 자동으로 컨트롤의 크기를 조정합니다.
False | 컨트롤 크기를 상수로 유지합니다. 내용이 컨트롤의 영역을 초과하면 잘립니다(기본값).

주의

캡션이 있는 컨트롤에서, AutoSize 속성은 캡션 전체가 나타나도록 그 컨트롤을 자동으로 조정할 것인지의 여부를 지정합니다.

캡션이 없는 컨트롤에서, 이 속성은 컨트롤에 저장된 정보가 나타나도록 그 컨트롤을 자동으로 조정할 것인지의 여부를 지정합니다. 예를 들어, ComboBox에서 AutoSize를 True로 설정하면 표시 영역의 너비가 현재 텍스트의 길이에 맞도록 자동으로 설정됩니다.

한 줄 텍스트 상자에 대해서, AutoSize를 True로 설정하면 텍스트 상자의 텍스트의 길이에 대한 표시 영역의 너비가 설정됩니다.

아무런 텍스트도 포함하지 않은 여러 줄 텍스트 상자에서, AutoSize를 True로 설정하면 자동으로 텍스트가 열로 나타납니다. 텍스트 열의 너비는 그 글꼴 크기를 가진 가장 넓은 글자를 수용하도록 설정됩니다. 텍스트 열의 높이는 TextBox의 텍스트 전체가 나타나도록 설정됩니다.

텍스트를 포함하는 여러 줄 텍스트 상자에 대해서, AutoSize를 True로 설정하면 TextBox는 전체 텍스트를 표시할 수 있도록 자동으로 수직 확대됩니다. TextBox의 너비는 변하지 않습니다.

참고 AutoSize를 True로 설정하는 동안 수동으로 컨트롤의 크기를 변경하는 경우, 수동 변경은 AutoSize에 의해 설정된 기존 크기보다 우선합니다.


AutoTab 속성

TextBox나 ComboBox의 입력란 부분에 문자의 최대 허용 가능한 수를 입력할 때, 자동 탭이 발생하는지의 여부를 지정합니다.

구문

object.AutoTab [= Boolean]

AutoTab 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 자동 탭이 발생하는지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 설명

True | 탭이 발생합니다.
False | 탭이 발생하지 않습니다(기본값).

주의

MaxLength 속성은 TextBox나 ComboBox의 입력란 부분에 최대로 허용되는 문자의 수를 지정합니다.

흔히 문자의 집합 번호를 입력하는 폼의 TextBox나 ComboBox에 대해 AutoTab 속성을 지정할 수 있습니다. 사용자가 문자의 최대수를 입력하면, 포커스는 탭 순서에 따라 자동으로 다음 컨트롤로 옮겨집니다. 예를 들어, TextBox가 항상 5개의 문자로 된 재고 목록 번호를 표시하는 경우, MaxLength를 사용하여 TextBox에 입력할 최대 문자 수를 지정하고, AutoTab을 사용하여 사용자가 5개 문자를 입력한 후 다음 컨트롤에 자동으로 탭 이동할 수 있습니다.

AutoTab 지원은 응용 프로그램에 따라 다릅니다. 모든 컨테이너가 이 속성을 지원하지는 않습니다.


AutoWordSelect 속성

단어와 문자 중 선택 영역을 확장하는 데에 사용할 기본 단위를 지정합니다.

구문

object.AutoWordSelect [= Boolean]

AutoWordSelect 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 선택을 확장하는 데 사용할 기본 단위를 지정합니다.

설정

Boolean 에 대한 설정은 다음과 같습니다.

값 | 설명
True | 단어를 기본 단위로 사용합니다(기본값).
False | 문자를 기본 단위로 사용합니다.

주의

AutoWordSelect 속성은 TextBox나 ComboBox의 편집 영역에서 선택 영역을 확장하거나 단축시키는 방법을 지정합니다.

사용자가 단어 중간에 삽입 지점을 넣고 AutoWordSelect가 True일 동안 선택 영역을 확장하면, 그 선택 사항은 단어 전체를 포함합니다.


BackColor 속성

개체의 배경색을 지정합니다.

구문

object.BackColor [= Long]

BackColor 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 개체의 배경색을 결정하는 값이나 상수입니다.

설정

유효한 색을 나타내는 정수를 사용할 수 있습니다. 또, 빨강, 초록, 파랑의 구성 요소를 가진 RGB 함수를 사용하여 색을 지정할 수 있습니다. 색 구성 요소의 값은 0부터 255까지의 정수입니다. 예를 들어, 회색을 띤 파랑은 4966415로 지정하거나 빨강, 초록, 파랑 구성 요소를 15, 200, 75로 지정할 수 있습니다.

주의

BackStyle 속성이 fmBackStyleOpaque로 설정되어 있는 경우, 개체의 배경색만 볼 수 있습니다.


BackStyle 속성

개체의 배경 스타일을 반환하거나 설정합니다.

구문

object.BackStyle [= fmBackStyle]

BackStyle 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
FmBackStyle | 선택 요소로서 컨트롤 배경을 지정합니다.

설정

fmBackStyle에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmBackStyleTransparent | 0 | 배경이 투명합니다.
FmBackStyleOpaque | 1 | 배경이 불투명합니다(기본값).

주의

BackStyle 속성은 컨트롤의 투명 여부를 결정합니다. BackStyle이 fmBackStyleOpaque이면, 컨트롤은 투명하지 않고 폼에서 컨트롤 뒤의 것을 볼 수 없습니다. BackStyle이 fmBackStyleTransparent이면, 컨트롤을 꿰뚫어 볼 수 있고 컨트롤 뒤에 위치한 폼의 모든 것을 볼 수 있습니다.

참고 BackStyle은 비트맵의 투명성에는 영향을 미치지 않습니다. 비트맵을 투명하게 만들려면 Paintbrush와 같은 그림 편집기를 사용해야 합니다. 모든 컨트롤이 투명한 비트맵을 지원하는 것은 아닙니다.


Bold, Italic, Size, StrikeThrough, Underline, Weight 속성

표시되거나 인쇄된 폼에서 텍스트의 시각적인 속성을 지정합니다.

구문

object.Bold [= Boolean]

object.Italic [= Boolean]

object.Size [= Currency]

object.StrikeThrough [= Boolean]

object.Underline [= Boolean]

object.Weight [= Integer]

Bold, Italic, Size, StrikeThrough, Underline, Weight 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Boolean | 선택 요소로서 글꼴 스타일을 지정합니다.
Currency | 선택 요소로서 글꼴 크기를 나타내는 숫자입니다.
Integer | 선택 요소로서 글꼴 스타일을 지정합니다.

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 텍스트가 지정된 속성(굵게, 기울임꼴, 크기, 취소선, 밑줄 표시, 두께)을 가집니다.
False | 텍스트는 지정된 속성을 갖지 않습니다(기본값).

Weight 속성은 0부터 1000까지의 값을 나타냅니다. 0 값은 시스템이 가장 적절한 두께를 선택하도록 허용합니다. 1부터 1000까지의 값은 특정한 두께를 가리킵니다. 이 때, 1은 가장 가는 형식을 표현하고 1000은 가장 굵은 형식을 표현합니다.

주의

이 속성들은 텍스트의 시각적인 특성을 정의합니다. Bold 속성은 텍스트가 기본 글꼴인지 굵게인지를 결정합니다. Italic 속성은 텍스트가 기본 글꼴인지 기울임꼴인지를 결정합니다. Size 속성은 텍스트의 높이를 포인트 단위로 결정합니다. Underline 속성은 텍스트에 밑줄을 그을 것인지의 여부를 결정합니다. StrikeThrough 속성은 텍스트가 취소선 표시를 가지고 나타나는지의 여부를 결정합니다. Weight 속성은 형식의 어두운 정도를 결정합니다.

화면에서의 글꼴과 인쇄시의 글꼴이 컴퓨터와 프린터에 따라 다를 수 있습니다. 만약 시스템이 지정된 속성을 가지고 표시하거나 설치할 수 없는 글꼴을 선택하면, 운영 체제에서는 유사한 글꼴을 대신 사용합니다. 원래 요구된 글꼴과 비슷한 글꼴로 대치됩니다.

Bold의 값을 바꾸면 Weight의 값도 바뀝니다. Bold를 True로 설정하면, Weight는 700으로 설정됩니다. Bold를 False로 설정하면, Weight는 400으로 설정됩니다. 반대로, Weight를 550이 넘는 숫자로 설정하면, Bold는 True로 설정됩니다. Weight를 550 이하로 설정하면, Bold는 False로 설정됩니다.

기본 포인트 크기는 운영 체제에 따라 다릅니다.


BorderColor 속성

개체의 테두리 색을 지정합니다.

구문

object.BorderColor [= Long]

BorderColor 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 개체의 테두리 색을 결정하는 값이나 상수입니다.

설정

유효한 색을 나타내는 정수를 사용할 수 있습니다. 또, 빨강, 초록, 파랑의 구성 요소를 가진 RGB 함수를 사용하여 색을 지정할 수도 있습니다. 색 구성 요소의 값은 0부터 255까지의 정수입니다. 예를 들어, 회색을 띤 파랑을 4966415로 지정하거나 빨강, 초록, 파랑의 구성 요소를 15, 200, 75로 지정할 수 있습니다.

주의

BorderColor 속성을 사용하려면, BorderStyle 속성이 fmBorderStyleNone이외의 다른 값으로 설정되어야 합니다.

BorderStyle은 BorderColor를 사용하여 테두리 색을 정의합니다. SpecialEffect 속성은 시스템 색을 단독으로 사용하여 테두리 색을 정의합니다. Windows 운영 체제에서, 시스템 색 설정은 제어판의 디스플레이에서 화면 배색 탭에서 합니다. Windows NT 4.0 이상에서, 색 설정은 제어판의 색상에 저장되어 있습니다.


BorderStyle 속성

컨트롤이나 폼이 사용하는 테두리의 형식을 지정합니다.

구문

object.BorderStyle [= fmBorderStyle]

BorderStyle 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
FmBorderStyle | 선택 요소로서 테두리 스타일을 지정합니다.

설정

fmBorderStyle에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmBorderStyleNone | 0 | 컨트롤이 눈에 보이는 테두리 선을 갖지 않습니다.
FmBorderStyleSingle | 1 | 컨트롤이 한 줄 테두리 선을 가집니다(기본값).

ComboBox, Frame, Label, ListBox 또는 TextBox에 대한 기본값은 0(None)입니다. Image에 대한 기본값은 1(Single)입니다.

주의

Frame에서, SpecialEffect 속성이 None이면 BorderStyle 속성은 무시됩니다.

BorderStyle이나 SpecialEffect를 사용하여 컨트롤의 테두리를 지정할 수 있지만, 둘 다 사용할 수는 없습니다. 이 두 속성 중 하나에 0이 아닌 값을 지정하는 경우, 시스템은 나머지 하나의 속성 값을 0으로 설정합니다. 예를 들어, BorderStyle을 fmBorderStyleSingle로 설정하면, 시스템은 SpecialEffect를 0(Flat)으로 설정합니다. SpecialEffect에 대해 0이 아닌 값을 지정하는 경우에는, 시스템은 BorderStyle을 0으로 설정합니다.

BorderStyle은 BorderColor를 사용하여 테두리의 색을 정의합니다.


BoundColumn 속성

여러 열의 ComboBox나 ListBox에서 데이터의 원본을 식별합니다.

구문

object.BoundColumn [= Variant]

BoundColumn 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Variant | 선택 요소로서 BoundColumn 값을 선택하는 방법을 나타냅니다.

설정

Variant에 대한 설정은 다음과 같습니다.

값 | 설명
0 | ListIndex 속성 값을 컨트롤에 할당합니다.
1 이상 | 지정된 열의 값을 컨트롤에 할당합니다. 이 속성을 사용할 때 열은 1부터 매겨집니다(기본값).

주의

사용자가 여러 열 ListBox나 ComboBox에서 행을 선택할 때, BoundColumn 속성은 그 행의 어떤 항목을 컨트롤 값으로 저장할 것인지를 식별합니다. 예를 들어, 각 행에 8개 항목이 있고 BoundColumn이 3이면, 시스템은 현재 선택한 행의 셋째 열에 있는 정보를 개체의 값으로 저장합니다.

한 집합의 데이터를 사용자에게 나타낼 수 있지만, BoundColumn 속성과 TextColumn 속성을 사용하여 개체에 대한 상이한 관련 값들을 저장할 수 있습니다. TextColumn은 ComboBox의 입력란 부분에 나타난 데이터 열을 식별하고 그 값을 Text 속성에 저장됩니다. BoundColumn은 컨트롤에 저장된 관련 데이터 값의 열을 식별합니다. 예를 들어, 한 열에는 공휴일 이름이 들어 있고 둘째 열에는 공휴일 날짜가 들어 있는 여러 열 ListBox를 설정할 수 있습니다. 공휴일 이름을 사용자에게 보여주려면, 첫째 열을 TextColumn으로 지정합니다. 공휴일 날짜를 저장하려면, 둘째 열을 BoundColumn으로 지정합니다. 공휴일 날짜를 숨기려면, 둘째 열의 ColumnWidths 속성을 0으로 설정합니다.

컨트롤이 데이터 원본에 바운드된 경우, BoundColumn이 지정한 열의 값은 ControlSource 속성에서 명명된 데이터 원본에 저장됩니다.

ListIndex 값은 선택한 행 번호를 검색합니다. 예를 들어, 선택한 항목의 행을 알고 싶다면, BoundColumn을 0으로 설정해서 선택한 행 번호를 컨트롤 값으로 지정합니다. 내용이 변경될 수 있는 목록을 참조하는 경우, 이전에 저장된 값을 참조하지 말고 반드시 현재 값을 검색하도록 합니다.

Column, List 그리고 ListIndex 속성은 모두 0을 기반으로 번호를 매깁니다. 즉, 첫째 항목(열이나 행)의 값은 0, 둘째 항목의 값은 1 등 순서대로 값이 지정됩니다. 이는 BoundColumn이 3으로 설정되면, Column(2) 식을 사용하여 그 열에 저장되어 있는 값을 액세스할 수 있다는 것을 의미합니다.


BoundValue 속성

컨트롤이 포커스를 받을 때 컨트롤 값을 포함합니다.

구문

object.BoundValue [= Variant]

BoundValue 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Variant | 선택 요소로서 컨트롤의 현재 상태나 내용을 지정합니다.

설정

컨트롤 | 설명
CheckBox | 항목 선택의 여부를 나타내는 정수입니다.
 | Null 항목이 Null 상태로 선택되지도 삭제되지도 않는 것을 나타냅니다.
 | -1 True 값으로서 선택된 항목을 나타냅니다.
 | 0 False 값으로서 삭제된 항목을 나타냅니다.
OptionButton | CheckBox와 같습니다.
ToggleButton | CheckBox와 같습니다.
ScrollBar | Max와 Min 속성에서 지정된 값 사이의 정수입니다.
SpinButton | ScrollBar와 같습니다.
ComboBox, ListBox | 현재 선택된 행의 BoundColumn에 있는 값입니다.
CommandButton | 항상 False입니다.
MultiPage | 현재 활성 페이지를 나타내는 정수입니다.
 | 0은 첫째 페이지를 나타냅니다. 최대값은 페이지의 수보다 하나 작습니다.
TextBox | 편집 영역의 텍스트입니다.

주의

BoundValue는 포커스를 가진 컨트롤에 적용됩니다.

BoundValue와 Value 속성의 내용은 대부분의 시간과 동일합니다. 사용자가 컨트롤을 편집하여 값을 변경할 때, BoundValue와 Value의 내용은 변경이 모두 끝날 때까지 다릅니다.

사용자가 컨트롤의 값을 변경할 때 여러 가지가 발생합니다. 예를 들어, 사용자가 TextBox의 텍스트를 변경할 때 다음과 같은 일이 발생합니다.

  1. Change 이벤트가 초기화됩니다. 이 때 Value 속성은 새 텍스트와 이전 텍스트를 가진 BoundValue를 포함합니다.

  2. BeforeUpdate 이벤트가 초기화됩니다.

  3. AfterUpdate 이벤트가 초기화됩니다. BoundValue와 Value의 값은 새 텍스트를 포함하며 다시 같아집니다.

BoundValue는 다중 선택 목록 상자와 함께 사용할 수 없습니다.


Cancel 속성

명령 단추가 폼의 취소 단추인지의 여부를 나타내는 값을 반환하거나 설정합니다.

구문

object.Cancel [= Boolean]

Cancel 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 개체가 취소 단추인지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | CommandButton은 취소 단추입니다.
False | CommandButton 취소 단추가 아닙니다(기본값).

주의

명령 단추처럼 동작하는 CommandButton이나 개체는 기본 명령 단추가 될 수 있습니다. OLE 컨테이너 컨트롤(Windows에만)에서 Cancel 속성은 명확히 명령 단추로 동작하는 개체에만 제공됩니다.

폼에서 CommandButton 한 개만 취소 단추가 될 수 있습니다. 명령 단추 한 개에 대해 Cancel을 True로 설정하면 폼의 다른 개체에 대해서는 False로 설정됩니다. CommandButton의 Cancel 속성이 True로 설정되고 폼이 현재 폼이면, 명령 단추에 포커스가 있을 때 사용자가 마우스를 누르거나, Esc 키 또는 Enter 키를 눌러 명령 단추를 선택할 수 있습니다.

Cancel의 전형적인 사용은 사용자에게 의도하지 않은 변경 사항을 취소하는 옵션과 폼을 이전 상태로 되돌리는 옵션을 제공하는 것입니다.

취소 단추를 기본 단추로 만들 때는, Delete 동작과 같이 실행 취소가 불가능한 동작을 지원하는 폼의 경우도 고려해야 합니다. 이렇게 하려면, Cancel 속성과 Default 속성을 True로 설정합니다.


CanPaste 속성

클립보드에 개체가 지원하는 데이터가 있는지의 여부를 지정합니다.

구문

object.CanPaste

CanPaste 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

반환값

CanPaste 속성 반환값은 다음과 같습니다.

값 | 설명
True | 마우스 포인터 아래의 개체는 클립보드로부터 붙여넣은 정보를 받을 수 있습니다(기본값).
False | 마우스 포인터 아래의 개체는 클립보드로부터 붙여넣은 정보를 받을 수 없습니다.

주의

CanPaste는 읽기 전용입니다.

클립보드 데이터가 현재 대상 개체가 지원하지 않는 형식인 경우, CanPaste 속성은 False입니다. 예를 들어, 비트맵을 텍스트만 지원하는 개체에 붙여넣으려는 경우, CanPaste는 False가 됩니다.


CanRedo 속성

가장 최근의 실행 취소를 되돌릴 수 있을 것인지의 여부를 표시합니다.

구문

object.CanRedo

CanRedo 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

반환값

CanRedo 속성 반환값은 다음과 같습니다.

값 | 설명
True | 가장 최근의 실행 취소를 되돌릴 수 있습니다.
False | 가장 최근의 실행 취소를 되돌릴 수 없습니다.

주의

CanRedo는 읽기 전용입니다.

실행을 다시 실행한다는 것은 실행 취소를 반대 방향으로 재생한다는 것을 의미합니다. 그러나 이것이 꼭 마지막에 사용자가 실행한 것을 반복한다는 것을 의미하지는 않습니다.

다음 사용자 실행은 실행 취소와 다시 실행 사용에 관해 설명합니다.

  1. 옵션 단추의 설정을 변경합니다.

  2. 텍스트를 입력란에 입력합니다.

  3. 실행 취소를 클릭합니다. 텍스트가 입력란에서 사라집니다.

  4. 실행 취소를 클릭합니다. 옵션 단추가 이전 설정으로 되돌립니다.

  5. 다시 실행을 클릭합니다. 옵션 단추의 값이 변합니다.

  6. 다시 실행을 클릭합니다. 텍스트가 입력란에서 사라집니다.


CanUndo 속성

마지막 사용자의 동작이 실행 취소될 수 있는지의 여부를 표시합니다.

구문

object.CanUndo

CanUndo 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

반환값

CanUndo 속성 반환값은 다음과 같습니다.

값 | 설명
True | 가장 최근의 사용자 동작이 실행 취소될 수 있습니다.
False | 가장 최근의 사용자 동작이 실행 취소될 수 없습니다.

주의

CanUndo는 읽기 전용입니다.

많은 사용자 동작이 실행 취소 명령으로 실행 취소될 수 있습니다. CanUndo 속성은 가장 최근의 동작이 실행 취소될 수 있는지의 여부를 표시합니다.


Caption 속성

개체를 식별하거나 설명하기 위해 개체에 나타나는 설명 텍스트입니다.

구문

object.Caption [= String]

Caption 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 표시된 텍스트를 캡션으로 평가하는 문자열 식입니다.

설정

컨트롤에 대한 기본 설정은 컨트롤의 형식에 기본을 둔 고유한 이름입니다. 예를 들어, CommandButton1은 폼의 첫째 명령 단추에 대한 기본 캡션입니다.

주의

텍스트는 관련된 개체를 식별하거나 설명합니다. 단추와 레이블에 대해서, Caption 속성은 컨트롤에 나타나는 텍스트를 지정합니다. Page 개체와 Tab 개체에 대해서는, 탭에 나타나는 텍스트를 지정합니다.

컨트롤의 캡션이 너무 긴 경우, 캡션이 잘립니다. 폼의 캡션이 제목 표시줄에 비해 너무 길다면, 제목은 말줄임표와 함께 표시됩니다.

컨트롤의 ForeColor 속성은 캡션의 텍스트 색을 결정합니다.

팁 컨트롤이 Caption 속성과 AutoSize 속성을 모두 가지고 있는 경우, AutoSize를 True로 설정하면 컨트롤의 크기는 캡션 전체가 프레임에 맞도록 자동으로 조정됩니다.


ClientHeight, ClientLeft, ClientTop, ClientWidth 속성

TabStrip의 표시 영역의 차원과 위치를 정의합니다.

구문

object.ClientHeight [ =Single]

object.ClientLeft [ =Single]

object.ClientTop [ =Single]

object.ClientWidth [ =Single]

ClientHeight, ClientLeft, ClientTop, ClientWidth 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Single | 선택 요소로서 ClientHeight와 ClientWidth에서는 표시 영역의 높이나 너비를 포인트 단위로 지정합니다. ClientLeft와 ClientTop에서는 TabStrip's의 컨테이너의 위쪽이나 왼쪽 가장자리로부터 거리를 지정합니다.

주의

런타임에서 ClientLeft, ClientTop, ClientHeight, ClientWidth는 자동으로 TabStrip 개체에 의해 공유되는 TabStrip's 내부 영역의 좌표와 차원을 저장합니다.


Column 속성

ListBox나 ComboBox에서 항목을 한 개 이상 지정합니다.

구문

object.Column( column, row ) [= Variant]

Column 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Column | 선택 요소로서 0부터 총 열 수에서 하나 이하인 숫자까지의 범위를 갖는 정수입니다.
Row | 선택 요소로서 0부터 총 행 수에서 하나 이하인 숫자까지의 범위를 갖는 정수입니다.
Variant | 선택 요소로서 ListBox나 ComboBox로 불러들일 한 가지 값이나 값의 열, 또는 2차원 배열을 지정합니다.

설정

열 값과 행 값을 모두 지정하면, Column은 특정 항목을 읽거나 씁니다.

열 값만 지정한다면, Column 속성은 개체의 현재 행에서 지정한 열을 읽거나 씁니다. 예를 들어, MyListBox.Column(3)은 MyListBox의 셋째 열을 읽거나 씁니다

Column은 커서로부터 Variant를 반환합니다. 기본 커서가 Variant에 대한 값을 제공할 때(예를 들어, AddItem 메서드를 사용할 때), 그 값은 문자열입니다. 외부 커서가 Variant에 대한 값을 제공할 때, 데이터와 관련해서 형식을 지정하는 것은 Variant에 포함되지 않습니다.

주의

Column을 사용하여 콤보 상자나 목록 상자를 텍스트 상자와 같은 또 다른 컨트롤에 지정할 수 있습니다. 예를 들어, 텍스트 상자의 ControlSource 속성을 목록 상자의 둘째 열의 값으로 설정할 수 있습니다.

콤보 상자나 목록 상자의 열을 참조할 때 사용자가 선택하지 않는다면, Column 설정은 Null입니다. IsNull 함수를 사용하여 이 조건을 검사할 수 있습니다.

또한 Column을 사용하여 2차원 배열로 된 값 전체를 컨트롤에 복사할 수 있습니다. AddItem을 사용하여 목록의 구성 요소를 개별적으로 불러오는 것보다 이 구문으로 빠르게 선택 목록을 열 수 있습니다.

참고 2차원 배열의 데이터를 복사할 때, Column은 컨트롤에서 배열의 문맥을 바꾸어 그 결과 ListBox1.Column(X, Y)의 문맥이 MyArray(Y, X)와 같아집니다. 또한 배열을 바꾸지 않고 List를 사용하여 배열을 복사할 수 있습니다.


ColumnCount 속성

목록 상자나 콤보 상자에서 표시할 열의 숫자를 지정합니다.

구문

object.ColumnCount [= Long]

ColumnCount 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 표시할 열의 숫자를 지정합니다.

주의

직원 폼에서 목록 상자에 대한 ColumnCount 속성을 3으로 설정한다면, 하나의 열에 성씨를 나열하고 또 하나의 열에 이름을 나열하고, 셋째 열에는 직원 ID 번호를 나열할 수 있습니다.

ColumnCount를 0으로 설정하면 열이 나타나지 않고, -1로 설정하면 이용 가능한 열이 모두 나타납니다. 언바운드된 데이터 원본은 10까지의 열 제한이 있습니다(0부터 9까지).

컨트롤에 나타나는 열의 너비를 설정하기 위해 ColumnWidths 속성을 사용할 수 있습니다.


ColumnHeads 속성

열 머리글을 받아들이는 목록 상자, 콤보 상자, 그리고 개체에 대해서 한 행의 열 머리글을 보여 줍니다.

구문

object.ColumnHeads [= Boolean]

ColumnHeads 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 열 머리글의 표시 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 열 머리글을 표시합니다.
False | 열 머리글을 표시하지 않습니다(기본값).

콤보 상자의 머리글은 목록을 드롭다운할 때만 나타납니다.

주의

시스템이 데이터 항목의 첫째 행을 열 머리글로 사용할 때, 그 항목을 선택할 수 없습니다.


ColumnWidths 속성

여러 열 콤보 상자나 목록 상자에서 각 열의 너비를 지정합니다.

구문

object.ColumnWidths [= String]

ColumnWidths 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 열 너비를 포인트 단위로 설정합니다. -1 또는 공백으로의 설정은 계산된 너비입니다. 너비가 0이면 열이 숨겨집니다. 다른 측정 단위를 지정하기 위해 측정의 단위를 포함합니다. 0보다 큰 값은 열의 너비를 지정합니다.

설정

열 항목을 구분하려면, 세미콜론(;)을 목록 구분 기호로 사용합니다. 또는 Windows 제어판의 국가별 설정 영역에서 지정한 목록 구분 기호를 사용합니다.

ColumnWidths 속성 설정 중 어떤 것 혹은 전부 비어 있을 수 있습니다. 선행하는 값 없이 목록 구분 기호를 입력해서 내용이 없는 설정을 만들도록 합니다.

이 속성 페이지를 -1로 지정하면, 속성 페이지 안에서 표시되는 값은 공백이 됩니다.

ColumnWidths의 값이 공백이나 -1일 때 열 너비를 계산한다면, 컨트롤의 너비는 목록의 모든 열 사이에서 똑같이 나누어집니다. 지정된 열 너비의 합이 컨트롤의 너비를 초과한다면, 목록은 컨트롤 내에서 왼쪽으로 맞춰지고 오른쪽 끝의 열 중 하나 이상이 보이지 않습니다. 사용자는 오른쪽 끝의 열을 표시하기 위하여 가로 스크롤 막대를 사용하여 목록을 이동할 수 있습니다.

계산된 열 너비의 최소값은 72포인트(1인치)입니다. 너비를 최소값보다 좁게 하려면, 따로 지정해야만 합니다.

그렇지 않고 열 너비를 지정하지 않았다면, 열 너비는 포인트 단위로 측정됩니다. 또 다른 측정 단위를 지정하려면, 그 단위를 값의 일부분으로 포함하도록 합니다. 다음은 열 너비를 여러 개의 측정 단위로 지정하고 다양한 설정이 4인치 너비의 세 열 짜리 목록에 어떻게 맞게 되는지 설명해 주는 예제입니다.

설정 | 효과
90;72;90 | 첫 번째 열은 90포인트(1.25인치)이고, 두 번째 열은 72포인트(1인치)이고, 세 번째 열은 90포인트입니다.
6 cm;0;6 cm | 첫 번째 열은 6cm이고, 두 번째 열은 숨겨져 있고, 세 번째 열은 6cm입니다. 세 번째 열의 일부분이 보이기 때문에, 가로 스크롤 막대가 나타납니다.
1.5 in;0;2.5 in | 첫 번째 열은 1.5인치이고, 두 번째 열은 숨겨져 있고, 세 번째 열은 2.5인치입니다.
2 in;;2 in | 첫 번째 열은 2인치이고, 두 번째 열은 1인치(기본값)이고, 세 번째 열은 2인치입니다. 세 번째 열 중 절반만 보이기 때문에, 가로 스크롤 막대가 나타납니다.
(Blank) | 세 열 모두 같은 너비(1.33인치)입니다.

주의

콤보 상자에서, 시스템은 컨트롤의 텍스트 상자 부분에서 TextColumn 속성이 지명한 열을 표시합니다.


ControlSource 속성

컨트롤의 Value 속성을 설정하거나 저장하기 위해 데이터 위치를 일치시킵니다. ControlSource 속성은 Microsoft Excel의 워크시트 범위를 받아들입니다.

구문

object.ControlSource [= String]

ControlSource 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 컨트롤의 Value 속성에 연결된 워크시트 셀을 지정합니다.

주의

ControlSource 속성은 셀 또는 필드와 동일합니다. 그러나, 셀이나 필드 안에 저장된 데이터를 포함하지는 않습니다. 컨트롤의 Value를 변경하면, 변화된 값을 연결된 셀이나 필드에 자동으로 반영합니다. 이와 비슷하게, 연결된 셀이나 필드의 값을 변경하면 변화된 값을 컨트롤의 Value에 자동으로 반영합니다.

ControlSource를 위한 또 다른 컨트롤을 지정할 수 없지만, 지정하게 되면 오류가 발생합니다.

ControlSource에 대한 기본값은 빈 문자열입니다. 만약, ControlSource가 비어 있지 않은 문자열을 포함한다면, 이것은 연결된 셀이나 필드와 동일한 값을 가집니다. 컨트롤이 읽어 들이기를 할 때 그 셀이나 필드의 내용을 자동적으로 Value 속성에 복사합니다.

참고 Value 속성이 Null이면, ControlSource에서 확인한 위치에는 아무런 값도 표시되지 않습니다.


ControlTipText 속성

사용자가 마우스 클릭 없이 컨트롤 위에 마우스 포인터를 가져다 놓을 때 나타나는 텍스트를 지정합니다.

구문

object.ControlTipText [= String]

ControlTipText 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 사용자가 컨트롤 위에 마우스 포인터를 가져다 놓을 때 나타나는 텍스트입니다.

주의

ControlTipText 속성은 사용자에게 실행 중인 폼의 컨트롤에 관한 팁을 줄 수 있습니다. 디자인 모드에서 속성을 설정할 수 있지만 런타임 동안 컨트롤에 의해서만 속성이 나타납니다.

ControlTipText의 기본값은 빈 문자열입니다. ControlTipText의 값이 빈 문자열로 설정될 때, 그 컨트롤에 대해 어떤 팁도 얻을 수 없습니다.


Count 속성

컬렉션에 있는 개체의 수를 반환합니다.

구문

object.Count

Count 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

Count 속성은 읽기 전용입니다.

컬렉션의 첫 번째 페이지나 탭에 대한 인덱스 값은 0이고, 두 번째 페이지나 탭에 대한 값은 1 등 순서대로 값이 지정됩니다. 예를 들어, MultiPage가 두 페이지를 포함한다면, 페이지 인덱스는 0과 1입니다. 그리고 Count 값은 2가 됩니다.


CurLine 속성

컨트롤의 현재 줄을 지정합니다.

구문

object.CurLine [= Long]

CurLine 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 컨트롤의 현재 줄을 지정합니다.

주의

컨트롤의 현재 줄은 삽입 지점이 있는 줄입니다. 첫째 줄 번호는 0입니다.

CurLine 속성은 컨트롤에 포커스가 있을 때 유효합니다.


CurTargetX 속성

여러 줄 TextBox나 ComboBox에서 삽입 지점의 기본 설정 가로 위치를 표시합니다.

구문

object.CurTargetX

CurTargetX 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

반환값

CurTargetX 속성은 Himetric 단위로 측정한 기본 설정 위치를 표시합니다. Himetric은 0.0001m입니다.

주의

대상 위치는 컨트롤의 왼쪽 가장자리와 관련되어 있습니다. 줄 길이가 CurTargetX 속성 값보다 작으면, 삽입 지점을 줄 끝에 둘 수 있습니다. CurTargetX 값은 사용자가 삽입 지점을 설정할 때나 CurX 속성이 설정될 때 변합니다. CurTargetX는 읽기 전용입니다.

반환값은 개체가 포커스를 가질 때 유효합니다.

사용자가 여러 줄 TextBox나 ComboBox의 내용을 이동할 때 CurTargetX와 CurX를 사용하여 삽입 지점을 옮길 수 있습니다. 사용자가 개체의 내용을 이동해서 삽입 지점을 텍스트의 또 다른 줄로 옮길 때, CurTargetX는 삽입 지점에 대해서 선택한 위치를 지정합니다. CurX는 텍스트 줄이 CurTargetX의 값보다 더 길다면 이 값으로 설정됩니다. 그렇지 않으면, CurX는 텍스트의 줄 끝으로 설정됩니다.


CurX 속성

여러 줄 TextBox나 ComboBox에서 삽입 지점의 현재 가로 위치를 지정합니다.

구문

object.CurX [= Long]

CurX 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 Himetrics 단위로 측정한 현재 위치를 가리킵니다. Himetric은 0.0001m입니다.

주의

CurX 속성은 여러 줄 TextBox나 ComboBox에 적용됩니다. 반환값은 개체가 포커스를 가질 때 유효합니다.

사용자가 여러 줄 TextBox나 ComboBox의 내용을 이동할 때 CurTargetX와 CurX를 사용하여 삽입 지점의 위치를 정할 수 있습니다. 사용자가 개체의 내용을 이동해서 삽입 지점을 텍스트의 또 다른 줄로 옮길 때, CurTargetX는 삽입 지점에 대해서 선택한 위치를 지정합니다. CurX는 텍스트 줄이 CurTargetX의 값보다 더 길면 이 값으로 설정됩니다. 그렇지 않으면, CurX는 텍스트 줄의 끝으로 설정됩니다.


Cycle 속성

사용자가 Frame이나 Page에서 마지막 컨트롤을 둘 때 취할 실행을 지정합니다.

구문

object.Cycle [= fmCycle]

Cycle 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
FmCycle | 선택 요소로서 순환 과정에 Frame이나 MultiPage에서 중첩된 컨트롤 포함 여부를 지정합니다.

설정

fmCycle에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmCycleAllForms | 0 | 폼에 있는 컨트롤과 폼에 현재 표시된 Frame과 MultiPage의 컨트롤을 순환합니다.
FmCycleCurrentForm | 2 | 폼에 있는 Frame과 MultiPage의 컨트롤을 순환합니다. 포커스는 명확하게 폼, Frame 또는 MultiPage 밖의 컨트롤로 설정될 때까지 폼, Frame 또는 MultiPage 안에 있습니다.

Cycle을 위해 정수가 아닌 값을 지정하면, 가장 가까운 정수로 반올림합니다.

주의

탭 순서는 사용자가 폼이나 하위 폼을 선택할 때, 컨트롤이 포커스를 받는 순서를 식별합니다. Cycle 속성은 사용자가 탭 순서에서 마지막 컨트롤부터 탭으로 선택할 때 취할 실행을 결정합니다.

fmCycleAllForms 설정은 사용자가 탭 순서에서 마지막 컨트롤부터 탭으로 선택할 때 포커스를 폼에서 다음 Frame이나 MultiPage의 첫째 컨트롤로 이동합니다.

fmCycleCurrentForm 설정은 사용자가 탭 순서에서 마지막 컨트롤부터 탭으로 선택할 때 같은 폼, Frame 또는 MultiPage의 첫 번째 컨트롤로 포커스를 전송합니다.


Default 속성

폼의 기본 명령 단추를 선정합니다.

구문

object.Default [= Boolean]

Default 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 명령 단추가 기본 단추인지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | CommandButton이 기본 단추입니다.
False | CommandButton이 기본 단추가 아닙니다(기본값).

주의

명령 단추처럼 동작하는 CommandButton이나 개체는 기본 명령 단추로 설정할 수 있습니다. 폼에서 오직 한 개체만이 기본 명령 단추가 될 수 있습니다. 어떤 개체에 대한 Default 속성을 True로 설정하면 폼에 있는 다른 개체에 대해서는 False로 설정됩니다.

현재 폼에서 기본 명령 단추를 선택하고, 다른 CommandButton이 포커스를 갖지 않을 때, 단추를 클릭하거나 Enter 키를 누를 수 있습니다. 다른 CommandButton이 포커스를 갖지 않을 때, Enter 키를 누르면 기본 명령 단추에 대한 KeyUp 이벤트를 초기화합니다.

Default는 명확하게 CommandButton 컨트롤처럼 동작하는 OLE 컨테이너 컨트롤(Windows에만)에 제공됩니다.

팁 취소 단추는 실행 취소가 불가능한 동작(삭제 같은 것)을 지원하는 폼에 대한 기본 단추로 만들 것을 고려해야 합니다. 이렇게 하려면, Default 속성과 Cancel 속성을 모두 True로 설정합니다.


Delay 속성

SpinButton이나 ScrollBar에서 SpinUp, SpinDown 그리고 Change 이벤트에 대한 지연을 지정합니다.

구문

object.Delay [= Long]

Delay 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 이벤트 사이의 지연을 ms 단위로 지정해 놓은 것입니다.

주의

Delay 속성은 사용자가 SpinButton이나 ScrollBar의 단추를 누르고 있을 때 발생하는 연속된 SpinUp, SpinDown, Change 이벤트들 사이의 시간량에 영향을 미칩니다. 첫 번째 이벤트는 즉시 일어납니다. 두 번째 이벤트 발생에 대한 지연은 지정한 Delay 값의 5배입니다. 이 초기 지연 때문에 끊임없는 흐름의 이벤트보다 한가지 이벤트를 발생시키는 것이 쉽습니다.

초기 지연 이후에, 이벤트 사이 간격은 Delay에서 지정한 값입니다.

Delay의 기본값은 50ms입니다. 이것은 그 개체가 250ms(지정한 값의 5배) 후에 첫 번째 이벤트를 시작하고 50ms 후에 연속해서 이벤트를 시작한다는 것을 의미합니다.


DragBehavior 속성

시스템에서 TextBox나 ComboBox에서 끌어서 놓기 기능이 사용 가능한지의 여부를 지정합니다.

구문

object.DragBehavior [= fmDragBehavior]

DragBehavior 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmDragBehavior | 선택 요소로서 끌어서 놓기 기능이 사용 가능한지의 여부를 지정합니다.

설정

fmDragBehavior에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmDragBehaviorDisabled | 0 | 끌어서 놓기 동작을 허용하지 않습니다(기본값).
fmDragBehaviorEnabled | 1 | 끌어서 놓기 동작을 허용합니다.

주의

DragBehavior 속성이 사용 가능한 경우, 텍스트 상자나 콤보 상자에서 끌면 선택한 텍스트에 대한 끌어서 놓기 작업이 시작됩니다. DragBehavior를 사용할 수 없는 경우, 텍스트 상자나 콤보 상자에서 끌면 텍스트가 선택됩니다.

ComboBox의 드롭다운 부분이 끌어서 놓기 처리 과정을 지원하지 않는다면, 텍스트 사이의 항목 선택도 지원하지 않습니다.

DragBehavior는 Style 속성이 fmStyleDropDownList로 설정된 ComboBox에는 영향을 주지 않습니다.

참고 EnterFieldBehavior 속성과 DragBehavior의 효과를 조합해서 많은 텍스트 상자 스타일을 만들 수 있습니다.


DrawBuffer 속성

화면 밖으로 렌더링되는 프레임 메모리를 제외한 픽셀의 수를 지정합니다.

구문

object.DrawBuffer [= value]

구성 요소 | 설명
object | 필수 요소로서 유효한 개체 이름입니다.
Value | 16,000부터 1,048,576까지의 수에서 개체가 화면 밖에 렌더링할 수 있는 최대 픽셀 수와 같은 정수입니다.

주의

DrawBuffer 속성은 화면에 색을 칠할 때, 한 번에 그릴 수 있는 최대 픽셀 수를 지정합니다. 개체가 사용하는 실제 메모리는 화면의 해상도에 달려 있습니다. DrawBuffer를 위한 값을 크게 설정하면 할수록 실행 속도는 늦어집니다. 큰 버퍼는 여러 개의 큰 이미지들을 겹쳐서 나타낼 때 도움이 됩니다.

속성 창을 사용하여 DrawBuffer의 값을 지정합니다.


DropButtonStyle 속성

ComboBox에서 드롭 단추에 표시되는 기호를 지정합니다.

구문

object.DropButtonStyle [= fmDropButtonStyle]

DropButtonStyle 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
FmDropButtonStyle | 선택 요소로서 드롭 단추의 모양입니다.

설정

fmDropButtonStyle에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmDropButtonStylePlain | 0 | 일반 단추를 기호 없이 표시합니다.
FmDropButtonStyleArrow | 1 | 아래쪽 화살표를 표시합니다(기본값).
FmDropButtonStyleEllipsis | 2 | 말줄임표(...)를 표시합니다.
FmDropButtonStyleReduce | 3 | 가로줄을 밑줄 문자처럼 표시합니다.

주의

목록에서 항목을 보여주는 설정 중 추천하는 것은 fmDropButtonStyleArrow입니다. 대화 상자 표시와 같이 드롭 단추를 다른 방법으로 사용하고 싶다면, fmDropButtonStyleEllipsis, fmDropButtonStylePlain 또는 fmDropButtonStyleReduce를 지정하고 DropButtonClick 이벤트를 처리합니다.


Enabled 속성

컨트롤이 포커스를 받고 사용자가 발생시킨 이벤트에 반응할 수 있는지의 여부를 지정합니다.

구문

object.Enabled [= Boolean]

Enabled 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 개체가 사용자가 발생시킨 이벤트에 반응할 수 있는지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 컨트롤이 포커스를 받고 사용자가 발생시킨 이벤트에 반응할 수 있습니다. 그리고 코드를 통해 액세스가 가능합니다(기본값).
False | 사용자가 마우스, 키 입력 또는 바로 가기 키를 사용하여 컨트롤과 상호 작용할 수 없습니다. 일반적으로 컨트롤은 여전히 코드를 통해서 액세스가 가능합니다.

주의

Enabled 속성을 사용하여 컨트롤의 사용 가능과 사용 안함을 설정합니다. 사용할 수 없는 컨트롤은 흐리게 나타나는 반면, 사용 가능한 컨트롤은 그렇지 않습니다. 또한, 컨트롤이 비트맵을 표시하고 있다면, 컨트롤이 흐려질 때마다 그 비트맵도 흐려집니다. 만약, 이미지를 위한 Enabled가 False라면, 컨트롤은 이벤트를 초기화하지 못하나 흐려지지 않습니다.

Enabled 속성과 Locked 속성은 함께 작용해서 다음과 같은 효과를 얻어냅니다.

  • Enabled와 Locked가 모두 True인 경우, 그 컨트롤은 포커스를 받을 수 있고 폼에서 정상적으로(흐려지지 않고) 나타납니다. 사용자는 컨트롤의 데이터를 복사할 수 있지만, 편집할 수는 없습니다.

  • Enabled가 True이고 Locked가 False인 경우, 그 컨트롤은 포커스를 받을 수 있고 폼에서 정상적으로 나타납니다. 사용자는 컨트롤의 데이터를 복사하고 편집할 수 있습니다.

  • Enabled가 False이고 Locked가 True인 경우, 그 컨트롤은 포커스를 받을 수 없고 폼에서 흐려집니다. 사용자는 컨트롤의 데이터를 복사도 할 수 없고 편집도 할 수 없습니다.

  • Enabled와 Locked가 모두 False인 경우, 그 컨트롤은 포커스를 받을 수 없고 폼에서 흐려집니다. 사용자는 컨트롤의 데이터를 복사도 할 수 없고 편집도 할 수 없습니다.

Enabled 속성과 TabStop 속성 설정을 조합해서 사용자가 Tab 키로 명령 단추를 선택하는 것을 방지할 수 있습니다. 그러나, 여전히 사용자가 그 단추를 클릭하는 것은 허용합니다. TabStop을 False로 설정한다는 것은 명령 단추가 탭 순서로 나타나지 않는다는 것을 의미합니다. 그러나, Enabled가 True인 경우, TakeFocusOnClick이 True로 설정되어 있기만 하면 사용자는 여전히 명령 단추를 클릭할 수 있습니다.

사용자가 사용 가능한 MultiPage나 TabStrip으로 탭 이동할 때, 컨트롤의 첫째 페이지나 탭이 포커스를 받습니다. MultiPage나 TabStrip을 사용할 수 없다면, 그 컨트롤의 사용 가능한 첫째 페이지나 탭은 포커스를 받습니다. MultiPage나 TabStrip의 모든 페이지나 탭을 사용할 수 없다면, 그 컨트롤은 사용할 수 없고 포커스를 받을 수 없습니다.

Frame을 사용할 수 없으면, 그 프레임에 있는 모든 컨트롤도 사용할 수 없습니다.

사용할 수 없는 ListBox를 클릭하면 Click 이벤트를 초기화할 수 없습니다.


EnterFieldBehavior 속성

TextBox나 ComboBox에 입력할 때 선택 기능을 지정합니다.

구문

object.EnterFieldBehavior [= fmEnterFieldBehavior]

EnterFieldBehavior 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmEnterFieldBehavior | 선택 요소로서 원하는 선택 기능입니다.

설정

fmEnterFieldBehavior에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmEnterFieldBehaviorSelectAll | 0 | 컨트롤에 입력할 때 편집 영역의 내용 전체를 선택합니다(기본값).
fmEnterFieldBehaviorRecallSelection | 1 | 선택 사항을 바뀌지 않은 채로 놓아둡니다. 시각적으로 이것은 실제로 컨트롤이 활성이었던 마지막 시간인 선택 사항을 사용합니다.

주의

EnterFieldBehavior 속성은 SetFocus 메서드의 결과로서 포커스를 받는 컨트롤이 아닐 때, 컨트롤에 탭을 줄 때, 텍스트를 선택하는 방법을 제어합니다. 뒤에 오는 SetFocus는 컨트롤의 내용을 선택하지 않으면, 삽입 지점을 컨트롤 편집 영역의 마지막 문자 뒤에 위치시킵니다.


EnterKeyBehavior 속성

TextBox에서 Enter 키를 누르는 효과를 정의합니다.

구문

object.EnterKeyBehavior [= Boolean]

EnterKeyBehavior 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 Enter 키를 누르는 효과를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | Enter 키를 누르면 줄이 바뀝니다.
False | Enter 키를 누르면 포커스는 탭 순서에 따라 다음 개체로 이동합니다(기본값).

주의

EnterKeyBehavior 속성과 MultiLine 속성은 밀접하게 관련되어 있습니다. 위에서 설명한 값들은 MultiLine이 True일 때에만 적용됩니다. MultiLine이 False일 때, Enter 키를 누르면 EnterKeyBehavior의 값에 상관 없이 항상 포커스가 탭 순서에 따라 다음 컨트롤로 이동합니다.

또, Ctrl+Enter를 누르는 효과도 MultiLine의 값에 따라 다릅니다. MultiLine이 True일 때 Ctrl+Enter를 누르면 EnterKeyBehavior의 값에 상관 없이 새 줄이 만들어집니다. MultiLine이 False일 때 Ctrl+Enter를 누르면 아무런 효과도 없습니다.


ForeColor 속성

개체의 전경색을 지정합니다.

구문

object.ForeColor [= Long]

ForeColor 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 개체의 전경색을 결정하는 값이나 상수입니다.

설정

유효한 색을 표시하는 정수를 사용할 수 있습니다. 빨강, 초록, 파랑의 구성 요소를 가진 RGB 함수를 사용하여 색을 지정할 수도 있습니다. 색 구성 요소의 값은 0부터 255까지의 정수입니다. 예를 들어, 회색을 띤 파랑은 4966415로 지정하거나 빨강, 초록, 파랑은 구성 요소를 15, 200, 75로 지정할 수 있습니다.

주의

폼에서 컨트롤에 대한 ForeColor 속성을 사용하여 그 컨트롤을 읽기 쉽게 만들거나 그 컨트롤이 특별한 의미를 전달하도록 만드십시오. 예를 들어, 텍스트 상자가 재고에 있는 단위 수를 보고하면, 값이 재순서 수준 아래로 떨어질 때 텍스트 색을 변경할 수 있습니다.

ScrollBar나 SpinButton에 대해서, ForeColor는 화살표 색을 설정합니다. Frame에 대해서, ForeColor는 캡션의 색을 변경합니다. Font 개체에 대해서, ForeColor는 텍스트 색을 결정합니다.


GroupName 속성

상호 배제적인 OptionButton 컨트롤 그룹을 만듭니다.

구문

object.GroupName [= String]

GroupName 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 OptionButton은 유효합니다.
String | 선택 요소로서 OptionButton을 포함하는 그룹 이름입니다. 그룹 안의 모든 단추를 동일한 방법으로 설정합니다. 기본 설정은 빈 문자열입니다.

주의

상호 단독인 OptionButton 컨트롤 그룹을 만들기 위해, 폼 위에 있는 Frame 안에 단추를 놓거나, GroupName 속성을 사용합니다. GroupName은 아래와 같은 이유로 훨씬 효과적입니다.

  • 각각의 그룹을 위해 Frame을 포함할 필요는 없습니다. Frame을 사용하지 않아도 폼 위의 컨트롤 수를 줄일 수 있습니다. 그리고 차례로, 성능을 향상시키거나 폼의 크기를 줄일 수 있습니다.

  • 디자인하기가 훨씬 유연합니다. Frame을 사용하여 그룹을 만들면, 모든 단추들의 위치는 Frame 안에 있어야 합니다. 그리고 한 개 이상의 그룹을 만들려면, 각각의 그룹은 한 개의 Frame을 가져야 합니다. 그러나, GroupName을 사용하여 그룹을 만들면, 그룹은 폼 위에 있는 모든 옵션 단추들을 포함합니다. 한 개 이상의 그룹을 만들 때는, 각각의 그룹에 특별한 이름을 지정합니다. 개개의 컨트롤을 폼 위의 어느 곳에나 위치시킬 수 있습니다.

  • 폼의 시각적 표현 방법을 향상시킨 배경이 투명한 단추를 만들 수 있습니다. Frame은 투명한 컨트롤이 아닙니다.

단추 그룹을 만드는데 사용한 메서드와는 상관 없이, 그룹에서 한 개의 단추를 누르면 같은 그룹에 있는 다른 모든 단추들을 False로 설정합니다. 컨테이너 한 개 안에 있는 GroupName의 모든 옵션 단추들은 상호 단독입니다. 컨테이너 두 개 안에 같은 그룹 이름을 사용할 수 있으나, 양쪽의 컨테이너를 포함하는 그룹 한 개를 만드는 것이 아니고, 그룹(각각의 컨테이너에 한 개씩) 두 개를 만듭니다.

예를 들어, 폼이 몇 개의 옵션 단추들과 옵션 단추들을 포함한 MultiPage를 함께 포함한다고 가정합니다. MultiPage 위에 있는 옵션 단추들은 한 개의 그룹이고, 폼 위에 있는 단추도 다른 한 개의 그룹입니다. 이 두 개의 그룹은 서로 영향을 주지 않습니다. MultiPage 위에 있는 단추의 설정을 변경해도, 폼 위에 있는 단추에는 영향을 주지 않습니다.


Height, Width 속성

포인트 단위로 표현한 개체의 높이나 너비입니다.

구문

object.Height [= Single]

object.Width [= Single]

Height 속성 구문과 Width 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Single | 선택 요소로서 개체의 차원을 지정하는 숫자 식입니다.

주의

Height 속성과 Width 속성은 컨트롤을 옮기거나 컨트롤의 크기를 조절할 때 자동으로 업데이트합니다. 컨트롤의 크기를 변경한다면, Height 속성이나 Width 속성은 새로운 높이나 너비를 저장하고 OldHeight 속성이나 OldWidth 속성은 이전의 높이나 너비를 저장합니다. Left 속성이나 Top 속성에 대해 0보다 작은 설정을 지정한다면, 그 값은 그 컨트롤의 높이나 너비를 계산하는 데에 사용되지만, 그 컨트롤의 일부분이 폼에서 보이지 않게 됩니다.

컨트롤을 폼의 한 부분에서 다른 부분으로 이동하면, Height나 Width의 설정은 이동하는 동안 컨트롤의 크기를 조절할 때만 변합니다. 컨트롤의 Left 속성과 Top 속성에 대한 설정은 그 컨트롤을 포함하는 폼의 가장자리에 대해 상대적인 새 위치를 반영하도록 변경됩니다.

Height나 Width에 지정된 값은 0보다 크거나 같아야 합니다. 대부분의 시스템에서, 추천하는 값의 범위는 0부터 +32,767입니다. 더 높은 값도 시스템 구성에 따라 허용될 수 있습니다.


HelpContextID 속성

HelpContextID 속성은 사용자 정의 Microsoft Windows 도움말 파일의 특정한 항목을 특정한 컨트롤과 연결합니다.

구문

object.HelpContextID [= Long]

HelpContextID 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 양의 정수는 개체와 연결된 도움말 파일에 있는 항목의 컨텍스트 ID를 지정합니다. 0은 그 개체와 연결된 도움말 항목이 없다는 것을 가리킵니다(기본값). 지정한 도움말 파일에서 유효한 컨텍스트 ID가 있어야 합니다.

주의

HelpContextID 속성이 식별하는 항목은 폼이 실행 중일 때 사용자에게 유용합니다. 그 항목을 표시하려면, 사용자가 그 컨트롤을 선택하거나 포커스를 그 컨트롤에 설정하고, F1 키를 누릅니다.

HelpContextID 속성은 폼이나 응용 프로그램을 설명하려고 만든 사용자 정의 도움말 파일의 항목과 관련되어 있습니다. Visual Basic에서, 사용자 정의 도움말 파일은 프로젝트의 속성입니다.


HideSelection 속성

컨트롤에 포커스가 없을 때, 선택한 텍스트가 반전된 채로 남겨 둘 것인지의 여부를 지정합니다.

구문

object.HideSelection [= Boolean]

HideSelection 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 컨트롤에 포커스가 없을 때에도 선택한 텍스트를 반전된 채로 남겨 둘 것인지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 컨트롤에 포커스가 없다면 선택한 텍스트는 반전되지 않습니다(기본값).
False | 선택한 텍스트는 항상 반전되어 나타납니다.

주의

맞춤법 검사 프로시저처럼, 다른 폼이나 대화 상자가 포커스를 받을 때 HideSelection 속성을 사용하여 반전된 텍스트를 유지할 수 있습니다.


IMEMode 속성

컨트롤에 대한 입력 시스템(IME)의 기본 런타임 모드를 지정합니다. 이 속성은 맞춤을 위한 응용 프로그램에 적용되며, 그 외의 응용 프로그램에서는 무시됩니다.

구문

object.IMEMode [= fmIMEMode]

IMEMode 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmIMEMode | 선택 요소로서 입력 시스템(IME) 모드입니다.

설정

fmIMEMode에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmIMEModeNoControl | 0 | IME를 제어하지 않습니다(기본값).
fmIMEModeOn | 1 | IME를 켭니다.
fmIMEModeOff | 2 | IME를 끕니다. 영어 모드입니다.
fmIMEModeDisable | 3 | IME를 끕니다. 사용자는 키보드로 IME를 켤 수 없습니다.
fmIMEModeHiragana | 4 | 전체 너비의 히라가나 모드로 IME를 켭니다.
fmIMEModeKatakana | 5 | 전체 너비의 가타카나 모드로 IME를 켭니다.
fmIMEModeKatakanaHalf | 6 | 절반 너비의 가타카나 모드로 IME를 켭니다.
fmIMEModeAlphaFull | 7 | 전체 너비의 영문 및 숫자 모드로 IME를 켭니다.
fmIMEModeAlpha | 8 | 절반 너비의 영문 및 숫자 모드로 IME를 켭니다.
fmIMEModeHangulFull | 9 | 전체 너비의 한글 모드로 IME를 켭니다.
fmIMEModeHangul | 10 | 절반 너비의 한글 모드로 IME를 켭니다.

fmIMEModeNoControl 설정은 컨트롤이 실행 모드에서 포커스를 받을 때 IME의 모드가 변하지 않는다는 것을 가리킵니다. 다른 값에 대해서, IME의 모드는 컨트롤이 실행 모드에서 포커스를 받을 때 IMEMode 속성이 지정한 값으로 설정됩니다.

주의

IME의 모드를 설정하는 데에는 두 가지 방법이 있습니다. 한 가지는 IME 도구 모음을 통해서 설정하는 방법입니다. 다른 한 가지는 컨트롤의 IMEMode 속성으로 설정하는 방법입니다. 이 속성은 IME의 현재 모드를 반환하거나 설정합니다. 이 속성은 코드를 통해서 IME를 동적으로 제어하는 것을 허용합니다.

다음의 예제는 IMEMode가 IME의 도구 모음과 상호 작용하는 방법을 설명합니다. TextBox1과 CheckBox1을 가진 폼을 디자인했다고 가정합니다. TextBox1.IMEMode를 0으로 설정하고, CheckBox1.IMEMode를 1로 설정했다고 가정합니다. 디자인 모드에서, IME 도구 모음을 사용하여 IME를 모드 2로 설정해 놓았다고 가정합니다.

폼을 실행할 때, IME는 모드 2로 시작합니다. TextBox1을 누르면, IME는 이 컨트롤에 대한 IMEMode가 0이기 때문에 변하지 않습니다. CheckBox1을 누르면, IME는 이 컨트롤에 대한 IMEMode가 1이기 때문에 모드 1로 변합니다. TextBox1을 다시 누르면, IME는 모드 1로 남아 있게 됩니다. IMEMode는 0이므로, IME는 마지막 설정을 보유합니다.

그러나, IMEMode를 무시할 수 있습니다. 예를 들어, CheckBox1을 누르고 CheckBox에 대한 IMEMode가 정의한 것처럼 IME가 모드 1로 들어간다고 가정해 봅니다. 그 다음 IME 도구 모음을 사용하여 IME를 모드 3으로 설정한다면, IME는 컨트롤을 누를 때마다 모드 3으로 설정됩니다. 이것은 속성의 값을 바꾸지 않고, 다음에 폼을 실행할 때까지 그 속성을 무시합니다.


Index 속성

Tabs 컬렉션의 Tab 개체나 Pages 컬렉션의 Page 개체의 위치입니다.

구문

object.Index [= Integer]

Index 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Integer | 선택 요소로서 현재 선택한 Tab 개체의 인덱스입니다.

주의

Index 속성은 탭이 나타나는 순서를 지정합니다. Index의 값을 시각적으로 변경하면 TabStrip에서 MultiPage나 Tabs의 Pages 순서를 변경합니다. 첫 번째 페이지나 탭에 대한 인덱스 값은 0이고, 두 번째 페이지나 탭의 인덱스 값은 1 등 순서대로 값이 지정됩니다.

MultiPage에서, Index는 그 페이지의 Tab은 물론이고 Page도 참조합니다. TabStrip에서, Index는 탭만 참조합니다.


InsideHeight, InsideWidth 속성

InsideHeight는 폼 안쪽 클라이언트 영역의 높이를 포인트 단위로 반환합니다. InsideWidth는 폼 안쪽 클라이언트 영역의 너비를 포인트 단위로 반환합니다.

구문

object.InsideHeight

object.InsideWidth

InsideHeight와 InsideWidth 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

InsideHeight와 InsideWidth 속성은 읽기 전용입니다. 영역에 스크롤 막대가 있다면, 반환되는 값에는 스크롤 막대의 높이나 너비가 포함되지 않습니다.


IntegralHeight 속성

ListBox 또는 TextBox가 목록이나 일부분의 줄에서 텍스트의 전체 줄을 표시할 것인지의 여부를 가리킵니다.

구문

object.IntegralHeight [= Boolean]

IntegralHeight 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 목록이 텍스트의 일부 줄을 나타내는지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 목록이 자신의 크기를 조절해서 완전한 항목만 표시하도록 합니다(기본값).
False | 항목이 너무 길어서 완전히 나타나지 않더라도 목록은 자신의 크기를 조절하지 않습니다.

주의

IntegralHeight 속성은 마치 AutoSize 속성이 목록의 너비와 관련되어 있는 것처럼 목록의 높이와 관련되어 있습니다.

IntegralHeight가 True이면, 목록 상자의 전체 행을 보여줄 필요가 있을 때 자동으로 크기가 조절됩니다. False이면, 목록은 고정 크기로 남아 있습니다. 항목이 목록에서 사용 가능한 공간보다 길면, 항목 전체가 보이지 않습니다.


KeepScrollBarsVisible 속성

스크롤 막대가 필요하지 않을 때도 보이게 하는지의 여부를 지정합니다.

구문

object.KeepScrollBarsVisible [= fmScrollBars]

KeepScrollBarsVisible 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmScrollBars | 선택 요소로서 스크롤 막대를 표시할 장소를 지정합니다.

설정

fmScrollBars에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmScrollBarsNone | 0 | 아무런 스크롤 막대도 표시하지 않습니다.
fmScrollBarsHorizontal | 1 | 가로 스크롤 막대를 표시합니다.
fmScrollBarsVertical | 2 | 세로 스크롤 막대를 표시합니다.
fmScrollBarsBoth | 3 | 가로, 세로 스크롤 막대를 모두 표시합니다(기본값).

주의

보이는 영역이 Page 개체나 폼 같은 개체의 컨트롤을 모두 표시할 만큼 충분히 크면, 스크롤 막대는 필요하지 않습니다. KeepScrollBarsVisible 속성은 스크롤 막대가 필요 없을 때도 스크롤 막대를 보이게 할지를 결정합니다.

스크롤 막대가 필요 없을 때도 보이게 하면, 표준 크기로 나타나고 스크롤 상자는 스크롤 막대의 너비나 높이를 꽉 채우게 됩니다.


LargeChange 속성

사용자가 스크롤 상자와 스크롤 화살표 사이를 클릭할 때 발생하는 이동량을 지정합니다.

구문

object.LargeChange [= Long]

LargeChange 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 Value 속성에 대한 변화량을 지정하는 정수입니다.

주의

LargeChange 속성은 ScrollBar에만 적용됩니다. TextBox나 드롭다운 ComboBox와 같이, 다른 컨트롤의 스크롤 막대에는 적용되지 않습니다.

LargeChange의 값은 사용자가 스크롤 상자와 스크롤 화살표 사이의 영역을 클릭할 때 ScrollBar's Value 속성이 변하는 양입니다. 이동의 방향은 항상 사용자가 클릭하는 곳으로 향합니다. 예를 들어, 가로 ScrollBar에서 스크롤 상자의 왼쪽을 클릭하면 스크롤 상자가 왼쪽으로 움직입니다. 세로 ScrollBar에서 스크롤 상자의 위쪽을 클릭하면 스크롤 상자가 위쪽으로 움직입니다.

LargeChange는 단위가 없습니다. 정수면 모두 LargeChange에 대해 유효한 설정입니다. 권장하는 값의 범위는 –32,767부터 +32,767까지이고, 그 값은 ScrollBar의 Max 속성과 Min 속성의 값 사이에 있는 값이어야 합니다.


LayoutEffect 속성

컨트롤이 레이아웃 변경 시에 움직이는지의 여부를 지정합니다.

구문

object.LayoutEffect

LayoutEffect 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

반환값

LayoutEffect 인수는 다음과 같은 값을 가지고 있습니다.

상수 | 값 | 설명
fmLayoutEffectNone | 0 | 컨트롤이 움직이지 않았습니다.
fmLayoutEffectInitiate | 1 | 컨트롤이 움직입니다.

주의

LayoutEffect 속성은 읽기 전용이고, Layout 이벤트에서만 사용 가능합니다. Layout 이벤트는 Layout 인수가 True일 때 Move 메서드를 시작합니다.

Layout 이벤트는 컨트롤의 Left, Top, Height, Width 속성의 설정을 변경할 때는 시작되지 않습니다.

Layout 이벤트는 이동 동작에 관여하는 컨트롤에 대한 LayoutEffect를 설정합니다. 예를 들어, 컨트롤의 그룹을 옮기면, 각 컨트롤의 LayoutEffect가 설정됩니다.


Left, Top 속성

컨트롤과 그 컨트롤을 포함하는 폼의 왼쪽 혹은 위 가장자리 사이의 거리입니다.

구문

object.Left [= Single]

object.Top [= Single]

Left와 Top 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Single | 선택 요소로서 개체의 좌표를 지정하는 수식입니다.

설정

Left 또는 Top 속성을 0으로 설정하면, 컨트롤의 가장자리가 그 컨트롤이 있는 컨테이너의 왼쪽 혹은 위 가장자리에 있게 됩니다.

주의

대부분의 시스템의 경우, Left와 Top에 대해서 권장하는 값의 범위는 -32,767부터 +32,767까지입니다. 다른 값도 시스템 구성에 따라 동작할 수 있습니다. ComboBox의 경우, Left와 Top의 값은 그 컨트롤의 텍스트 부분에 적용되고, 목록 부분에는 적용되지 않습니다. 컨트롤을 옮기거나 컨트롤의 크기를 조절할 때, 새 Left 설정이 자동으로 속성 시트에 입력됩니다. 폼을 인쇄할 때, Left나 Top 설정으로 그 컨트롤의 가로 혹은 세로 위치를 결정합니다.


LineCount 속성

TextBox나 ComboBox에서 텍스트 줄의 수를 반환합니다.

구문

object.LineCount

LineCount 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

LineCount 속성은 읽기 전용입니다.

참고 ComboBox는 줄 하나만 가지게 됩니다.


List 속성

ListBox나 ComboBox의 목록 항목을 반환하거나 설정합니다.

구문

object.List( row, column ) [= Variant]

List 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
row | 필수 요소로서 0부터 목록 항목 개수 이하까지의 범위를 갖는 정수입니다.
column | 필수 요소로서 0부터 열의 개수 이하까지의 범위를 갖는 정수입니다.
Variant | 선택 요소로서 ListBox나 ComboBox에서 지정한 항목의 내용입니다.

설정

행과 열은 0으로 번호를 매기기 시작합니다. 즉, 목록에서 첫째 행의 행 번호는 0이고, 첫째 열의 열 번호는 0입니다. 둘째 행 번호 또는 열의 번호는 1, 이런 식입니다.

주의

List 속성은 ListCount와 ListIndex 속성과 함께 작용합니다. List를 사용하여 목록 항목을 액세스합니다. 목록은 다양한 배열로 되어 있으며, 목록의 각 항목에는 행 번호와 열 번호가 있습니다.

초기에 ComboBox와 ListBox에는 빈 목록을 포함합니다.

참고 ComboBox나 ListBox에서 표시하고 싶은 항목을 지정하려면, AddItem 메서드를 사용하십시오. 항목을 제거하려면, RemoveItem 메서드를 사용합니다.

List를 사용하여 2차원 배열로 된 값 전체를 컨트롤에 복사할 수 있습니다. AddItem을 사용하면, 1차원 배열을 읽어들이거나 각 요소를 읽어들일 수 있습니다.


ListCount 속성

컨트롤에서 목록 항목의 수를 반환합니다.

구문

object.ListCount

ListCount 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

ListCount 속성은 읽기 전용입니다. ListCount는 스크롤할 수 있는 행의 개수입니다. ListRows는 한 번에 표시할 수 있는 최대량입니다. ListCount는 항상 ListIndex 속성의 최대값보다 큽니다. 왜냐하면 인덱스 번호는 0으로 시작하고 항목의 수가 1로 시작하기 때문입니다. 아무런 항목도 선택하지 않는다면, ListCount는 0이고 ListIndex는 -1입니다.


ListIndex 속성

ListBox나 ComboBox에서 현재 선택한 항목을 식별합니다.

구문

object.ListIndex [= Variant]

ListIndex 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Variant | 선택 요소로서 컨트롤에서 현재 선택한 항목을 지정합니다.

주의

ListIndex 속성은 목록에서 선택한 행의 인덱스를 포함합니다. ListIndex의 값의 범위는 –1부터 목록에서 행의 총 수 이하의 수(즉, ListCount가 – 1)까지입니다. 아무런 행도 선택하지 않으면, ListIndex는 -1을 반환합니다. 사용자가 ListBox나 ComboBox에서 행을 선택할 때, 시스템은 ListIndex 값을 설정합니다. 목록에서 첫째 행의 ListIndex 값은 0이고, 둘째 행의 값은 1이고, 이런 식입니다.

참고 MultiSelect 속성을 사용하여 여러 항목 선택을 허용하는 ListBox를 만든다면, ListBox(ListIndex 속성보다는)의 Selected 속성은 선택한 행을 식별합니다. Selected 속성은 ListBox에서 행의 개수와 같은 값의 숫자를 가진 배열입니다. 목록 상자의 각 행의 경우, 그 행이 선택되면 Selected는 True이고, 그렇지 않으면 False입니다. 여러 항목 선택을 허용하는 ListBox에서, ListIndex는 현재 그 행을 선택하는지 여부에 상관 없이 포커스가 있는 행의 인덱스를 반환합니다.

ListIndex 값은 콤보 상자나 목록 상자에 대해서 BoundColumn 속성을 0으로 설정해서도 사용할 수 있습니다. BoundColumn이 0이면, 콤보 상자나 목록 상자는 바운드된 기본적인 데이터 원본에 ListIndex와 같은 목록 인덱스 값이 있게 됩니다.


ListRows 속성

목록에 표시할 행의 최대수를 지정합니다.

구문

object.ListRows [= Long]

ListRows 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 행의 최대수를 가리키는 정수입니다. 기본값은 8입니다.

주의

목록에서 항목의 수가 ListRows 속성의 값을 초과하면, 스크롤 막대는 콤보 상자의 목록 상자 부분의 오른쪽 끝에 나타납니다.


ListStyle 속성

ListBox나 ComboBox에서 목록의 시각적인 모양을 지정합니다.

구문

object.ListStyle [= fmListStyle]

ListStyle 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmListStyle | 선택 요소로서 목록의 시각적인 스타일을 지정합니다.

설정

fmListStyle에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmListStylePlain | 0 | 항목의 배경을 반전되게 하여 보통 목록 상자처럼 보이게 합니다.
fmListStyleOption | 1 | 옵션 단추나 다중 선택 목록에 대한 확인란을 보여 줍니다(기본값). 사용자가 그룹에서 항목을 선택할 때, 그룹에서는 그 항목과 관련된 옵션 단추가 선택되고 다른 항목에 대한 옵션 단추는 선택되지 않습니다.

주의

ListStyle 속성으로 ListBox나 ComboBox의 시각적인 프레젠테이션을 변경할 수 있습니다. fmListStylePlain과 다른 설정을 지정하여, 컨트롤의 내용을 개별적인 항목의 그룹으로 표현할 수 있습니다. 이 때 각 항목에는 그것을 선택하는지의 여부를 가리키는 시각적인 대기열이 있습니다.

컨트롤이 한 가지 선택 사항을 지원하면(MultiSelect 속성이 fmMultiSelectSingle로 설정), 사용자는 그룹에서 단추 하나를 누를 수 있습니다. 컨트롤이 다중 선택을 지원하면, 사용자는 그룹에서 단추를 두 가지 이상 누를 수 있습니다.


ListWidth 속성

ComboBox에서 목록의 너비를 지정합니다.

구문

object.ListWidth [= Variant]

ListWidth 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Variant | 선택 요소로서 목록의 너비를 지정합니다. 값이 0이면 목록은 ComboBox와 같은 너비입니다. 기본값은 목록을 컨트롤의 텍스트 부분만큼 넓게 만드는 것입니다.

주의

여러 열로 구성된 목록을 표시하려면, 목록 상자의 모든 열을 알맞은 너비로 갖게 만드는 값을 입력합니다.

팁 콤보 상자를 디자인할 때, 데이터와 세로 스크롤 막대를 표시하기에 충분한 공간을 남겨 두십시오.


Locked 속성

컨트롤의 편집 가능 여부를 지정합니다.

구문

object.Locked [= Boolean]

Locked 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 컨트롤의 편집 가능 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 값을 편집할 수 없습니다.
False | 값을 편집할 수 있습니다(기본값).

주의

컨트롤이 잠겨 있고 사용할 수 있으면, 계속하여 이벤트를 초기화할 수 있고 포커스를 받을 수 있습니다.


MatchEntry 속성

ListBox 또는 ComboBox가 사용자의 입력에 따라 목록을 찾는 방법을 지시하는 값을 반환하거나 설정합니다.

구문

object.MatchEntry [= fmMatchEntry]

MatchEntry 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmMatchEntry | 선택 요소로서 목록에 있는 항목과 비교하는데 사용되는 규칙입니다.

설정

fmMatchEntry 는 다음과 같이 설정할 수 있습니다.

상수 | 값 | 설명
fmMatchEntryFirstLetter | 0 | 기본 일치로서 컨트롤은 입력된 문자로 시작되는 다음 항목을 찾습니다. 동일한 문자 순환을 반복하여 입력하면 그 문자로 시작하는 모든 항목을 차례로 찾아갈 수 있습니다.
FmMatchEntryComplete | 1 | 확장 일치로서 문자를 입력할 때마다 입력된 모든 문자를 포함하는 일치하는 항목을 찾습니다(기본값).
FmMatchEntryNone | 2 | 일치하는 항목이 없습니다.

주의

MatchEntry 속성은 ListBox 또는 ComboBox의 TextColumn 속성으로 항목을 찾습니다.

컨트롤은 TextColumn이 지정한 열에서 사용자가 입력한 항목과 일치하는 항목을 찾습니다. 일치하는 항목을 찾아, 일치하는 항목이 있는 행이 선택되면, 그 열의 내용이 표시됩니다. 그 열의 BoundColumn 속성의 내용은 컨트롤의 값을 가지게 됩니다. 일치하는 항목이 명확할 경우에는 일치하는 항목을 찾으려는 Click 이벤트가 초기화됩니다.

사용자가 입력한 문자열과 정확히 일치하는 항목이 목록에서 발견되면 컨트롤은 Click 이벤트를 시작합니다. 사용자가 문자를 입력하면, 입력된 항목은 목록의 현재 행과 다음 행을 비교합니다. 만일 입력값이 현재 행에만 일치할 경우 일치하는 항목이 명확하다고 합니다.

Microsoft Forms의 경우 이 정의는 목록의 정렬 여부와 무관하게 적용됩니다. 이는 컨트롤이 목록에 있는 순서에 따라 검색을 하여 처음 일치하는 항목을 찾음을 의미합니다. 예를 들어, 아래와 같은 목록에서 "abc"나 "bc"를 입력하면 모두 Click 이벤트가 시작됩니다.

abcde
bcdef
abcxyz
bchij

두 경우 모두 일치하는 항목이 고유하지 않다는 사실을 유의하십시오. 하지만 인접하는 항목과는 상당히 다르기 때문에 컨트롤은 일치하는 항목이 명확하다고 판단하고 Click 이벤트를 시작하게 됩니다.


MatchFound 속성

사용자가 콤보 상자에 입력한 텍스트와 일치하는 항목이 목록에 있는지의 여부를 지정합니다.

구문

object.MatchFound

MatchFound 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

반환값

MatchFound 속성이 반환하는 값은 다음과 같습니다.

값 설명

True | Value 속성의 내용이 목록 내의 레코드와 일치합니다.
False | Value 속성의 내용이 목록 내의 레코드와 일치하지 않습니다(기본값).

주의

MatchFound 속성은 읽기 전용입니다. MatchEntry 속성이 fmMatchEntryNone으로 설정되었을 때는 적용할 수 없습니다.


MatchRequired 속성

ComboBox의 텍스트 부분에 입력된 값이 반드시 컨트롤의 기존 목록에 존재하는 항목과 일치해야 하는지의 여부를 결정합니다. 일치하지 않는 값을 컨트롤에 입력할 수는 있지만, 일치하는 값이 입력되기 전까지는 컨트롤을 떠날 수 없습니다.

구문

object.MatchRequired [= Boolean]

MatchRequired 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 입력된 텍스트가 목록에 있는 항목과 일치해야 하는지를 지정합니다.

설정

Boolean은 다음과 같이 설정할 수 있습니다.

값 | 설명
True | 입력된 텍스트는 목록의 기존 항목과 반드시 일치해야 합니다.
False | 입력된 텍스트는 기존 목록의 항목과 일치하지 않을 수 있습니다(기본값).

주의

MatchRequired 속성이 True이면 기존 목록의 항목과 일치하는 텍스트가 입력되기 전까지 ComboBox를 빠져나갈 수 없습니다. MatchRequired는 사용자가 기존의 항목을 선택하도록 함으로써 목록의 무결성을 유지합니다.

참고 모든 컨테이너가 반드시 이 속성을 요구하지는 않습니다.


Max, Min 속성

ScrollBar 또는 SpinButton의 Value 속성에 입력할 수 있는 최대, 최소값을 지정합니다.

구문

object.Max [= Long]

object.Min [= Long]

Max와 Min 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 Value 속성의 최대 및 최소값 설정을 지정하는 수식입니다.

주의

SpinButton을 클릭하거나 ScrollBar에서 스크롤 상자를 움직이면 컨트롤의 Value 속성이 변경됩니다.

Max 속성의 값은 세로 ScrollBar의 최저 위치 또는 가로 ScrollBar의 맨 오른쪽 위치에 영향을 받습니다. Min 속성의 값은 세로 ScrollBar의 최고 위치 또는 가로 ScrollBar의 맨 왼쪽 위치에 영향을 받습니다.

이 속성에는 모든 정수를 입력할 수 있습니다. 권장값의 범위는 -32,767에서 +32,767까지입니다. 기본값은 1입니다.

참조 Min과 Max는 ScrollBar의 상대값이 아니라 위치를 나타냅니다. 따라서 Max 값이 Min 값보다 적을 수도 있습니다. 이 경우 Max(아래) 위치를 향해 움직이면 Value가 감소하며, Min(위) 위치를 향해 움직이면 Value가 증가합니다.


MaxLength 속성

TextBox 또는 ComboBox에 사용자가 입력할 수 있는 문자의 최대수를 지정합니다.

구문

object.MaxLength [= Long]

MaxLength 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 입력 가능한 문자의 수를 나타내는 정수입니다.

주의

MaxLength 속성을 0으로 설정하면 메모리 제약으로 생기는 다른 제한은 받지 않게 됩니다.


MouseIcon 속성

개체에 사용자 정의 아이콘을 지정합니다.

구문

object.MouseIcon = LoadPicture( pathname )

MouseIcon 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
pathname | 필수 요소로서 사용자 정의 아이콘을 포함하는 파일의 경로와 이름을 지정하는 문자열 식입니다.

주의

MouseIcon 속성은 MousePointer 속성이 99로 설정되었을 때 유효합니다. 개체의 마우스 아이콘은 사용자가 마우스를 개체 위로 지나가게 할 때 나타나는 이미지입니다.

마우스 포인터로 사용하기 위한 이미지를 지정하려면 MouseIcon 속성에 그림을 지정하거나 LoadPicture 함수를 사용하여 파일에서 그림을 읽어와야 합니다.


MousePointer 속성

사용자가 마우스를 특정한 개체 위로 이동시켰을 때 나타나는 포인터의 형식을 지정합니다.

구문

object.MousePointer [= fmMousePointer]

MousePointer 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmMousePointer | 선택 요소로서 마우스 포인터로 사용하고 싶은 모형을 지정합니다.

설정

fmMousePointer에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmMousePointerDefault | 0 | 표준 포인터로서 이미지는 개체에 의해 결정됩니다(기본값).
fmMousePointerArrow | 1 | 화살표
fmMousePointerCross | 2 | 십자 모양 포인터
fmMousePointerIBeam | 3 | I형 포인터
fmMousePointerSizeNESW | 6 | 북동쪽과 남서쪽을 가리키는 이중 화살표
fmMousePointerSizeNS | 7 | 북쪽과 남쪽을 가리키는 이중 화살표
fmMousePointerSizeNWSE | 8 | 북서쪽과 남동쪽을 가리키는 이중 화살표
fmMousePointerSizeWE | 9 | 서쪽과 동쪽을 가리키는 이중 화살표
fmMousePointerUpArrow | 10 | 위쪽을 가리키는 화살표
fmMousePointerHourglass | 11 | 모래 시계
fmMousePointerNoDrop | 12 | 끌기 작업 중인 있는 개체 위에 금지 표시(대각선이 그려진 원)가 그려진 것입니다. 드롭할 수 없는 위치를 나타냅니다.
fmMousePointerAppStarting | 13 | 모래 시계가 있는 화살표
fmMousePointerHelp | 14 | 물음표가 있는 화살표
fmMousePointerSizeAll | 15 | 동서남북을 모두 가리키는 화살표
fmMousePointerCustom | 99 | MouseIcon 속성에 의해 지정된 아이콘을 사용

주의

MousePointer 속성은 마우스 포인터가 폼의 컨트롤 위를 지나갈 때의 기능 변화를 나타내고 싶을 때 사용하는 것입니다. 예를 들어, 모래 시계 설정(11)은 사용자에게 컴퓨터가 현재 작업을 완료하거나 처리 과정을 기다려야 한다는 사실을 가리킬 때 유용합니다.

바탕 화면 테마에 관련되는 아이콘들은 시스템 설정에 따라 바뀔 수도 있습니다.


MultiLine 속성

컨트롤이 여러 줄의 텍스트를 표시할 수 있는지의 여부를 지정합니다.

구문

object.MultiLine [= Boolean]

MultiLine 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 컨트롤의 한 줄 이상의 텍스트 지원 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 텍스트가 여러 줄에 걸쳐 표시됩니다(기본값).
False | 텍스트가 여러 줄에 걸쳐 표시되지 않습니다.

주의

여러 줄 TextBox는 절대 줄 바꿈이 허용되고, 입력된 텍스트를 수용하기 위해 줄의 수를 조절합니다. 필요한 경우 여러 줄 컨트롤은 세로 스크롤 막대를 가질 수 있습니다.

한 줄 TextBox는 절대 줄 바꿈이 허용되지 않으며 세로 스크롤 막대도 사용하지 않습니다.

한 줄 컨트롤은 WordWrap 속성의 값을 무시합니다.

참고 여러 줄 TextBox 안에서 MultiLine을 False로 변경하면, TextBox의 모든 문자는 캐리지 리턴이나 줄 바꿈과 같은 출력되지 않는 문자를 포함하여 한 줄로 합쳐집니다.


MultiRow 속성

컨트롤이 탭을 하나 이상 가질 수 있는지를 지정합니다.

구문

object.MultiRow [= Boolean]

MultiRow 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 컨트롤이 행의 탭을 하나 이상 가질 수 있는지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 탭을 행 하나 이상 허용합니다.
False | 탭을 행 하나로 제한합니다(기본값).

주의

행의 수는 탭의 수와 너비에 의해 결정됩니다. 컨트롤의 크기를 변경하는 것 역시 행의 수를 변경합니다. 이것은 개발자가 컨트롤의 크기를 조절하면 탭이 컨트롤의 크기에 맞추어 접히도록 허용합니다. MultiRow 속성이 False인 경우 탭의 너비가 컨트롤의 너비보다 크다면 끝부분이 잘리게 됩니다.

MultiRow 속성이 False이고 탭의 끝부분이 잘릴 경우에는 TabStrip에 작은 스크롤 막대가 생겨 다른 탭이나 페이지로 스크롤할 수 있게 됩니다.


MultiSelect 속성

개체의 여러 개 선택이 허용되는지 여부를 지정합니다.

구문

object.MultiSelect [= fmMultiSelect]

MultiSelect 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmMultiSelect | 선택 요소로서 컨트롤이 사용하는 선택 모드를 지정합니다.

설정

fmMultiSelect에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmMultiSelectSingle | 0 | 개체 하나만 선택할 수 있습니다(기본값).
fmMultiSelectMulti | 1 | 스페이스바를 누르거나 클릭하여 목록에서 항목을 선택하거나 해제합니다.
fmMultiSelectExtended | 2 | Shift 키를 누른 상태에서 마우스를 클릭하거나 Shift 키를 누른 상태에서 화살표 키 중 하나를 누르면 이미 선택된 항목과 현재 항목 사이에 있는 모든 항목이 선택됩니다. Ctrl 키를 누른 상태에서 마우스를 클릭하면 한 항목씩 선택하거나 해제됩니다.

주의

MultiSelect 속성이 Extended나 Simple로 설정되면 목록 상자의 Selected 속성을 사용하여 선택된 항목을 확인해야 합니다. 또한, 컨트롤의 Value 속성은 언제나 Null이 됩니다.

ListIndex 속성은 키보드 포커스로 행의 인덱스를 반환합니다.


Name 속성

컨트롤이나 개체의 이름을 지정합니다. Font 개체와 관련된 글꼴의 이름을 지정하기도 합니다.

구문

글꼴인 경우
Font.Name [= String]

다른 모든 컨트롤과 개체인 경우,
object.Name [= String]

Name 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 글꼴이나 컨트롤에 지정하고 싶은 이름을 지정합니다.

설정

이름의 최대 길이와 같은, Name에 지정할 문자열에 대한 권장 사항은 응용 프로그램에 따라 다릅니다.

주의

개체의 경우, Name의 기본값은 개체의 클래스 이름 다음에 정수가 나오는 형태로 구성됩니다. 예를 들어, 폼에서 처음 TextBox의 기본 이름은 TextBox1입니다. 두 번째 TextBox의 기본 이름은 TextBox2가 됩니다.

Name 속성은 컨트롤의 속성 시트에서 설정할 수 있습니다. 런타임에서 추가되는 컨트롤에는 프로그램 명령문을 이용하여 설정할 수 있습니다. 디자인 모드에서 컨트롤을 추가하면 런타임에서 Name 속성을 수정할 수 없습니다.

디자인 모드에서 폼에 추가되는 각 컨트롤은 고유한 이름을 가져야 합니다.

Font 개체의 경우, Name은 컨트롤, 개체 또는 폼의 텍스트 부분에 사용할 특정 서체를 구분합니다. 화면에 나타나는 글꼴의 모양과 출력 시 나타나는 모양은 컴퓨터와 프린터에 따라 다를 수도 있습니다. 시스템이 표시할 수 없거나 설치되지 않은 글꼴을 선택할 경우 운영 체제는 비슷한 글꼴을 대신 사용하게 됩니다.


Object 속성

새 컨트롤이 같은 이름의 메서드나 속성을 갖는 경우, 표준 속성 또는 표준 메서드를 덮어씁니다.

구문

object.Object[.property |.method]

Object 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 Microsoft Forms 도구 상자에 추가한 개체 이름을 지정합니다.
property | 선택 요소로서 속성은 표준 Microsoft Forms 속성과 같은 이름을 지정합니다.
method | 선택 요소로서 메서드는 표준 Microsoft Forms 메서드와 같은 이름을 지정합니다.

주의

Object는 읽기 전용입니다.

Microsoft Forms 도구 상자에 새 컨트롤을 추가시키면, 추가된 컨트롤은 표준 Microsoft Forms 속성 또는 메서드와 같은 이름의 속성이나 메서드를 가질 수 있습니다. 그리고 Object 속성을 사용하면, 표준 속성과 표준 메서드가 아닌 추가된 컨트롤에서 속성 또는 메서드를 사용할 수 있습니다.


OldHeight, OldWidth 속성

컨트롤의 이전의 높이와 너비를 포인트 단위로 반환합니다.

구문

object.OldHeight

object.OldWidth

OldHeight와 OldWidth 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

OldHeight와 OldWidth는 읽기 전용입니다.

OldHeight와 OldWidth 속성은 컨트롤을 움직이거나 크기를 바꿀 때마다 자동적으로 변경됩니다. 컨트롤의 크기를 바꾸면 Height와 Width 속성이 각각 새로운 높이와 너비의 값을 저장하며, OldHeight와 OldWidth는 각각 이전의 높이와 너비를 저장합니다.

이들 속성은 Layout 이벤트에서만 유효합니다.


OldLeft, OldTop 속성

컨트롤의 이전 위치와 컨트롤을 포함하는 폼의 왼쪽 혹은 위쪽 가장자리 사이의 거리를 포인트 단위로 반환합니다.

구문

object.OldLeft

object.OldTop

OldLeft와 OldTop 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

OldLeft와 OldTop는 읽기 전용입니다.

OldLeft와 OldTop 속성은 컨트롤을 이동시키거나 크기를 바꿀 때마다 자동적으로 변경됩니다. 컨트롤을 이동시키면 Left와 Top 속성은 컨트롤에서 컨테이너의 왼쪽 가장자리까지의 새로운 거리를 저장하며, OldLeft와 OldTop 속성에는 각각 Left의 이전 값이 저장됩니다.

OldLeft와 OldTop 속성은 Layout 이벤트에서만 유효합니다.


Orientation 속성

SpinButton이나 ScrollBar의 방향이 세로 또는 가로인지의 여부를 지정합니다.

구문

object.Orientation [= fmOrientation]

Orientation 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmOrientation | 선택 요소로서 컨트롤의 방향을 지정합니다.

설정

fmOrientation에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmOrientationAuto | –1 | 컨트롤의 차원을 기본으로 방향을 자동적으로 결정합니다(기본값).
FmOrientationVertical | 0 | 컨트롤은 세로로 나타납니다.
FmOrientationHorizontal | 1 | 컨트롤은 가로로 나타납니다.

주의

방향 지정을 자동으로 설정하면 컨트롤의 높이와 너비가 가로 또는 세로로 보이게 할 방향을 결정하게 됩니다. 예를 들어, 컨트롤의 너비가 높이보다 길면 컨트롤은 가로 방향으로 설정됩니다. 만일 높이가 더 길면 컨트롤은 세로로 나타납니다.


Parent 속성

특정한 컨트롤, 개체, 컬렉션을 포함한 개체, 폼 또는 컬렉션의 이름을 반환합니다.

구문

object.Parent

Parent 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

Parent는 읽기 전용입니다.

부모 개체의 속성, 메서드, 컨트롤에 접근하려면 Parent 속성을 사용합니다.

이 속성은 개체를 인수로 전달하는 응용 프로그램에서 유용합니다. 예를 들어, 컨트롤 변수를 모듈 내의 일반 프로시저에 전달한 후 그 부모 폼에 액세스하기 위하여 Parent를 사용합니다.


PasswordChar 속성

TextBox에 실제로 문자 대신 자리 표시자 문자를 표시할 것인지의 여부를 지정합니다.

구문

object.PasswordChar [= String]

PasswordChar 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 자리표시자 문자의 문자열 식을 지정합니다.

주의

PasswordChar 속성을 사용하여 암호나 보안 코드 등의 민감한 정보를 보호할 수 있습니다. PasswordChar의 값은 사용자가 입력하는 실제 문자 대신 컨트롤에 나타날 문자입니다. 문자를 지정하지 않을 경우 컨트롤에는 사용자가 입력한 문자가 표시됩니다.


Picture 속성

개체 위에 표시할 비트맵을 지정합니다.

구문

object.Picture = LoadPicture( pathname )

Picture 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
pathname | 필수 요소로서 그림 파일의 전체 경로를 지정합니다.

주의

폼을 디자인하는 동안 컨트롤의 속성 페이지를 사용하여 비트맵을 Picture 속성에 지정할 수 있습니다. 폼을 실행시키는 동안은 LoadPicture 함수를 이용해야만 Picture에 비트맵을 지정할 수 있습니다.

컨트롤에 지정된 그림을 제거하려면 속성 페이지 내의 Picture 속성 값을 클릭한 후 Delete 키를 누릅니다. 스페이스바를 눌렀을 때에는 그림이 제거되지 않습니다.

참고 캡션을 가지는 컨트롤의 경우, PicturePosition 속성을 이용하여 개체 위에 그림을 표시할 것인지 정할 수 있습니다. PictureSizeMode 속성을 사용하여 그림이 개체를 어떻게 채울지 결정할 수 있습니다.

투명한 그림들은 가끔 흐리게 모양을 갖습니다. 만약, 이 모양을 원하지 않을 경우, 불투명 이미지를 지원하는 컨트롤 위에 그림을 표시합니다. Image와 MultiPage가 불투명 이미지를 지원합니다.


PictureAlignment 속성

배경 그림의 위치를 지정합니다.

구문

object.PictureAlignment [= fmPictureAlignment]

PictureAlignment 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmPictureAlignment | 선택 요소로서 컨트롤과 함께 배열할 그림의 위치를 지정합니다.

설정

fmPictureAlignment에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmPictureAlignmentTopLeft | 0 | 왼쪽 위 모서리
fmPictureAlignmentTopRight | 1 | 오른쪽 위 모서리
fmPictureAlignmentCenter | 2 | 가운데
fmPictureAlignmentBottomLeft | 3 | 왼쪽 아래 모서리
fmPictureAlignmentBottomRight | 4 | 오른쪽 아래 모서리

주의

PictureAlignment 속성은 컨트롤이나 컨테이너의 어느 모서리가 그 속에 들어갈 그림의 해당 모서리와 일치할지 결정합니다.

예를 들어, PictureAlignment를 fmPictureAlignmentTopLeft로 설정할 경우 그림의 왼쪽 위 모서리가 컨트롤이나 컨테이너의 왼쪽 위 모서리와 일치합니다. PictureAlignment를 fmPictureAlignmentCenter로 설정할 경우 그림은 컨트롤이나 컨테이너의 너비만큼 높이에 비례하여 중앙에 위치하게 됩니다.

이미지를 컨트롤이나 컨테이너에 바둑판식으로 배열할 경우에는 PIctureAlignment 속성이 배열 패턴에 영향을 미칩니다. 예를 들어, PIctureAlignment 속성이 fmPictureAlignmentUpperLeft으로 설정되면 첫 번째 복사된 이미지가 컨트롤이나 컨테이너의 왼쪽 위 모서리에 위치하며 추가로 복사된 이미지들은 첫 번째 이미지를 기준으로 왼쪽에서 오른쪽으로 한 줄씩 차례로 배열됩니다. PIctureAlignment 속성이 fmPictureAlignmentCenter로 설정되면 첫 번째 복사된 이미지는 컨트롤이나 컨테이너의 중앙에 위치하며 추가로 복사된 이미지들은 첫 번째 이미지를 기준으로 좌우로 차례로 배열되어 한 줄을 완성합니다. 그 후 아래 위로 한 줄씩 이미지가 추가되어 컨트롤이나 컨테이너를 모두 채우게 됩니다.

참고 PictureSizeMode 속성을 fmSizeModeStretch로 설정하면 PictureAlignment는 무시됩니다. PictureSizeMode 속성을 fmSizeModeStretch로 설정하면 그림은 컨트롤이나 컨테이너를 전부 채웁니다.


PicturePosition 속성

캡션과 비례하여 그림의 위치를 지정합니다.

구문

object.PicturePosition [= fmPicturePosition]

PicturePosition 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmPicturePosition | 선택 요소로서 컨테이너와 그림의 배열 방법을 지정합니다.

설정

fmPicturePosition에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmPicturePositionLeftTop | 0 | 그림은 캡션 왼쪽에 표시됩니다. 캡션은 그림의 맨 위에 위치합니다.
fmPicturePositionLeftCenter | 1 | 그림은 캡션 왼쪽에 표시됩니다. 캡션은 그림과 비례하여 중앙에 위치합니다.
fmPicturePositionLeftBottom | 2 | 그림은 캡션 왼쪽에 표시됩니다. 캡션은 그림의 맨 아래에 위치합니다.
fmPicturePositionRightTop | 3 | 그림은 캡션 오른쪽에 표시됩니다. 캡션은 그림의 맨 위에 위치됩니다.
fmPicturePositionRightCenter | 4 | 그림은 캡션 오른쪽에 표시됩니다. 캡션은 그림과 비례하여 중앙에 위치합니다.
fmPicturePositionRightBottom | 5 | 그림은 캡션 오른쪽에 표시됩니다. 캡션은 그림의 맨 아래에 위치합니다.
fmPicturePositionAboveLeft | 6 | 그림은 캡션 위에 표시됩니다. 캡션은 그림의 왼쪽 가장자리에 위치합니다.
fmPicturePositionAboveCenter | 7 | 그림은 캡션 위에 표시됩니다. 캡션은 그림 아래의 중앙에 위치합니다(기본값).
fmPicturePositionAboveRight | 8 | 그림은 캡션 위에 표시됩니다. 캡션은 그림의 오른쪽 가장자리에 위치합니다.
fmPicturePositionBelowLeft | 9 | 그림은 캡션 아래에 표시됩니다. 캡션은 그림의 왼쪽 가장자리에 위치합니다.
fmPicturePositionBelowCenter | 10 | 그림은 캡션 아래에 표시됩니다. 캡션은 그림과 비례하여 중앙에 위치합니다.
fmPicturePositionBelowRight | 11 | 그림은 캡션 아래에 표시됩니다. 캡션은 그림의 오른쪽 가장자리에 위치합니다.
fmPicturePositionCenter | 12 | 그림은 컨트롤의 중앙에 표시됩니다. 캡션은 그림 위에 가로와 세로의 중앙에 위치합니다.

주의

그림과 캡션이 하나의 단위로 컨트롤의 중앙에 위치합니다. 캡션이 존재하지 않으면 그림의 위치는 컨트롤의 중앙에 비례하여 결정됩니다.

Picture 속성이 그림을 지정하지 않았을 경우에는 이 속성은 무시됩니다.


PictureSizeMode 속성

컨트롤, 폼 또는 페이지에 배경 그림을 표시하는 방법을 지정합니다.

구문

object.PictureSizeMode [= fmPictureSizeMode]

PictureSizeMode 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmPictureSizeMode | 선택 요소로서 그림의 크기가 폼 또는 페이지와 다를 경우에 취할 작업을 지정합니다.

설정

fmPictureSizeMode에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmPictureSizeModeClip | 0 | 그림의 일부분이 폼이나 페이지보다 크면 잘라냅니다(기본값).
fmPictureSizeModeStretch | 1 | 그림을 늘여서 폼이나 페이지에 맞춥니다. 이 설정은 그림의 모양을 가로 혹은 세로 방향으로 왜곡시킵니다.
fmPictureSizeModeZoom | 3 | 그림을 확대하지만 세로, 가로 방향으로 왜곡하지는 않습니다.

주의

fmPictureSizeModeClip 설정은 그림을 원래 크기와 모양 그대로 보여줍니다. 만일 폼이나 페이지가 그림보다 작을 경우에는 그림이 폼 또는 페이지 안에 채워져 그림의 일부분만 보입니다.

fmPictureSizeModeStretch와 fmPictureSizeModeZoom 설정은 모두 그림을 확대하지만, fmPictureSizeModeStretch 설정은 그림의 모양을 왜곡시킵니다. fmPictureSizeModeStretch 설정은 이미지를 세로, 가로 방향으로 해당하는 컨테이너나 컨트롤의 가장자리에 맞추도록 이미지를 확대합니다. fmPictureSizeModeZoom 설정은 이미지가 세로나 가로 가장자리 중 하나에 먼저 도달할 경우 이미지의 확대를 멈추고 남은 부분은 빈 공간으로 남겨둡니다. 만일 세로 가장자리에 먼저 이미지가 도달한다면 가로 가장자리까지의 남은 부분은 빈 공간으로 남습니다.


PictureTiling 속성

폼이나 페이지에 그림을 바둑판식으로 배열합니다.

구문

object.PictureTiling [= Boolean]

PictureTiling 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 그림을 배경에 교차하여 반복할지를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 그림이 배경에 교차하여 바둑판식으로 배열됩니다.
False | 그림이 배경에 교차하여 바둑판식으로 배열되지 않습니다(기본값).

주의

그림이 폼이나 페이지보다 작을 경우에 그림을 폼이나 페이지에 바둑판식으로 배열할 수 있습니다.

바둑판 배열 방식은 PictureAlignment와 PictureSizeMode 속성의 현재 설정에 좌우됩니다. 예를 들어, PictureAlignment가 fmPictureAlignmentTopLeft로 설정된 경우에는 폼이나 페이지의 왼쪽 위에서 그림이 반복되어 위 아래로 그림이 차례로 바둑판식으로 배열을 시작합니다. PictureSizeMode가 fmPictureSizeModeClip으로 설정된 경우, 마지막 그림이 폼이나 페이지와 꼭 들어맞지 않으면 맞지 않는 부분을 잘라냅니다.


ProportionalThumb 속성

스크롤 상자의 크기가 스크롤되는 영역에 비례할 것인지 고정될 것인지 지정합니다.

구문

object.ProportionalThumb [= Boolean]

ProportionalThumb 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 스크롤 상자가 스크롤되는 영역에 비례할 것인지 고정할 것인지를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 스크롤 상자는 스크롤되는 영역의 크기에 비례합니다(기본값).
False | 스크롤 상자의 크기를 고정합니다.

주의

비례 스크롤 상자의 크기는 창에 보여지는 개체의 백분율을 정확하게 나타냅니다. 예를 들어, 75%의 개체가 보일 경우에 스크롤 상자는 스크롤 막대 내의 스크롤되는 영역 크기의 3/4을 차지합니다.

스크롤 상자의 크기가 고정될 경우에 시스템은 스크롤 막대의 높이와 너비를 기준으로 스크롤 상자의 크기를 결정합니다.


RightToLeft 속성(Microsoft Forms)

주어진 폼이 양방향 기능을 지원하는지 지정합니다.

구문

expression.RightToLeft [=value]

주의

RightToLeft 특정 컨트롤에 위치하는 Microsoft Forms 2.0 폼의 새 속성으로서 컨트롤의 속성은 아닙니다. 그러나 RightToLeft가 폼과 컨트롤에 모두 영향을 미칩니다. 다음 표는 이 속성에 대해 가능한 설정에 대한 설명입니다.

설정 | 값
False | 0
True | 1

폼의 RightToLeft 속성이 True로 설정될 때 양뱡향 기능을 가진 Microsoft Forms 2.0 컨트롤에서 지원합니다. 이 속성이 False로 설정되면, 폼과 컨트롤에서 양뱡향 기능을 지원하지 않습니다. 다음 표는 RightToLeft 속성의 양방향 기능에 대한 목록입니다.

Microsoft Forms 2.0 구성 요소 | RightToLeft = True일 경우
모든 폼과 컨트롤 | 수직 스크롤 막대가 폼이나 컨트롤의 왼쪽에 놓입니다. 수평 스크롤 막대의 시작은 오른쪽에서부터이며 오른쪽 끝 부분에 정보가 표시됩니다.
폼 | 제목 표시줄의 캡션이 오른쪽 방향으로 정렬됩니다.
프레임 컨트롤 | 캡션이 프레임의 오른쪽 위에 놓입니다.
TabStrip 컨트롤 및 MultiPage 컨트롤 | TabOrientation 설정은 왼쪽 방향으로 탭이 순서대로 표시됩니다. 즉 첫 탭이 컨트롤의 오른쪽 끝에서부터 시작합니다. TabOrientation = Top이면, 탭이 컨트롤의 위쪽 가장자리를 따라 왼쪽 방향으로 표시됩니다. TabOrientation = Bottom이면, 탭이 컨트롤의 아래쪽 가장자리를 따라 왼쪽 방향으로 표시됩니다. 참고 모든 탭의 총 너비가 컨트롤 너비를 초과하고 MultiRow = False이면, MultiRow = True일 때와 마찬가지로 탭이 왼쪽 방향으로 표시됩니다.

중요 Microsoft Forms 2.0 컨트롤을 Microsoft Forms 2.0 폼이 아닌 컨테이너 표면에 추가하면(예를 들어, TabStrip 컨트롤을 바로 Arabic Word 문서에 추가하면), 컨트롤은 컨테이너가 RightToLeft 속성을 False로 설정한 것과 같은 효과를 지닙니다.

참고 도움말에서 설명된 VerticalScrollBarSide 속성이 이 항목에서 설명한 RightToLeft 속성으로 대체되었습니다. VBA 구문에서 VerticalScrollBarSide에 참조를 사용할 수 있다 할지라도 이 속성은 비활성 상태입니다.


RowSource 속성

ComboBox나 ListBox에 제공되는 목록의 원본을 지정합니다.

구문

object.RowSource [= String]

RowSource 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 ComboBox나 ListBox의 목록의 원본을 지정합니다.

주의

RowSource 속성은 Microsoft Excel의 워크시트 범위를 적용합니다.


ScrollBars 속성

컨트롤, 폼 또는 페이지가 세로 스크롤 막대 또는 가로 스크롤 막대를 갖거나 모두 가지는지의 여부를 지정합니다.

구문

object.ScrollBars [= fmScrollBars]

ScrollBars 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmScrollBars | 선택 요소로서 스크롤 막대가 표시될 위치를 지정합니다.

설정

fmScrollBars에 대한 설명은 다음과 같습니다.

상수 | 값 | 설명
fmScrollBarsNone | 0 | 표시되는 스크롤 막대가 없습니다(기본값).
fmScrollBarsHorizontal | 1 | 가로 스크롤 막대를 표시합니다.
fmScrollBarsVertical | 2 | 세로 스크롤 막대를 표시합니다.
fmScrollBarsBoth | 3 | 가로, 세로 스크롤 막대를 모두 표시합니다.

주의

KeepScrollBarsVisible 속성이 True일 때는 개체의 테두리 안에 채워진 개체의 내용과는 상관 없이 언제나 폼이나 페이지에 있는 모든 스크롤 막대가 표시됩니다.

화면을 보려면, 스크롤 막대의 보이는 영역으로 스크롤 상자를 강제로 조절합니다. 또한 스크롤 막대 전체를 보려면 스크롤 위치를 필요한 만큼 수정합니다. 스크롤 막대의 범위는 ScrollBars 속성의 값이 바뀌거나, 스크롤 크기가 변하거나, 보이는 영역의 크기가 바뀔 때 함께 변경됩니다.

스크롤 막대가 보이지 않으면 스크롤 위치를 어떤 값으로든 설정할 수 있습니다. 음수값과 스크롤 크기보다 큰 값도 허용됩니다.

단일 컨트롤의 경우, ScrollBars와 AutoSize 속성을 이용하여 가로 스크롤 막대를 표시할 수 있습니다. 스크롤 막대은 다음과 같은 규칙에 따라 숨겨지거나 표시됩니다.

  1. ScrollBars 속성이 fmScrollBarsNone으로 설정되면 스크롤 막대는 표시되지 않습니다.

  2. ScrollBars가 fmScrollBarsHorizontal이나 fmScrollBarsBoth로 설정되면, 텍스트가 편집 영역보다 크고 컨트롤이 편집 영역 아래에 스크롤 막대를 표시할 수 있을 정도로 클 경우에 컨트롤은 가로 스크롤 막대를 표시합니다.

  3. AutoSize가 True일 경우에, 컨트롤의 확대는 컨트롤이 최대 크기이거나 최대 크기에 근접하지 않을 때 스크롤 막대를 확대할 수 있도록 자동적으로 조절합니다.

여러 줄의 TextBox에서는 ScrollBars, WordWrap과 AutoSize 등의 속성을 이용하여 스크롤 막대를 표시할 수 있습니다. 스크롤 막대는 다음과 같은 규칙에 따라 숨겨지거나 표시됩니다.

  1. ScrollBars 속성이 fmScrollBarsNone으로 설정되면 스크롤 막대는 표시되지 않습니다.

  2. ScrollBars가 fmScrollBarsVertical이나 fmScrollBarsBoth로 설정되면, 텍스트가 편집 영역보다 크고 컨트롤이 편집 영역의 오른쪽 가장자리에 스크롤 막대를 표시할 수 있을 정도로 클 경우 컨트롤은 세로 스크롤 막대를 표시합니다.

  3. WordWrap이 True일 때 여러 줄의 컨트롤은 가로 스크롤 막대를 표시하지 않습니다. 대부분의 여러 줄의 컨트롤은 가로 스크롤 막대를 사용하지 않습니다.

  4. 여러 줄의 컨트롤은 다음과 같은 조건들이 동시에 만족될 때 가로 스크롤 막대를 표시합니다.
    • 편집 영역의 너비보다 긴 단어가 입력되었을 때

    • 컨트롤이 가로 스크롤 막대를 사용할 수 있을 때

    • 편집 영역 아래에 스크롤 막대를 표시할 수 있을만한 공간이 있을 때

    • WordWrap 속성이 False로 설정되었을 때


ScrollHeight, ScrollWidth 속성

컨트롤, 폼 또는 페이지에 있는 스크롤 막대를 움직여서 볼 수 있는 전체 영역의 높이를 포인트 단위로 지정합니다.

구문

object.ScrollHeight [= Single]

object.ScrollWidth [= Single]

ScrollHeight와 ScrollWidth 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Single | 선택 요소로서 스크롤할 수 있는 영역의 높이와 너비를 지정합니다.


ScrollLeft, ScrollTop 속성

표시된 폼의 왼쪽 또는 위의 가장자리와 논리적 폼, 페이지 또는 컨트롤의 왼쪽 또는 위의 가장자리의 거리를 포인트 단위로 지정합니다.

구문

object.ScrollLeft [= Single]

object.ScrollTop [= Single]

ScrollLeft와 ScrollTop 속성의 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Single | 선택 요소로서 폼의 가장자리 사이의 거리를 지정합니다.

주의

최소값은 0이고 최대값은 폼이나 페이지의 ScrollWidth 속성과 Width 속성의 값 사이의 차이입니다.


Selected 속성

ListBox의 항목 선택 상태를 반환하거나 설정합니다.

구문

object.Selected( index ) [= Boolean]

Selected 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
index | 필수 요소로서 0부터 목록 안에 있는 항목 수보다 작은 정수까지의 범위를 지정합니다.
Boolean | 선택 요소로서 항목의 선택 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 항목이 선택됩니다.
False | 항목이 선택되지 않습니다.

주의

Selected 속성은 사용자가 여러 개 선택할 경우에 유용합니다. 다중 선택 목록 상자 안의 선택된 행을 결정하는데 이 속성이 사용됩니다. 이 속성은 코드로부터 목록에 있는 행을 선택하거나 선택을 해제하는 경우에도 사용될 수 있습니다.

이 속성의 기본값은 ListBox의 현재 선택 상태를 기본으로 합니다.

단일 선택 목록 상자의 경우, Value 또는 ListIndex 속성은 선택된 것을 얻거나 설정하는데 권장됩니다. 이러한 경우에, ListIndex는 선택된 항목의 인덱스를 반환합니다. 그러나 여러 개 선택의 경우, ListIndex는 행이 실제로 선택되었는지에 상관 없이 사각형 포커스 내에 포함된 행의 인덱스를 반환합니다.

목록 상자 컨트롤의 MultiSelect 속성이 None으로 설정되면, 행 하나만 True로 설정된 Selected 속성을 가질 수 있습니다.

인덱스의 범위를 넘는 값이 입력되어도 오류 메시지를 나타내지 않으며 목록의 항목에는 어떤 속성도 설정할 수 없습니다.


SelectedItem 속성

현재 선택된 Tab이나 Page 개체를 반환합니다.

구문

object.SelectedItem

SelectedItem 속성 구문은 아래와 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 TabStrip 또는 MultiPage는 유효합니다.

주의

SelectedItem 속성은 읽기 전용입니다. SelectedItem은 프로그램 상으로 현재 선택된 Tab이나 Page 개체를 제어하기 위해 사용됩니다. 예를 들어, SelectedItem은 Tab 또는 Page 개체의 속성에 값을 지정하기 위해 사용합니다.


SelectionMargin 속성

사용자가 텍스트의 왼쪽 영역 안을 클릭하여 한 줄의 텍스트를 선택할 수 있는지의 여부를 지정합니다.

구문

object.SelectionMargin [= Boolean]

SelectionMargin 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 여백 안을 클릭하면 한 줄의 텍스트가 선택되는지의 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 여백 안을 클릭하면 텍스트의 선택을 합니다(기본값).
False | 여백 안을 클릭해도 텍스트의 선택을 하지 않습니다.

주의

SelectionMargin 속성이 True일 때, 선택 여백은 컨트롤 편집 영역의 왼쪽 가장자리를 따라 얇은 줄무늬 모양을 차지합니다. False일 때는, 전체 편집 영역은 텍스트를 저장할 수 있습니다.

컨트롤이 출력될 때 SelectionMargin 속성이 True로 설정되면, 선택 여백도 함께 출력됩니다.


SelLength 속성

텍스트 상자 또는 콤보 상자의 텍스트 일부분에서 선택된 문자의 수를 나타냅니다.

구문

object.SelLength [= Long]

SelLength 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 수식이 선택된 문자의 수를 지정하는 수식입니다. SelLength와 SelStart를 위한 설정의 유효한 범위는 0부터, ComboBox 또는 TextBox의 편집 영역 안에 있는 문자 수의 합까지입니다.

주의

컨트롤이 포커스를 갖지 않더라도, SelLength 속성은 항상 유효합니다. SelLength 값을 0보다 작게 설정하면 오류가 생깁니다. SelLength 값을 컨트롤 안에서 사용 가능한 문자열의 수보다 크게 설정하면, 그 값은 컨트롤의 문자열 수와 같게 됩니다.

참고 SelStart 속성 값을 변경시키면 컨트롤 안에 있는 기존의 선택을 모두 취소하게 되며, 삽입 지점을 텍스트 안에 두고 SelLength를 0으로 설정합니다.

기본값이 0으로, 어떤 텍스트도 현재 선택되지 않음을 의미합니다.


SelStart 속성

선택된 텍스트의 시작 지점을 표시하거나 텍스트가 선택되어 있지 않으면 삽입 지점을 표시합니다.

구문

object.SelStart [= Long]

SelStart 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 한 개의 수식이 선택된 텍스트의 시작 지점을 지정합니다. SelLength와 SelStart의 경우, 설정의 유효 범위는 0부터 ComboBox 또는 TextBox의 편집 영역에 있는 문자 수의 합까지입니다. 기본값은 0입니다.

주의

컨트롤이 포커스를 갖지 않더라도 SelStart 속성은 언제나 유효합니다. SelStart 값을 0보다 작게 설정하면 오류가 생깁니다. SelStart 값을 컨트롤 안에서 사용 가능한 문자 수보다 크게 설정하면, 그 값은 컨트롤의 문자열 수와 같게 됩니다.

SelStart 값을 변경시키면 컨트롤 안에 있는 기존의 선택을 모두 취소하게 되며, 삽입 지점을 텍스트 안에 두고 SelLength 속성을 0으로 설정합니다.


SelText 속성

컨트롤의 선택된 텍스트를 반환하거나 설정합니다.

구문

object.SelText [= String]

SelText 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 선택된 텍스트를 포함하는 문자열 식입니다.

주의

만약 컨트롤의 편집 영역 안에 아무런 문자도 선택되지 않았다면, SelText 속성은 길이가 0인 문자열을 반환합니다. 이 속성은 컨트롤이 포커스를 가지고 있는지에 상관 없이 유효합니다.


ShowDropButtonWhen 속성

ComboBox 또는 TextBox의 드롭다운 단추를 보여줄 때 지정합니다.

구문

object.ShowDropButtonWhen [= fmShowDropButtonWhen]

ShowDropButtonWhen 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmShowDropButtonWhen | 선택 요소로서 드롭다운 단추가 표시될 환경을 지정합니다.

설정

fmShowDropButtonWhen 에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmShowDropButtonWhenNever | 0 | 어떤 상황 아래에서도 드롭다운 단추를 표시하지 않습니다.
fmShowDropButtonWhenFocus | 1 | 컨트롤이 포커스를 가지고 있을 때만 드롭다운 단추를 표시합니다.
fmShowDropButtonWhenAlways | 2 | 항상 드롭다운 단추를 표시합니다.

ComboBox의 경우에 기본값은 fmShowDropButtonWhenAlways이고 TextBox의 경우에 기본값은 fmShowDropButtonWhenNever입니다.


SmallChange 속성

사용자가 SpinButton이나 ScrollBar 안의 스크롤 화살표를 클릭했을 때 움직이는 양을 지정합니다.

구문

object.SmallChange [= Long]

SmallChange 속성은 아래와 같은 구성 요소를 가집니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 Value 속성에 변화량을 지정하는 정수입니다.

주의

SmallChange 속성은 단위를 가지지 않습니다.

어떤 정수도 이 속성을 설정하는데 유용합니다. 권장되는 값의 범위는 –32,767부터 +32,767까지이고, 기본값은 1입니다.


SpecialEffect 속성

개체의 시각적 모양을 지정합니다.

구문

CheckBox, OptionButton, ToggleButton인 경우,
object.SpecialEffect [= fmButtonEffect]

다른 컨트롤일 경우
object.SpecialEffect [= fmSpecialEffect]

SpecialEffect 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmButtonEffect | 선택 요소로서 CheckBox, OptionButton 또는 ToggleButton의 시각적 모양을 지정합니다.
fmSpecialEffect | 선택 요소로서 CheckBox, OptionButton 또는 ToggleButton을 제외한 다른 개체의 시각적 모양을 지정합니다.

설정

fmSpecialEffect에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmSpecialEffectFlat | 0 | 개체는 평면으로 표현되고 색의 변화나 테두리 또는 모두에 의해 주변 양식과 구별됩니다. Image와 Label의 기본값이며, 모든 컨트롤에 유효합니다.
fmSpecialEffectRaised | 1 | 개체의 위와 왼쪽은 반전으로 표시되고, 아래와 오른쪽은 그림자로 표시합니다. 확인란이나 옵션 단추에는 유효하지 않습니다.
fmSpecialEffectSunken | 2 | 개체의 위와 왼쪽은 그림자로 표시되고, 아래와 오른쪽은 반전으로 표시됩니다. 컨트롤과 테두리는 이것들을 포함한 폼 안에 새겨진 모습입니다. CheckBox와 OptionButton의 기본이며, 모든 컨트롤에 유효합니다(기본값).
fmSpecialEffectEtched | 3 | 테두리는 컨트롤의 가장자리를 돌아가며 새겨진 모습입니다. 확인란이나 옵션 단추에는 유효하지 않습니다.
fmSpecialEffectBump | 6 | 개체는 아래와 오른쪽은 굴곡을 가지고, 위와 왼쪽은 평면의 모습입니다. 확인란이나 옵션 단추에는 유효하지 않습니다.

Frame의 경우, 기본값은 Sunken입니다.

Flat과 Sunken(0과 2)만이 CheckBox, OptionButton또는 ToggleButton에 대해 유용한 값이라는 사실을 유의하십시오. 위에 나열된 모든 값들은 다른 컨트롤에 유용합니다.

주의

컨트롤의 가장자리 표현 방법을 지정하기 위해 SpecialEffect 또는 BorderStyle 속성을 사용하는데, 두 가지를 동시에 사용하지는 않습니다. 만약 0이 아닌 값으로 이런 속성 중의 하나를 지정하면, 시스템은 나머지 속성 값을 0으로 설정하게 됩니다. 예를 들어, SpecialEffect를 fmSpecialEffectRaised라고 설정하면, 시스템은 BorderStyle을 0으로 설정합니다(fmBorderStyleNone).

Frame의 경우, SpecialEffect가 fmSpecialEffectFlat이면 BorderStyle은 무시됩니다.

SpecialEffect는 시스템의 테두리를 정의하기 위해 시스템 색을 사용합니다.

참고 SpecialEffect 속성이 ToggleButton 위에 존재하더라도, 그 속성을 사용할 수 없습니다. ToggleButton 위에서 이 속성 값을 설정하거나 반환할 수 없습니다.


Style 속성

ComboBox의 경우, 사용자가 컨트롤 값을 선택하거나 설정하는 방법을 지정합니다. MultiPage와 TabStrip의 경우에는 컨트롤 상에 있는 탭의 스타일을 식별합니다.

구문

ComboBox인 경우,
object.Style [= fmStyle]

MultiPage와 TabStrip인 경우,
object.Style [= fmTabStyle]

Style 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmStyle | 선택 요소로서 사용자의 ComboBox 값 설정 방법을 지정합니다.
fmTabStyle | 선택 요소로서 MultiPage 또는 TabStrip의 탭 스타일 지정합니다.

설정

fmStyle에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmStyleDropDownCombo | 0 | ComboBox는 드롭다운 콤보 상자처럼 작동합니다. 사용자는 편집 영역에 있는 값의 형식을 정하거나, 드롭다운 목록으로부터 값을 선택합니다(기본값).
fmStyleDropDownList | 2 | ComboBox는 목록 상자처럼 작동합니다. 사용자는 반드시 목록에서 값을 선택해야 합니다.

fmTabStyle에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmTabStyleTabs | 0 | 탭 모음 위에 있는 탭을 표시합니다(기본값).
fmTabStyleButtons | 1 | 탭 모음 위에 있는 단추를 표시합니다.
fmTabStyleNone | 2 | 탭 모음을 표시하지 않습니다.


TabFixedHeight, TabFixedWidth 속성

포인트에서 탭의 고정 높이 또는 고정 너비를 반환하거나 설정합니다.

구문

object.TabFixedHeight [= Single]

object.TabFixedWidth [= Single]

TabFixedHeight와 TabFixedWidth 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Single | 선택 요소로서 TabStrip 또는 MultiPage 위에 있는 탭 높이 또는 탭 너비의 포인트 수입니다.

설정

값이 0이면, 탭 너비는 각 탭이 탭의 내용을 수용할 수 있을 만큼 자동적으로 넓게 조정되고, 탭의 각 행들은 컨트롤의 너비만큼 조정됩니다.

값이 0보다 크면, 모든 탭은 이 속성에 의해 지정된 것과 동일한 너비를 갖게 됩니다.

주의

최소 크기는 4포인트입니다.


TabIndex 속성

폼의 탭 순서에 의한 단일 개체의 위치를 지정합니다.

구문

object.TabIndex [= Integer]

TabIndex 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Integer | 선택 요소로서 0부터 TabIndex 속성을 갖는 양식의 컨트롤 수보다 1 작은 수까지의 정수입니다. 0보다 작은 TabIndex 값의 지정은 오류를 생성합니다. TabIndex 값을 가장 큰 인덱스 값보다 크게 지정하면, 시스템은 그 지정된 값을 최대 허용값으로 다시 설정합니다.

주의

첫 번째 개체의 탭 순서에 의한 인덱스 값은 0입니다.


TabKeyBehavior 속성

편집 영역에서 탭이 허용되는지를 결정합니다.

구문

object.TabKeyBehavior [= Boolean]

TabKeyBehavior 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 Tab 키를 누른 효과를 나타냅니다.

설정

Boolean 설정은 아래와 같습니다.

값 | 설명
True | Tab 키를 누르면 편집 영역 안에 탭 문자를 삽입합니다.
False | Tab 키를 누르면 탭 순서에 따라 다음 개체로 포커스를 이동합니다(기본값).

주의

TabKeyBehavior 속성과 MultiLine 속성은 밀접한 관련이 있습니다. 위에서 설명한 값들은 MultiLine이 True일 때만 적용합니다. 만일 MultiLine이 False라면, Tab 키를 누르는 것은 TabKeyBehavior의 값에 상관 없이 탭 순서에 의해서 다음 컨트롤로 포커스를 이동시킵니다.

또한 Ctrl+Tab을 누른 효과는 MultiLine 값에 달려 있습니다. MultiLine이 True인 경우, Ctrl+Tab을 누르면 TabKeyBehavior의 값에 상관 없이 새 줄 하나를 만듭니다. 그러나 MultiLine이 False인 경우, Ctrl+Tab을 누르는 것은 아무런 효과가 없습니다.


TabOrientation 속성

MultiPage나 TabStrip 위에서 탭의 위치를 지정합니다.

구문

object.TabOrientation [= fmTabOrientation]

TabOrientation 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmTabOrientation | 선택 요소로서 탭이 나타날지를 지정합니다.

설정

fmTabOrientation의 설정은 아래와 같습니다.

상수 | 값 | 설명
fmTabOrientationTop | 0 | 탭은 컨트롤의 위에 나타납니다(기본값).
fmTabOrientationBottom | 1 | 탭은 컨트롤의 아래에 나타납니다.
fmTabOrientationLeft | 2 | 탭은 컨트롤의 왼쪽 면에 나타납니다.
fmTabOrientationRight | 3 | 탭은 컨트롤의 오른쪽 면에 나타납니다.

주의

트루타입 글꼴을 사용하여 TabOrientation 속성이 fmTabOrientationLeft나 fmTabOrientationRight로 설정되면, 텍스트는 회전합니다. 그러나 비트맵 글꼴이라면 텍스트는 회전하지 않습니다.


TabStop 속성

사용자가 어떤 개체에 탭을 지정했을 때, 그 개체가 포커스를 받을 수 있는지를 나타냅니다.

구문

object.TabStop [= Boolean]

TabStop 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 개체가 탭 정지인지를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 개체를 탭 정지로 지정합니다(기본값).
False | TabIndex 속성에 의해 결정된 개체가 여전히 실제 탭 순서에 따라 개체의 위치를 유지하더라도, 사용자가 탭을 지정 중이면 그 개체는 무시됩니다.


Tag 속성

개체에 대한 추가 정보를 저장합니다.

구문

object.Tag [= String]

Tag 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 개체를 식별하는 문자열 식입니다. 기본은 빈 문자열입니다("").

주의

Tag 속성으로 다른 속성의 설정이나 특성에 영향을 주지 않고, 개체에 식별 문자열을 할당할 수 있습니다.

예를 들어, B>Tag를 사용하여 프로시저에 변수 역할로서 전달되는 컨트롤이나 폼을 확인할 수 있습 니다.


TakeFocusOnClick 속성

컨트롤을 눌렀을 때 그 컨트롤이 포커스를 가지는지를 지정합니다.

구문

object.TakeFocusOnClick [= Boolean]

TakeFocusOnClick 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 컨트롤을 눌렀을 때 그 컨트롤이 포커스를 가지는지를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 단추를 클릭하였을 때 그 단추가 포커스를 가집니다(기본값).
False | 단추를 클릭하였을 때 그 단추가 포커스를 갖지 못합니다.

주의

TakeFocusOnClick 속성은 사용자가 컨트롤을 클릭할 때 일어나는 것만 정의합니다. 사용자가 그 컨트롤에 탭 이동하면, 그 컨트롤은 TakeFocusOnClick의 값에 상관 없이 포커스를 가집니다.

이 속성을 사용하여 컨트롤이 포커스를 포기하도록 요구하지 않고 컨트롤에 영향을 미치는 작업을 완료합니다. 예를 들어, 폼에 텍스트의 올바른 맞춤법을 검사하는 TextBox와 CommandButton가 있다고 가정합니다. TextBox에서 텍스트를 선택한 후 CommandButton을 클릭하여 TextBox로부터 포커스를 가지지 않고 맞춤법 검사를 실행한다고 가정합니다. CommandButton의 TakeFocusOnClick 속성을 False로 설정함으로써 이렇게 할 수 있습니다.


Text 속성

TextBox에서 텍스트를 반환하거나 설정합니다. ComboBox나 ListBox의 선택된 행을 변경합니다.

구문

object.Text [= String]

Text 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
String | 선택 요소로서 텍스트를 지정하는 문자열 식입니다. 기본값은 빈 문자열입니다("").

주의

TextBox의 경우, Text 속성에 지정한 모든 값은 Value 속성에 지정됩니다.

ComboBox의 경우, 컨트롤의 값을 업데이트하기 위해 Text를 사용할 수 있습니다. Text의 값이 기존의 목록 항목과 일치하는 경우, ListIndex 속성(현재 행의 인덱스)의 값은 Text와 일치하는 행으로 설정됩니다. 그러나 Text 값이 행과 일치하지 않으면, ListIndex는 -1로 설정됩니다.

ListBox인 경우, Text의 값은 반드시 기존의 목록 항목과 일치해야만 합니다. 기존의 목록 항목과 일치하지 않는 값을 지정하면 오류가 생깁니다.

ComboBox나 ListBox 안에 있는 항목의 값을 변경하기 위해 Text를 사용할 수는 없습니다. 이러한 경우에는 Column 속성이나 List 속성을 사용합니다.

ForeColor 속성은 텍스트의 색을 결정합니다.


TextAlign 속성

컨트롤에서 텍스트를 맞추는 방법을 지정합니다.

구문

object.TextAlign [= fmTextAlign]

TextAlign 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmTextAlign | 선택 요소로서 컨트롤에서 텍스트를 맞추는 방법입니다.

설정

fmTextAlign에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmTextAlignLeft | 1 | 컨트롤의 표시 또는 편집 영역의 왼쪽 가장자리에 표시된 텍스트의 첫 번째 문자를 맞춥니다(기본값).
fmTextAlignCenter | 2 | 컨트롤의 표시 또는 편집 영역 안에 있는 텍스트를 가운데로 맞춥니다.
fmTextAlignRight | 3 | 컨트롤의 표시 또는 편집 영역의 오른쪽 가장자리에 표시된 텍스트의 마지막 문자를 맞춥니다.

주의

ComboBox의 경우, TextAlign 속성은 단지 편집 영역에만 영향을 주는데, 이 속성은 목록의 텍스트 정렬에는 영향을 주지 않습니다. 독립 실행형 레이블일 경우, TextAlign은 레이블의 캡션 맞춤을 결정합니다.


TextColumn 속성

ComboBox 또는 ListBox에서 열을 식별하여 사용자가 행을 선택할 때 Text 속성에 저장합니다.

구문

object.TextColumn [= Variant]

TextColumn 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Variant | 선택 요소로서 표시되어진 열입니다.

설정

TextColumn 속성의 값 범위는 –1부터 목록에 있는 열의 수까지입니다. 첫째 열의 TextColumn 값은 1이고, 둘째 열의 값은 2가 되며 이런 순서를 가집니다. TextColumn을 0으로 설정하면 ListIndex 값을 표시합니다. TextColumn 값을 -1로 설정하면 0보다 큰 ColumnWidths 값을 가진 첫째 열을 표시합니다.

주의

콤보 상자에서는 컨트롤의 텍스트 상자 부분에 TextColumn 속성으로 지정된 열이 표시됩니다.

사용자가 ComboBox나 ListBox에서 행을 선택할 때, TextColumn에 의해 참조된 열이 Text 속성에 저장됩니다. 예를 들어, 열 하나에 공휴일의 이름을, 두 번째 열에는 공휴일의 날짜를 포함하는 여러 열의 ListBox를 설정할 수 있습니다. 사용자에게 공휴일 이름을 나타내려면 TextColumn으로 첫 번째 열을 지정합니다. 공휴일의 날짜를 저장하려면 BoundColumn으로 두 번째 열을 지정합니다. 공휴일의 날짜를 숨기려면, 두 번째 열의 ColumnWidths 속성을 0으로 설정합니다.

사용자가 컨트롤 안에 항목을 입력할 때와 같이 ComboBox의 Text 속성이 변하면, 새 텍스트는 TextColumn에 의해 지정된 데이터의 열과 비교됩니다.


TextLength 속성

TextBox 또는 ComboBox의 편집 영역에 있는 텍스트의 문자에 길이를 반환합니다.

구문

object.TextLength

TextLength 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.

주의

TextLength 속성은 읽기 전용입니다. 여러 줄 TextBox와 TextLength의 경우, LF(줄 바꿈)과 CR(캐리지 리턴) 문자를 포함합니다.


TopIndex 속성

목록의 맨 위에 나타나는 항목을 반환하거나 설정합니다.

구문

object.TopIndex [= Variant]

TopIndex 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Variant | 선택 요소로서 맨 위에 나타나는 목록 항목의 수입니다. 기본은 0이거나, 목록의 첫 번째 항목입니다.

설정

만약 목록이 비어 있거나 표시되지 않는다면, -1을 반환합니다


TransitionEffect 속성

한 페이지에서 다른 페이지로 변경할 때의 시각적 효과를 지정합니다.

구문

object.TransitionEffect [= fmTransitionEffect]

TransitionEffect 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmTransitionEffect | 선택 요소로서 페이지들 사이에서 나타내려는 화면 전환 효과입니다.

설정

fmTransitionEffect에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmTransitionEffectNone | 0 | 특별한 효과가 없습니다(기본값).
fmTransitionEffectCoverUp | 1 | 아래에서 위로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectCoverRightUp | 2 | 왼쪽 아래 모서리에서 오른쪽 위 모서리로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectCoverRight | 3 | 왼쪽 가장자리에서 오른쪽으로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectCoverRightDown | 4 | 왼쪽 위 모서리에서 오른쪽 아래 모서리로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectCoverDown | 5 | 위에서 아래로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectCoverLeftDown | 6 | 오른쪽 위 모서리에서 왼쪽 아래 모서리로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectCoverLeft | 7 | 오른쪽에서 왼쪽으로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectCoverLeftUp | 8 | 오른쪽 아래 모서리에서 왼쪽 위 모서리로 이동하며, 새 페이지가 이전 페이지를 덮어버립니다.
fmTransitionEffectPushUp | 9 | 아래에서 위로 이동하며, 새 페이지가 이전 페이지를 화면 밖으로 밀어버립니다.
fmTransitionEffectPushRight | 10 | 왼쪽에서 오른쪽으로 이동하며, 새 페이지가 이전 페이지를 화면 밖으로 밀어버립니다.
fmTransitionEffectPushDown | 11 | 위에서 아래로 이동하며, 새 페이지가 이전 페이지를 화면 밖으로 밀어버립니다.
fmTransitionEffectPushLeft | 12 | 오른쪽에서 왼쪽으로 이동하며, 새 페이지가 이전 페이지를 화면 밖으로 밀어버립니다.

주의

TransitionPeriod 속성은 화면 전환 효과의 지속 시간을 설정하는데 사용합니다.


TransitionPeriod 속성

천분의 일초 단위로 화면 전환 효과의 지속 시간을 지정합니다.

구문

object.TransitionPeriod [= Long]

TransitionPeriod 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Long | 선택 요소로서 한 페이지에서 다른 페이지로 화면 전환을 완료하는데 걸리는 시간을 지정합니다.

주의

이 속성에는 0부터 10000까지의 정수를 사용할 수 있습니다. TransitionPeriod 속성 값을 0으로 설정하면 화면 전환 효과는 사용할 수 없으며, TransitionPeriod 속성 값을 10000으로 설정하면 화면 전환을 완료하는데 10초가 걸리게 됩니다.


TripleState 속성

사용자 인터페이스에서 CheckBox나 ToggleButton에 대한 Null 상태를 지정할 수 있는지를 결정합니다.

구문

object.TripleState [= Boolean]

TripleState 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 컨트롤의 Null 상태 지원 여부를 정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 세 가지 상태가 가능한 단추입니다.
False | 단추는 True와 False만을 지원합니다(기본값).

주의

TripleState 속성이 OptionButton에 있어도 속성을 사용할 수 없습니다. TripleState의 값에 상관 없이, 사용자 인터페이스를 사용하여 컨트롤을 Null로 설정할 수 없습니다.

TripleState 속성이 True면, 사용자는 Null, True 또는 False의 값을 선택할 수 있습니다. Null 값은 음영 단추로 표시됩니다.

TripleState가 False일 때, 사용자는 True나 False를 선택할 수 있습니다.

컨트롤이 Null로 설정되면 컨트롤은 Click 이벤트를 초기화하지 않습니다.

속성의 설정에 상관 없이 Null 값은 항상 프로그램 상으로 CheckBox나 ToggleButton에 지정되는데, 그 단추는 음영으로 나타나게 됩니다.


Value 속성

주어진 컨트롤의 상태 혹은 내용을 지정합니다.

구문

object.Value [= Variant]

Value 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Variant | 선택 요소로서 컨트롤의 상태나 내용을 지정합니다.

설정

컨트롤 | 설명
CheckBox | 항목이 선택되었는지를 나타내는 정수값입니다.
 | Null 항목이 null 상태임을 표시합니다. 즉, 선택되거나 삭제되지 않은 상태입니다.
 | True는 -1입니다. 선택된 항목임을 표시합니다.
 | False는 0입니다. 지워진 항목임을 표시합니다.
OptionButton | CheckBox와 동일합니다.
ToggleButton | CheckBox와 동일합니다.
ScrollBar | Max 속성과 Min 속성에 지정된 값 사이의 정수입니다.
SpinButton | ScrollBar과 동일합니다.
ComboBox, ListBox | 현재 선택된 행의 BoundColumn 값입니다.
CommandButton | 항상 False입니다.
MultiPage | 현재 활성 페이지를 나타내는 정수입니다.
 | 0은 첫 번째 페이지를 가리킵니다. 최대값은 페이지 수보다 1 작은 수입니다.
TextBox | 편집 영역에 있는 텍스트입니다.

주의

CommandButton일 경우, 프로시저 혹은 매크로 안에서 Value 속성을 True라고 설정하면 단추의 Click 이벤트가 초기화됩니다.

ComboBox일 경우, Value의 내용을 변경해도 BoundColumn의 값을 변경할 수는 없습니다. ComboBox안의 항목들을 추가하거나 삭제하려면 AddItem 또는 RemoveItem 메서드를 사용합니다.

Value는 다중 선택 목록 상자와 함께 사용할 수 없습니다.


VerticalScrollbarSide 속성

세로 스크롤 막대가 폼 또는 페이지의 오른쪽 면이나 왼쪽 면에 나타나는지를 지정합니다.

구문

object.VerticalScrollbarSide [= fmVerticalScrollbarSide]

VerticalScrollbarSide 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
fmVerticalScrollbarSide | 선택 요소로서 스크롤 막대가 나타날 위치를 지정합니다.

설정

fmVerticalScrollbarSide에 대한 설정은 다음과 같습니다.

상수 | 값 | 설명
fmVerticalScrollbarSideRight | 0 | 스크롤 막대를 오른쪽 면에 둡니다(기본값).
fmVerticalScrollBarSideLeft | 1 | 스크롤 막대를 왼쪽 면에 둡니다.

주의

VerticalScrollBarSide 속성은 오른쪽에서 왼쪽으로 읽는 환경에서 쓰여질 폼에 특별히 유용합니다.


Visible 속성

개체의 표시 또는 숨김을 지정합니다.

구문

object.Visible [= Boolean]

Visible 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 개체의 표시 또는 숨김 여부를 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 개체가 표시됩니다(기본값).
False | 개체가 숨겨집니다.

주의

화면 표시없이 Visible 속성을 사용하여 정보에 대한 액세스를 제어합니다. 예를 들어, 쿼리를 찾는 조건, 숨겨진 양식에서 컨트롤 값을 사용할 수 있습니다.

디자인 모드에서는 모든 컨트롤이 표시됩니다.


WordWrap 속성

컨트롤의 내용이 줄의 끝에서 자동으로 줄 바꿈하는지를 지정합니다.

구문

object.WordWrap [= Boolean]

WordWrap 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Boolean | 선택 요소로서 텍스트를 채우기 위한 위한 컨트롤의 확장을 지정합니다.

설정

Boolean에 대한 설정은 다음과 같습니다.

값 | 설명
True | 텍스트 줄 바꿈입니다(기본값).
False | 텍스트 줄 바꿈을 하지 않습니다.

주의

MultiLine 속성과 함께 WordWrap 속성을 지원하는 컨트롤의 경우, MultiLine이 False이면 WordWrap은 무시됩니다.


Zoom 속성

표시되는 개체에 대한 크기의 변화량을 지정합니다.

구문

object.Zoom [= Integer]

Zoom 속성 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소 | 설명
object | 필수 요소로서 유효한 개체입니다.
Integer | 선택 요소로서 표시되는 이미지를 늘이거나 줄이는 비율을 지정합니다.

주의

Zoom 속성의 값은 이미지가 변경되어 표시되는 것으로 변경될 이미지의 확대 또는 축소의 비율을 지정합니다. 유효값의 범위는 10부터 400까지입니다. 지정한 값은 개체의 원본 크기에 대한 비율입니다. 따라서 값을 400으로 설정하면 원본 크기의 4배만큼 확대한다는 뜻입니다(400%). 반면에 값을 10으로 설정하면 원본 크기의 10분의 1로 축소한다는 뜻입니다(10%).


추가 컨트롤 대화 상자

  1. 사용 가능한 컨트롤 목록에서, 도구 상자에 추가하려는 컨트롤을 선택합니다.

  2. 확인 단추를 클릭합니다.

팁 보기 그룹에서 옵션을 선택함으로 사용 가능한 컨트롤 목록을 골라낼 수 있습니다.


사용자 정의 컨트롤 대화 상자

사용자 정의 컨트롤 대화 상자는 ControlTipText 속성과 도구 상자에서 이 컨트롤을 나타내는 아이콘을 가지고 있습니다. 이 대화 상자로 컨트롤과 연결된 ControlTipText를 정의하거나 변경할 수 있고, 마찬가지로 도구 상자에 표시되는 아이콘을 변경할 수 있습니다.

ControlTipText를 정의하거나 편집하려면,

  • ControlTipText에 새로운 값을 입력합니다.

아이콘을 편집하려면

  1. 그림 편집 명령 단추를 선택합니다.

  2. 원하는 모양으로 아이콘을 바꾸려면 이미지 편집기를 사용합니다.

다른 아이콘을 읽어들이려면

  1. 그림 로드하기 명령 단추를 선택합니다.

  2. 공통 대화 상자에서 그림 파일을 선택합니다.

  3. 새로운 값을 적용하기 위해 확인 단추를 클릭합니다.


페이지 순서/탭 순서 대화 상자

페이지나 탭의 위치를 변경하려면,

  1. 이동하려는 Page나 Tab의 이름을 선택합니다.

  2. 선택한 항목이 원하는 위치까지 위로 이동이나 아래로 이동을 선택합니다.

  3. 항목을 원하는 순서로 이동한 후, 확인 단추를 클릭합니다.


이름 바꾸기 대화 상자

이름 바꾸기 대화 상자는 현재 포커스를 가지고 있는 개별 페이지나 탭에 대해 Accelerator와 Caption, ControlTipText 속성 값을 포함하며, 현재 도구 상자 페이지에 대해서는 Caption과 ToolTipText 속성 값을 가지고 있습니다. 이름 바꾸기 대화 상자에서는 이런 속성에 대한 값을 업데이트할 수 있습니다.

바로 가기 키는 Page 또는 Tab에 포커스를 설정하기 위해 키보드 키와 동시에 Alt 키를 누릅니다. 캡션은 현재 도구 상자 페이지나 Page 또는 Tab의 탭 영역에 있는 텍스트입니다. ControlTipText는 클릭 없이 컨트롤 위에 마우스 포인터를 놓을 때 나타나는 컨트롤의 간단한 설명입니다. ToolTipText는 클릭 없이 현재 도구 상자 페이지 위에 마우스 포인터를 놓을 때 나타나는 컨트롤의 간단한 설명입니다.

Page나 Tab에 바로 가기 키를 지정하려면,

  • Accelerator에 단일 문자를 입력합니다.

Page나 Tab의 이름을 바꾸려면,

  • Caption에 새로운 값을 입력합니다.

Page나 Tab에 ControlTipText를 정의하려면,

  • ControlTipText에 새로운 값을 입력합니다.

현재 도구 상자 페이지에 ToolTipText를 정의하려면,

  • ToolTipText에 새로운 값을 입력합니다.

참고 페이지, 탭이나 도구 상자 페이지에 새로운 값을 적용하려면 확인 단추를 클릭합니다.


Click 이벤트, CommandButton 컨트롤, Accelerator, Caption 속성 예제

이 예제는 마우스나 바로 가기 키로 단추를 클릭할 때마다 CommandButton의 Accelerator와 Caption 속성을 변경하는 것입니다. Click 이벤트는 Accelerator와 Caption 속성을 변경하는 코드를 포함합니다.

이 예제를 사용하려면 코드를 CommandButton1이라 명명된 CommandButton을 포함하는 폼의 선언 구역에 붙여넣어야 합니다.

Private Sub UserForm_Initialize()
    CommandButton1.Accelerator  = "C"
    'Set Accelerator key to COMMAND + C
End Sub

Private Sub CommandButton1_Click ()
    If CommandButton1.Caption = "OK" Then
        'Check caption, then change it.
        CommandButton1.Caption = "Clicked"
        CommandButton1.Accelerator  = "C"
        'Set Accelerator key to COMMAND + C
    Else
        CommandButton1.Caption = "OK"
        CommandButton1.Accelerator  = "O"
        'Set Accelerator key to COMMAND + O
    End If
End Sub


Page 개체, Pages 컬렉션, MultiPage 컨트롤, SelectedItem 속성 예제

다음은 여러 방법으로 MultiPage의 각 페이지를 액세스하는 예제입니다.

  • 숫자 인덱스와 함께 Pages 컬렉션을 사용하는 방법

  • 문자열 인덱스와 함께 Pages 컬렉션을 사용하는 방법

  • Item 메서드와 함께 Pages 컬렉션을 사용하는 방법

  • MultiPage 안의 각 페이지를 사용하는 방법

  • SelectedItem 속성을 사용하는 방법

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 MultiPage1이라고 명명된 MultiPage를 포함해야 합니다.

Private Sub UserForm_Initialize()
    Dim PageName As String

    For i = 0 To MultiPage1.Count - 1
        'Use index (numeric or string)
        MsgBox "MultiPage1.Pages(i).Caption = " _
            & MultiPage1.Pages(i).Caption
        MsgBox "MultiPage1.Pages.Item(i).Caption = " _
            & MultiPage1.Pages.Item(i).Caption

        PageName = MultiPage1.Pages(i).Name
        MsgBox "PageName = " & PageName

        MsgBox "MultiPage1.Pages(PageName)" _
            & ".Caption = "_
            & MultiPage1.Pages(PageName).Caption
        MsgBox "MultiPage1.Pages.Item(PageName)" _
            & ".Caption = " & MultiPage1.Pages  _
            .Item(PageName).Caption

        'Use Page object without referring to
          'Pages collection
        If i = 0 Then
            MsgBox "MultiPage1.Page1.Caption= " _
                    & MultiPage1.Page1.Caption
        ElseIf i = 1 Then
            MsgBox "MultiPage1.Page2.Caption = " _
                    & MultiPage1.Page2.Caption
        End If

        'Use SelectedItem Property
        MultiPage1.Value = i
        MsgBox "MultiPage1.SelectedItem.Caption = " _
            & MultiPage1.SelectedItem.Caption
    Next i
End Sub


SelectedItem 속성, TabStrip 컨트롤, Tab 개체, Tabs 컬렉션 예제

다음은 여러 방법으로 TabStrip의 각 탭을 액세스하는 예제입니다.

  • 숫자 인덱스와 함께 Tabs 컬렉션을 사용하는 방법

  • 문자열 인덱스와 함께 Tabs 컬렉션을 사용하는 방법

  • Item 메서드와 함께 Tabs 컬렉션을 사용하는 방법

  • 각 Tab의 이름을 사용하는 방법

  • SelectedItem 속성을 사용하는 방법

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 TabStrip1이라 명명된 TabStrip을 포함해야 합니다.

Private Sub UserForm_Initialize()
    Dim TabName As String

    For i = 0 To TabStrip1.Count - 1
        'Using index (numeric or string)
        MsgBox "TabStrip1.Tabs(i).Caption = " _
            & TabStrip1.Tabs(i).Caption
        MsgBox "TabStrip1.Tabs.Item(i).Caption = " _
            & TabStrip1.Tabs.Item(i).Caption

        TabName = TabStrip1.Tabs(i).Name
        MsgBox "TabName = " & TabName

        MsgBox "TabStrip1.Tabs(TabName).Caption = " _
            & TabStrip1.Tabs(TabName).Caption
        MsgBox "TabStrip1.Tabs.Item(TabName)_
            .Caption = " _
            & TabStrip1.Tabs.Item(TabName).Caption

        'Use Tab object without referring to Tabs
          'collection
        If i = 0 Then
            MsgBox "TabStrip1.Tab1.Caption = " _
                    & TabStrip1.Tab1.Caption
        ElseIf i = 1 Then
            MsgBox "TabStrip1.Tab2.Caption = " _
                    & TabStrip1.Tab2.Caption
        EndIf

        'Use SelectedItem Property
        TabStrip1.Value = i
        MsgBox "TabStrip1.SelectedItem.Caption = " _
            & TabStrip1.SelectedItem.Caption
    Next i
End Sub


Enter, Exit 이벤트, ActiveControl 속성 예제

다음은 열어 본 컨트롤을 추적하는 서브루틴 내에서 ActiveControl 속성을 사용하는 예제입니다. 각 컨트롤의 Enter 이벤트는 컨트롤이 가지고 있는 포커스를 식별하여 TraceFocus 서브루틴을 불러옵니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 다음의 컨트롤을 포함해야 합니다.

  • ScrollBar1이라 명명된 ScrollBar

  • ListBox1이라 명명된 ListBox

  • OptionButton1과 OptionButton2라 명명된 두 개의 OptionButton 컨트롤

  • Frame1이라 명명된 Frame
Dim MyControl As Control

Private Sub TraceFocus()
    ListBox1.AddItem ActiveControl.Name
    ListBox1.List(ListBox1.ListCount - 1, 1) = _
        ActiveControl.TabIndex
End Sub

Private Sub UserForm_Initialize()
    ListBox1.ColumnCount = 2
    ListBox1.AddItem "Controls Visited"
    ListBox1.List(0, 1) = "Control Index"
End Sub

Private Sub Frame1_Enter()
    TraceFocus
End Sub

Private Sub ListBox1_Enter()
    TraceFocus
End Sub

Private Sub OptionButton1_Enter()
    TraceFocus
End Sub

Private Sub OptionButton2_Enter()
    TraceFocus
End Sub

Private Sub ScrollBar1_Enter()
    TraceFocus
End Sub


AddControl 이벤트, Add 메서드 예제

다음은 Add 메서드를 사용하여 컨트롤을 런타임 중 폼에 추가하고 컨트롤이 추가되었다는 확인으로 AddControl 이벤트를 사용하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1이라 명명된 CommandButton

  • Label1이라 명명된 Label
Dim Mycmd as Control
Private Sub CommandButton1_Click()

    Set Mycmd = Controls.Add("MSForms.CommandButton.1") ', CommandButton2, Visible)
    Mycmd.Left = 18
    Mycmd.Top = 150
    Mycmd.Width = 175
    Mycmd.Height = 20
    Mycmd.Caption = "This is fun." & Mycmd.Name

End Sub

Private Sub UserForm_AddControl(ByVal Control As _
    MSForms.Control)
    Label1.Caption = "Control was Added."
End Sub


Page 개체, MultiPage 컨트롤, Add, Clear, Remove 메서드 예제

다음은 Add, Clear와 Remove 메서드를 사용하여 컨트롤을 런타임에 있는 MultiPage의 Page에 추가하거나 삭제하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • MultiPage1이라 명명된 MultiPage

  • CommandButton1에서 CommandButton3까지 명명된 세 개의 CommandButton 컨트롤
Dim MyTextBox As Control

Private Sub CommandButton1_Click()
Set MyTextBox = MultiPage1.Pages(0).Controls.Add("MSForms" _
    & ".TextBox.1", "MyTextBox", Visible)
End Sub

Private Sub CommandButton2_Click()
    MultiPage1.Pages(0).Controls.Clear
End Sub

Private Sub CommandButton3_Click()
    If MultiPage1.Pages(0).Controls.Count > 0  Then
        MultiPage1.Pages(0).Controls.Remove "MyTextBox"
    End If
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Add control"
    CommandButton2.Caption = "Clear controls"
    CommandButton3.Caption = "Remove control"
End Sub


Alignment 속성 예제

다음은 여러 OptionButton 컨트롤과 함께 사용되는 Alignment 속성을 설명한 예제입니다. 이 예제에서는 ToggleButton을 눌러 정렬을 변경할 수 있습니다..

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 다음의 컨트롤을 포함해야 합니다.

  • OptionButton1에서 OptionButton2까지 명명된 2개의 OptionButton 컨트롤

  • ToggleButton1이라 명명된 ToggleButton
Private Sub UserForm_Initialize()
    OptionButton1.Alignment = fmAlignmentLeft
    OptionButton2.Alignment = fmAlignmentLeft

    OptionButton1.Caption = "Alignment with AutoSize"
    OptionButton2.Caption = "Choice 2"
    OptionButton1.AutoSize = True
    OptionButton2.AutoSize = True

    ToggleButton1.Caption = "Left Align"
    ToggleButton1.WordWrap = True
    ToggleButton1.Value = True
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        ToggleButton1.Caption = "Left Align"
        OptionButton1.Alignment = fmAlignmentLeft
        OptionButton2.Alignment = fmAlignmentLeft
    Else
        ToggleButton1.Caption = "Right Align"
        OptionButton1.Alignment = fmAlignmentRight
        OptionButton2.Alignment = fmAlignmentRight
    End If
End Sub


TextBox 컨트롤, AutoSize, Text 속성 예제

다음은 한 줄 TextBox와 여러 줄 TextBox로 AutoSize 속성의 영향을 설명하는 예제입니다. TextBox와 AutoSize 켜짐이나 꺼짐 중 하나에 TextBox 내용과는 독립적으로 텍스트를 입력할 수 있습니다. 또한 이 예제 코드는 Text 속성을 사용합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1과 TextBox2라 명명된 두 개의 TextBox

  • ToggleButton1이라 명명된 ToggleButton
Private Sub UserForm_Initialize()
    TextBox1.Text = "Single-line TextBox. " _
        & "Type your text here."

    TextBox2.MultiLine = True
    TextBox2.Text = "Multi-line TextBox. Type " _
        & "your text here. Use CTRL+ENTER to start " _
        & "a new line."

    ToggleButton1.Value = True
    ToggleButton1.Caption = "AutoSize On"
    TextBox1.AutoSize = True
    TextBox2.AutoSize = True
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        ToggleButton1.Caption = "AutoSize On"
        TextBox1.AutoSize = True
        TextBox2.AutoSize = True
    Else
        ToggleButton1.Caption = "AutoSize Off"
        TextBox1.AutoSize = False
        TextBox2.AutoSize = False
    End If
End Sub


Font 개체, Bold, Italic, Size, StrikeThrough, Underline, Weight 속성 예제

다음은 글꼴과 관계 있는 Font 개체와 Bold, Italic, Size, StrikeThrough, Underline과 Weight 속성을 설명하는 예제입니다. 개체의 글꼴 속성을 직접 조정하거나 이 예제에서 보여 주는 것처럼 별칭을 사용하여 조정할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label

  • ToggleButton1에서 ToggleButton4까지 명명된 네 개의 ToggleButton 컨트롤

  • TextBox1이라 명명된 TextBox와 Label2라 명명된 제2 Label
Dim MyFont As StdFont

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        MyFont.Bold = True
          'Using MyFont alias to control font
        ToggleButton1.Caption = "Bold On"
        MyFont.Size = 22
          'Increase the font size
    Else
        MyFont.Bold = False
        ToggleButton1.Caption = "Bold Off"
        MyFont.Size = 8
          'Return font size to initial size
    End If

    TextBox1.Text = Str(MyFont.Weight)
     'Bold and Weight are related
End Sub

Private Sub ToggleButton2_Click()
    If ToggleButton2.Value = True Then
        Label1.Font.Italic = True
          'Using Label1.Font directly
        ToggleButton2.Caption = "Italic On"
    Else
        Label1.Font.Italic = False
        ToggleButton2.Caption = "Italic Off"
    End If
End Sub

Private Sub ToggleButton3_Click()
    If ToggleButton3.Value = True Then
   Label1.Font.Strikethrough = True
   'Using Label1.Font directly
        ToggleButton3.Caption = "StrikeThrough On"
    Else
        Label1.Font.Strikethrough = False
        ToggleButton3.Caption = "StrikeThrough Off"
    End If
End Sub

Private Sub ToggleButton4_Click()
    If ToggleButton4.Value = True Then
        MyFont.Underline = True
          'Using MyFont alias for Label1.Font
        ToggleButton4.Caption = "Underline On"
    Else
        Label1.Font.Underline = False
        ToggleButton4.Caption = "Underline Off"
    End If
End Sub

Private Sub UserForm_Initialize()
    Set MyFont = Label1.Font

    ToggleButton1.Value = True
    ToggleButton1.Caption = "Bold On"

    Label1.AutoSize = True        'Set size of Label1
    Label1.AutoSize = False

    ToggleButton2.Value = False
    ToggleButton2.Caption = "Italic Off"

    ToggleButton3.Value = False
    ToggleButton3.Caption = "StrikeThrough Off"

    ToggleButton4.Value = False
    ToggleButton4.Caption = "Underline Off"

    Label2.Caption = "Font Weight"
    TextBox1.Text = Str(Label1.Font.Weight)
    TextBox1.Enabled = False
End Sub


BackColor, BackStyle, BorderColor, BorderStyle, ForeColor, SpecialEffect 속성 예제

다음은 BorderStyle과 SpecialEffect 속성을 설명하는 것으로 이들 속성을 통해 각 테두리의 적용을 보여주는 예제입니다. 이 예제는 또한 BackColor, BackStyle, BorderColor와 ForeColor 속성을 사용하여 색 지정을 제어하는 방법을 설명합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1에서 TextBox6까지 명명된 여섯 개의 TextBox 컨트롤

  • ToggleButton1과 ToggleButton2라 명명된 두 개의 ToggleButton 컨트롤
Private Sub UserForm_Initialize()
'Initialize each TextBox with a border style or special effect,
'and foreground and background colors

'TextBox1 initially uses a borderstyle
TextBox1.Text = "BorderStyle-Single"
TextBox1.BorderStyle = fmBorderStyleSingle
TextBox1.BorderColor = RGB(255, 128, 128)
'Color - Salmon
TextBox1.ForeColor = RGB(255, 255, 0)
'Color - Yellow
TextBox1.BackColor = RGB(0, 128, 64)
'Color - Green #2

'TextBoxes 2 through 6 initially use special effects
TextBox2.Text = "Flat"
TextBox2.SpecialEffect = fmSpecialEffectFlat
TextBox2.ForeColor = RGB(64, 0, 0)
'Color - Brown
TextBox2.BackColor = RGB(0, 0, 255)
'Color - Blue

'Ensure the background style for TextBox2 is initially
'opaque.
TextBox2.BackStyle = fmBackStyleOpaque

TextBox3.Text = "Etched"
TextBox3.SpecialEffect = fmSpecialEffectEtched
TextBox3.ForeColor = RGB(128, 0, 255)
'Color - Purple
TextBox3.BackColor = RGB(0, 255, 255)
'Color - Cyan

'Define BorderColor for later use (when borderstyle=fmBorderStyleSingle)
TextBox3.BorderColor = RGB(0, 0, 0)
'Color - Black

TextBox4.Text = "Bump"
TextBox4.SpecialEffect = fmSpecialEffectBump
TextBox4.ForeColor = RGB(255, 0, 255)
'Color - Magenta
TextBox4.BackColor = RGB(0, 0, 100)
'Color - Navy blue

TextBox5.Text = "Raised"
TextBox5.SpecialEffect = fmSpecialEffectRaised
TextBox5.ForeColor = RGB(255, 0, 0)
'Color - Red
TextBox5.BackColor = RGB(128, 128, 128)
'Color - Gray

TextBox6.Text = "Sunken"
TextBox6.SpecialEffect = fmSpecialEffectSunken
TextBox6.ForeColor = RGB(0, 64, 0)
'Color - Olive
TextBox6.BackColor = RGB(0, 255, 0)
'Color - Green #1

ToggleButton1.Caption = "Swap styles"
ToggleButton2.Caption = "Transparent/Opaque " _
    & "background"
End Sub

Private Sub ToggleButton1_Click()

'Swap borders between TextBox1 and TextBox3
If ToggleButton1.Value = True Then
    'Change TextBox1 from BorderStyle to Etched
    TextBox1.Text = "Etched"
    TextBox1.SpecialEffect = fmSpecialEffectEtched

    'Change TextBox3 from Etched to BorderStyle
    TextBox3.Text = "BorderStyle-Single"
    TextBox3.BorderStyle = fmBorderStyleSingle
Else
    'Change TextBox1 back to BorderStyle
    TextBox1.Text = "BorderStyle-Single"
    TextBox1.BorderStyle = fmBorderStyleSingle

    'Change TextBox3 back to Etched
    TextBox3.Text = "Etched"
    TextBox3.SpecialEffect = fmSpecialEffectEtched
End If
End Sub
Private Sub ToggleButton2_Click()
'Set background to Opaque or Transparent
If ToggleButton2.Value = True Then
    'Change TextBox2 to a transparent background
    TextBox2.BackStyle = fmBackStyleTransparent
Else
    'Change TextBox2 back to opaque background
    TextBox2.BackStyle = fmBackStyleOpaque
End If
End Sub


ListBox 컨트롤, BoundColumn 속성 예제

다음은 BoundColumn 속성이 ListBox의 값에 어떻게 영향을 주는지 설명하는 예제입니다. 특정 행의 인덱스 값이나 ListBox 안의 특정 데이터 열에 맞추어 ListBox의 값을 설정하도록 선택할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ListBox1이라 명명된 ListBox

  • Label1이라 명명된 Label

  • OptionButton1, OptionButton2와 OptionButton3이라 명명된 세 개의 OptionButton 컨트롤
Private Sub UserForm_Initialize()
    ListBox1.ColumnCount = 2

    ListBox1.AddItem "Item 1, Column 1"
    ListBox1.List(0, 1) = "Item 1, Column 2"
    ListBox1.AddItem "Item 2, Column 1"
    ListBox1.List(1, 1) = "Item 2, Column 2"

    ListBox1.Value = "Item 1, Column 1"

    OptionButton1.Caption = "List Index"
    OptionButton2.Caption = "Column 1"
    OptionButton3.Caption = "Column 2"
    OptionButton2.Value = True
End Sub

Private Sub OptionButton1_Click()
    ListBox1.BoundColumn = 0
    Label1.Caption = ListBox1.Value
End Sub

Private Sub OptionButton2_Click()
    ListBox1.BoundColumn = 1
    Label1.Caption = ListBox1.Value
End Sub

Private Sub OptionButton3_Click()
    ListBox1.BoundColumn = 2
    Label1.Caption = ListBox1.Value
End Sub

Private Sub ListBox1_Click()
    Label1.Caption = ListBox1.Value
End Sub


DblClick 이벤트, CanPaste 속성, Paste, Copy 메서드 예제

DblClick 이벤트, CanPaste Property, Paste, Copy 메서드 예제

다음은 CanPaste 속성과 Paste 메서드를 사용하여 MultiPage의 Page를 클립보드로부터 ComboBox에 붙여넣는 예제입니다. 이 예제는 또한 SetFocus와 Copy 메서드를 사용하여 폼에서 클립보드로 컨트롤을 복사합니다.

사용자는 CommandButton1을 클릭하여 ComboBox를 클립보드에 복사합니다. 사용자는 CommandButton1을 두 번 클릭하여(DblClick 이벤트 사용 중) ComboBox를 MultiPage에 붙여넣습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • ComboBox1이라 명명된 ComboBox

  • MultiPage1이라 명명된 MultiPage

  • CommandButton1이라 명명된 CommandButton

참고 이 예제는 또한 컨트롤에 텍스트를 붙여넣는 것을 설명하기 위한 서브루틴을 포함합니다.

Private Sub UserForm_Initialize()
    ComboBox1.AddItem "It's a beautiful day!"

    CommandButton1.Caption = "Copy ComboBox to " _
        & "Clipboard"
    CommandButton1.AutoSize = True
End Sub

Private Sub MultiPage1_DblClick(ByVal Index As Long, _
    ByVal Cancel As MSForms.ReturnBoolean)
    If MultiPage1.Pages(MultiPage1.Value).CanPaste = _
        True
     Then
        MultiPage1.Pages(MultiPage1.Value).Paste
    Else
        TextBox1.Text = "Can't Paste"
    End If
End Sub

Private Sub CommandButton1_Click()
        UserForm1.ComboBox1.SetFocus
        UserForm1.Copy
End Sub

'Code for pasting text into a control
'Private Sub ComboBox1_DblClick(ByVal Cancel As _
    MSForms.ReturnBoolean)
'   If ComboBox1.CanPaste = True Then
'        ComboBox1.Paste
'    Else
'        TextBox1.Text = "Can't Paste"
'    End If

'End Sub


CanUndo, CanRedo 속성, UndoAction, RedoAction 메서드 예제

다음은 텍스트 상자나 ComboBox의 텍스트 영역 내부에서 텍스트 편집을 실행 취소하거나 다시 실행하는 방법을 설명하는 예제입니다. 이 예제는 실행 취소나 다시 실행 동작의 발생 가능 여부를 확인하고 적절한 실행을 하게 됩니다. 이 예제는 CanUndo와 CanRedo 속성을 사용하고 UndoAction과 RedoAction 메서드를 사용합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ListBox1이라 명명된 TextBox

  • ComboBox1이라 명명된 ComboBox

  • CommandButton1와 CommandButton2라고 명명된 두 개의 CommandButton 컨트롤
Private Sub CommandButton1_Click()
    If UserForm1.CanUndo = True Then
        UserForm1.UndoAction
        MsgBox "Undid IT"
    Else
        MsgBox "No undo performed."
    End If
End Sub

Private Sub CommandButton2_Click()
    If UserForm1.CanRedo = True Then
        UserForm1.RedoAction
        MsgBox "Redid IT"
    Else
        MsgBox "No redo performed."
    End If
End Sub

Private Sub UserForm_Initialize()
    TextBox1.Text = "Type your text here."

    ComboBox1.ColumnCount = 3
    ComboBox1.AddItem "Choice 1, column 1"
    ComboBox1.List(0, 1) = "Choice 1, column 2"
    ComboBox1.List(0, 2) = "Choice 1, column 3"

    CommandButton1.Caption = "Undo"
    CommandButton2.Caption = "Redo"
End Sub


ListBox 컨트롤, Column, ColumnCount, List 속성 예제

다음은 데이터를 포함한 2차원 배열과 Column과 List 속성을 사용하는 두 개의 ListBox 컨트롤을 차례로 읽어오는 예제입니다. Column 속성은 배열 요소를 읽어들이는 동안에 행 또는 열을 바꾸므로 주의해야 합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 ListBox1과 ListBox2라 명명된 두 개의 ListBox를 포함해야 합니다.

Dim MyArray(6,3)

Private Sub UserForm_Initialize()
    Dim i As Single
     'The 1st list box contains 3 data columns
    ListBox1.ColumnCount = 3
    'The 2nd box contains 6 data columns
     ListBox2.ColumnCount = 6

    'Load integer values into first column of MyArray
    For i = 0 To 5
        MyArray(i, 0) = i
    Next i

    'Load columns 2 and three of MyArray
    MyArray(0, 1) = "Zero"
    MyArray(1, 1) = "One"
    MyArray(2, 1) = "Two"
    MyArray(3, 1) = "Three"
    MyArray(4, 1) = "Four"
    MyArray(5, 1) = "Five"

    MyArray(0, 2) = "Zero"
    MyArray(1, 2) = "Un ou Une"
    MyArray(2, 2) = "Deux"
    MyArray(3, 2) = "Trois"
    MyArray(4, 2) = "Quatre"
    MyArray(5, 2) = "Cinq"

    'Load data into ListBox1 and ListBox2
    ListBox1.List() = MyArray
    ListBox2.Column() = MyArray

End Sub


ListBox 컨트롤, ColumnCount, ColumnWidths 속성 예제

다음은 ColumnWidths 속성을 사용하여 여러 열 ListBox의 열의 너비를 변경하는 예제입니다. 이 예제는 세 개의 TextBox 컨트롤을 사용하여 각 열의 너비를 지정합니다. 그리고 각 TextBox의 측정 단위를 지정하기 위하여 Exit 이벤트를 사용합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ListBox1이라 명명된 ListBox

  • TextBox1에서 TextBox3까지 명명된 세 개의 TextBox 컨트롤

  • CommandButton1이라 명명된 CommandButton

열을 숨기려면 0 값을 입력하십시오.

Dim MyArray(2, 3) As String

Private Sub CommandButton1_Click()
    'ColumnWidths requires a value for each column
    'separated by semicolons
    ListBox1.ColumnWidths = TextBox1.Text & ";" _
        & TextBox2.Text & ";" & TextBox3.Text
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As _
    MSForms.ReturnBoolean)
    'ColumnWidths accepts points (no units), inches
    'or centimeters; make inches the default
    If Not (InStr(TextBox1.Text, "in") > 0 Or _
     InStr(TextBox1.Text, "cm") > 0) Then
        TextBox1.Text = TextBox1.Text & " in"
    End If
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As _
    MSForms.ReturnBoolean)
    'ColumnWidths accepts points (no units), inches
    'or centimeters; make inches the default
    If Not (InStr(TextBox2.Text, "in") > 0 Or _
     InStr(TextBox2.Text, "cm") > 0) Then
        TextBox2.Text = TextBox2.Text & " in"
    End If
End Sub
Private Sub TextBox3_Exit(ByVal Cancel as MSForms.ReturnBoolean)
    'ColumnWidths accepts points (no units), inches or
    'centimeters; make inches the default
    If Not (InStr(TextBox3.Text, "in") > 0 Or _
     InStr(TextBox3.Text, "cm") > 0) Then
        TextBox3.Text = TextBox3.Text & " in"
    End If
End Sub
Private Sub UserForm_Initialize()
Dim i, j, Rows As Single

ListBox1.ColumnCount = 3
Rows = 2

For j = 0 To ListBox1.ColumnCount - 1
    For i = 0 To Rows - 1
        MyArray(i, j) = "Row " & i & ", Column " & j
    Next i
Next j
'Load MyArray into ListBox1
ListBox1.List() = MyArray
'1-inch columns initially
TextBox1.Text = "1 in"
TextBox2.Text = "1 in"
TextBox3.Text = "1 in"
End Sub


Controls 컬렉션, Move 메서드 예제

다음은 For Each...Next 반복 구조를 사용하여 Controls 컬렉션으로부터 각 컨트롤을 액세스하는 예제입니다. CommandButton1을 누르면 나머지 컨트롤은 Move 메서드를 사용하여 폼의 왼쪽 가장자리에 열로 배치됩니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 CommandButton1이라 명명된 CommandButton과 여러 다른 컨트롤을 포함해야 합니다.

Dim CtrlHeight As Single
Dim CtrlTop As Single
Dim CtrlGap As Single

Private Sub CommandButton1_Click()
    Dim MyControl As Control
    CtrlTop = 5

    For Each MyControl In Controls
        If MyControl.Name = "CommandButton1" Then
            'Don't move or resize this control.
        Else
            'Move method using named arguments
        MyControl.Move Top:=CtrlTop, _
            Height:=CtrlHeight, Left:=5

        'Move method using unnamed arguments (left,
        'top, width, height)
        'MyControl.Move 5, CtrlTop, ,CtrlHeight

            'Calculate top coordinate for next control
            CtrlTop = CtrlTop + CtrlHeight + CtrlGap
        End If
    Next

End Sub
Private Sub UserForm_Initialize()
    CtrlHeight = 20
    CtrlGap = 5

    CommandButton1.Caption = "Click to move controls"
    CommandButton1.AutoSize = True
    CommandButton1.Left = 120
    CommandButton1.Top = CtrlTop
End Sub


Move 메서드 예제

다음은 Controls 컬렉션과 함께 Move 메서드를 사용하여 폼에 모든 컨트롤을 이동시키는 것을 설명하는 예제입니다. 컨트롤을 이동하기 위해 CommandButton에서 클릭합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 폼은 CommandButton1로 명명된 CommandButton과 다른 여러 컨트롤을 포함해야 합니다.

Private Sub CommandButton1_Click()
    'Move each control on the form right 25 points
     'and up 25 points.
Controls.Move 25, -25
End Sub


Page 개체, CommandButton, MultiPage 컨트롤, ControlTipText 속성 에제

Page 개체, CommandButton, MultiPage 컨트롤, ControlTipText 속성 예제

다음은 세 개의 CommandButton 컨트롤과 MultiPage 안에 있는 두 개의 Page 개체에 대하여 ControlTipText 속성을 정의하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • MultiPage1라 명명된 MultiPage

  • CommandButton1에서 CommandButton3까지 명명된 세 개의 CommandButton 컨트롤

참고 MultiPage의 각 Page에 관하여 ControlTipText는 MultiPage 나 MultiPage의 현재 페이지의 컨트롤이 포커스를 가지고 있을 때 가능합니다.

Private Sub UserForm_Initialize()
    MultiPage1.Page1.ControlTipText = "Here in page 1"
    MultiPage1.Page2.ControlTipText = "Now in page 2"

    CommandButton1.ControlTipText = "And now here's"
    CommandButton2.ControlTipText = "a tip from"
    CommandButton3.ControlTipText = "your controls!"
End Sub


ListBox 컨트롤, BoundColumn, ControlSource, RowSource 속성 에제

ListBox 컨트롤, BoundColumn, ControlSource, RowSource 속성 예제

다음은 ListBox의 워크시트 셀의 범위를 사용하여 목록으로부터 행을 선택하였을 때 다른 워크시트 셀에 행 인덱스를 나타내는 예제입니다. 이 예제 코드는 RowSource, BoundColumn과 ControlSource 속성을 사용합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 ListBox1이라 명명된 ListBox를 포함해야 합니다. 워크시트에서 셀 A1:E4에 데이터를 입력합니다. 또한 셀 A6가 데이터를 포함하지 않도록 해야 합니다.

Private Sub UserForm_Initialize()

ListBox1.ColumnCount = 5
ListBox1.RowSource = "a1:e4"

ListBox1.ControlSource = "a6"
'Place the ListIndex into cell a6
ListBox1.BoundColumn = 0
End Sub


Count 속성 예제

다음은 폼에 맞는 Controls 컬렉션의 Count 속성을 나타내며 Count 속성은 각 MultiPage와 TabStrip의 페이지의 탭과 탭의 개수를 인식하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 다수의 컨트롤을 포함할 수 있으며 다음의 제약 조건을 만족해야 합니다.

  • MultiPage 컨트롤의 이름은 "MultiPage"로 시작해야 합니다

  • TabStrip 컨트롤의 이름은 "TabStrip"으로 시작해야 합니다.

참고 사용자는 MultiPage에 페이지를 추가하거나 TabStrip에 탭을 추가할 수 있습니다. 윈도우에서, 컨트롤을 두 번 클릭하고 컨트롤의 탭 영역에서 마우스 오른쪽 단추를 눌러 바로 가기 메뉴에서 New Page를 선택합니다.

Private Sub UserForm_Initialize()
    Dim MyControl As Control

    MsgBox "UserForm1.Controls.Count = " _
        & Controls.Count

    For Each MyControl In Controls
        If (MyControl.Name Like "MultiPage*") Then
            MsgBox MyControl.Name _
                    & ".Pages.Count = " _
                    & MyControl.Pages.Count
        ElseIf (MyControl.Name Like "TabStrip*") Then
            MsgBox MyControl.Name & ".Tabs.Count = " _
                    & MyControl.Tabs.Count
        End If
    Next

End Sub


KeyDown 이벤트, TextBox 컨트롤, CurLine, CurTargetX, CurX, Text 속성 예제

다음은 여러 줄 TextBox 안에서 CurLine, CurTargetX와 CurX 속성 설정을 추적하는 예제입니다. Text 속성에 입력하고 키보드를 사용하여 삽입 지점를 움직여 선택 지점을 확장하면 이들 설정은 KeyUp 이벤트에서 변경됩니다.

이 예제를 사용하려면 다음의 절차를 따라야 합니다.

  1. 이 예제 코드를 폼의 선언부에 복사합니다.

  2. 폼에 TextBox1이라 명명된 확대 TextBox를 추가합니다.

  3. 열 하나에 TextBox2, TextBox3, TextBox4라 명명된 세 개의 TextBox를 추가합니다.
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    TextBox2.Text = TextBox1.CurLine
    TextBox3.Text = TextBox1.CurX
    TextBox4.Text = TextBox1.CurTargetX
End Sub
Private Sub UserForm_Initialize()
    TextBox1.MultiLine = True

    TextBox1.Text = "Type your text here. User CTRL + ENTER to start a new line."
End Sub


Add, Cut, Paste 메서드, Page 개체, MultiPage 컨트롤 예제

다음은 Add, Cut과 Paste 메서드를 사용하여 MultiPage의 Page로부터 컨트롤을 잘라내고 붙여넣는 예제입니다. 잘라내기와 붙여넣기 동작에 포함된 컨트롤은 폼에 동적으로 추가됩니다.

이 예제는 새 컨트롤을 추가하여 자르고, 붙여넣을 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언 부분에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1에서 CommandButton3까지 명명된 세 개의 CommandButton 컨트롤

  • MultiPage1이라 명명된 MultiPage
Dim MyTextBox As Control

Private Sub CommandButton1_Click()
    Set MyTextBox = MultiPage1.Pages(MultiPage1.Value).Controls_
    .Add("MSForms.TextBox.1", "MyTextBox", Visible)
    CommandButton2.Enabled = True
    CommandButton1.Enabled = False
End Sub

Private Sub CommandButton2_Click()
    MultiPage1.Pages(MultiPage1.Value).Controls.Cut
    CommandButton3.Enabled = True
    CommandButton2.Enabled = False
End Sub

Private Sub CommandButton3_Click()
    Dim MyPage As Object
    Set MyPage = _
        MultiPage1.Pages.Item(MultiPage1.Value)

    MyPage.Paste
    CommandButton3.Enabled = False
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Add"
    CommandButton2.Caption = "Cut"
    CommandButton3.Caption = "Paste"

    CommandButton1.Enabled = True
    CommandButton2.Enabled = False
    CommandButton3.Enabled = False
End Sub


Cut, Paste 메서드, TextBox 컨트롤 에제

Cut, Paste 메서드, TextBox 컨트롤 예제

다음은 Cut과 Paste 메서드를 사용하여 텍스트를 한 TextBox로부터 잘라내어 다른 TextBox로 붙여넣는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1과 TextBox2라 명명된 두 개의 TextBox 컨트롤

  • CommandButton1이라 명명된 CommandButton
Private Sub UserForm_Initialize()
    TextBox1.Text = "From TextBox1!"
    TextBox2.Text = "Hello "

    CommandButton1.Caption = "Cut and Paste"
    CommandButton1.AutoSize = True
End Sub

Private Sub CommandButton1_Click()
    TextBox2.SelStart = 0
    TextBox2.SelLength = TextBox2.TextLength
    TextBox2.Cut

    TextBox1.SetFocus
    TextBox1.SelStart = 0

    TextBox1.Paste
    TextBox2.SelStart = 0
End Sub


Cycle 속성 예제

다음은 Frame과 MultiPage의 두 개의 Page 개체에 대한 Cycle 속성을 정의하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Frame1이라 명명된 Frame

  • Page1과 Page2라 명명된 개체 두 개를 포함하는 MultiPage1이라 명명된 MultiPage

  • CommandButton1과 CommandButton2라 명명된 두 개의 CommandButton 컨트롤

폼에서 Frame과 MultiPage의 각 Page는 한 쌍의 컨트롤을 배치하여 Cycle이 Frame과 MultiPage의 탭 순서에 어떻게 작용하는지 알 수 있습니다.

Cycle이 탭 순서에 어떻게 작용하는지 보려면 컨트롤을 통하여 탭 이동해야 합니다. CommandButton1을 누르면 탭 순서가 확장되어 Frame의 컨트롤과 Page 개체를 포함하게 되고 CommandButton2를 누르면 탭 순서를 제한하게 됩니다.

Private Sub RestrictCycles()
'Limit tab order for the Frame and Page objects
    Frame1.Cycle = fmCycleCurrentForm
    MultiPage1.Page1.Cycle = fmCycleCurrentForm
    MultiPage1.Page2.Cycle = fmCycleCurrentForm
End Sub

Private Sub UserForm_Initialize()
    RestrictCycles
End Sub

Private Sub CommandButton1_Click()
'Extend tab order subforms (the Frame and Page
'objects)
    Frame1.Cycle = fmCycleAllForms
    MultiPage1.Page1.Cycle = fmCycleAllForms
    MultiPage1.Page2.Cycle = fmCycleAllForms
End Sub

Private Sub CommandButton2_Click()
    RestrictCycles
End Sub


SpinDown, SpinUp 이벤트, Delay 속성 예제

SpinDown, SpinUp 이벤트, Delay 속성 에제

다음은 마우스 단추를 누른 상태에서 SpinButton이나 ScrollBar의 값을 변경할 때 발생하는 연속적인 Change, SpinUp과 SpinDown 이벤트 사이의 시간 간격을 설명하는 예제입니다.

이 예제에서 지연 설정을 선택하여 SpinButton의 양쪽을 누르고 있습니다. SpinUp과 SpinDown 이벤트는 초기화된 상태로 ListBox에 기록됩니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • SpinButton1이라 명명된 SpinButton

  • OptionButton1과 OptionButton2라 명명된 두 개의 OptionButton 컨트롤

  • ListBox1이라 명명된 ListBox
Dim EventCount As Long

Private Sub ResetControl()
    ListBox1.Clear
    EventCount = 0
    SpinButton1.Value = 5000
End Sub

Private Sub UserForm_Initialize()
    SpinButton1.Min = 0
    SpinButton1.Max = 10000
    ResetControl

    SpinButton1.Delay = 50
    OptionButton1.Caption = "50 millisecond delay"
    OptionButton2.Caption = "250 millisecond delay"

    OptionButton1.Value = True
End Sub

Private Sub OptionButton1_Click()
    SpinButton1.Delay = 50
    ResetControl
End Sub

Private Sub OptionButton2_Click()
    SpinButton1.Delay = 250
    ResetControl
End Sub

Private Sub SpinButton1_SpinDown()
    EventCount = EventCount + 1
    ListBox1.AddItem EventCount
End Sub

Private Sub SpinButton1_SpinUp()
    EventCount = EventCount + 1
    ListBox1.AddItem EventCount
End Sub


ListBox 컨트롤, DataObject 개체, MouseMove 이벤트, StartDrag, SetText 메서드 에제

다음은 끌어온 텍스트를 포함하는 DataObject를 사용하여 ListBox에서 또 다른 ListBox로 끌어서 놓기 동작을 설명하는 예제입니다. 이 예제 코드는 끌어서 놓기 동작의 보완을 위해 MouseMove 이벤트에서 SetText와 StartDrag 메서드를 사용합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 ListBox1과 ListBox2라 명명된 두 개의 ListBox 컨트롤을 포함해야 합니다. 또한 제2 ListBox를 추가 선택할 필요가 있습니다.

Private Sub ListBox2_BeforeDragOver(ByVal Cancel As _
    MSForms.ReturnBoolean, ByVal Data As _
    MSForms.DataObject, ByVal X As Single, _
    ByVal Y As Single, ByVal DragState As Long, _
    ByVal Effect As MSForms.ReturnEffect, _
    ByVal Shift As Integer)
    Cancel = True
    Effect = 1
End Sub

Private Sub ListBox2_BeforeDropOrPaste(ByVal _
    Cancel As MSForms.ReturnBoolean, _
    ByVal Action As Long, ByVal Data As _
    MSForms.DataObject, ByVal X As Single, _
    ByVal Y As Single, ByVal Effect As _
    MSForms.ReturnEffect, ByVal Shift As Integer)
    Cancel = True
    Effect = 1
    ListBox2.AddItem Data.GetText
End Sub

Private Sub ListBox1_MouseMove(ByVal Button As _
     Integer, ByVal Shift As Integer, ByVal X As _
     Single, ByVal Y As Single)
    Dim MyDataObject As DataObject
    If Button = 1 Then
        Set MyDataObject = New DataObject
        Dim Effect As Integer
        MyDataObject.SetText ListBox1.Value
        Effect = MyDataObject.StartDrag
    End If
End Sub

Private Sub UserForm_Initialize()
    For i = 1 To 10
        ListBox1.AddItem "Choice " _
            & (ListBox1.ListCount + 1)
    Next i
End Sub


DragBehavior, EnterFieldBehavior 속성 예제

다음은 DragBehavior와 EnterFieldBehavior 속성을 사용하여 컨트롤을 입력할 때와 하나의 컨트롤에서 다른 컨트롤로 정보를 끌어올 때 다르게 나타나는 효과를 설명하는 예제입니다.

이 예제는 두 개의 TextBox 컨트롤을 사용합니다. 각 컨트롤에 대해 DragBehavior와 EnterFieldBehavior를 설정할 수 있고 한 컨트롤에서 다른 컨트롤로 끌어올 때의 효과를 볼 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • ToggleButton1과 ToggleButton2라 명명된 두 개의 ToggleButton 컨트롤. 이들 컨트롤은 TextBox1과 연관이 있습니다.

  • TextBox2라 명명된 TextBox

  • ToggleButton3과 ToggleButton4라 명명된 두 개의 ToggleButton 컨트롤. 이들 컨트롤은 TextBox2와 연관이 있습니다.
Private Sub UserForm_Initialize()
    TextBox1.Text = "Once upon a time in a land ...,"
    ToggleButton1.Value = True
    ToggleButton1.Caption = "Drag Enabled"
    ToggleButton1.WordWrap = True
    TextBox1.DragBehavior = fmDragBehaviorEnabled

    ToggleButton2.Value = True
    ToggleButton2.Caption = "Recall Selection"
    ToggleButton2.WordWrap = True
    TextBox1.EnterFieldBehavior = _
        fmEnterFieldBehaviorRecallSelection

    TextBox2.Text = "XXX, YYYY"
    ToggleButton3.Value = False
    ToggleButton3.Caption = "Drag Disabled"
    ToggleButton3.WordWrap = True
    TextBox2.DragBehavior = fmDragBehaviorDisabled

    ToggleButton4.Value = False
    ToggleButton4.Caption = "Select All"
    ToggleButton4.WordWrap = True
    TextBox2.EnterFieldBehavior = _
        fmEnterFieldBehaviorSelectAll
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
       ToggleButton1.Caption = "Drag Enabled"
       TextBox1.DragBehavior = fmDragBehaviorEnabled
    Else
       ToggleButton1.Caption = "Drag Disabled"
       TextBox1.DragBehavior = fmDragBehaviorDisabled
    End If
End Sub

Private Sub ToggleButton2_Click()
    If ToggleButton2.Value = True Then
        ToggleButton2.Caption = "Recall Selection"
        TextBox1.EnterFieldBehavior = _
            fmEnterFieldBehaviorRecallSelection
    Else
        ToggleButton2.Caption = "Select All"
        TextBox1.EnterFieldBehavior = _
            fmEnterFieldBehaviorSelectAll
    End If
End Sub

Private Sub ToggleButton3_Click()
    If ToggleButton3.Value = True Then
       ToggleButton3.Caption = "Drag Enabled"
       TextBox2.DragBehavior = fmDragBehaviorEnabled
    Else
       ToggleButton3.Caption = "Drag Disabled"
       TextBox2.DragBehavior = fmDragBehaviorDisabled
    End If
End Sub

Private Sub ToggleButton4_Click()
    If ToggleButton4.Value = True Then
        ToggleButton4.Caption = "Recall Selection"
        TextBox2.EnterFieldBehavior = _
            fmEnterFieldBehaviorRecallSelection
    Else
       ToggleButton4.Caption = "Select All"
       TextBox2.EnterFieldBehavior = _
            fmEnterFieldBehaviorSelectAll
    End If
End Sub


Locked, DropButtonStyle, ShowDropButtonWhen 속성 예제

다음은 ComboBox나 TextBox에서 드롭다운 화살표를 지정할 수 있는 다른 기호를 설명하는 예제입니다. 이 예제에서는 드롭다운 화살표의 스타일을 ComboBox에서 선택할 수 있습니다. 또한 이 예제는 Locked 속성을 사용할 수 있습니다. 이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사하여야 합니다. 이 때 다음의 폼을 사용해야 합니다.

  • ComboBox1이라고 명명된 ComboBox

  • Label1이라 명명된 Label

  • Label1 아래에 위치한 TextBox1이라고 명명된 TextBox
Private Sub ComboBox1_Click()
    ComboBox1.DropButtonStyle = ComboBox1.Value
    TextBox1.DropButtonStyle = ComboBox1.Value
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.ColumnCount = 2
    ComboBox1.BoundColumn = 2
    ComboBox1.TextColumn = 1

    ComboBox1.AddItem "Blank Button"
    ComboBox1.List(0, 1) = 0
    ComboBox1.AddItem "Down Arrow"
    ComboBox1.List(1, 1) = 1
    ComboBox1.AddItem "Ellipsis"
    ComboBox1.List(2, 1) = 2
    ComboBox1.AddItem "Underscore"
    ComboBox1.List(3, 1) = 3

    ComboBox1.Value = 0

    TextBox1.Text = "TextBox1"
    TextBox1.ShowDropButtonWhen = fmShowDropButtonWhenAlways
    TextBox1.Locked = True

    Label1.Caption = "TheDropButton also " _
        & "applies to a TextBox."
    Label1.AutoSize = True
    Label1.WordWrap = False
End Sub


DropDown 메서드 예제

다음은 DropDown 메서드를 사용하여 ComboBox의 목록을 표시하는 예제입니다. CommandButton을 클릭하여 ComboBox의 목록을 나타낼 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ComboBox1이라 명명된 ComboBox

  • CommandButton1이라 명명된 CommandButton
Private Sub CommandButton1_Click()
    ComboBox1.DropDown
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.AddItem "Turkey"
    ComboBox1.AddItem "Chicken"
    ComboBox1.AddItem "Duck"
    ComboBox1.AddItem "Goose"
    ComboBox1.AddItem "Grouse"
End Sub


CheckBox 컨트롤, Enabled, Locked 속성 예제

다음은 Enabled와 Locked 속성 그리고 이 속성들이 어떻게 서로 보완되는지를 설명하는 예제입니다. 이 예제는 CheckBox가 가지고 있는 각 속성을 독립적으로 나타내므로 설정은 개별적으로도 결합된 것으로도 확인할 수 있습니다. 또한 이 예제는 두 번째 TextBox를 포함하므로 TextBox 컨트롤과 이 속성들의 설정으로 지원되는 작업을 확인하면서 그 사이에 정보를 복사하고 붙일 수 있습니다.

참고 선택한 것을 Ctrl+C를 사용하여 클립보드에 복사하고 Ctrl+V를 사용하여 붙여넣을 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • CheckBox1과 CheckBox2라 명명된 두 개의 CheckBox 컨트롤

  • TextBox2라 명명된 제 2 TextBox
Private Sub CheckBox1_Change()
    TextBox2.Text = "TextBox2"
    TextBox1.Enabled = CheckBox1.Value
End Sub

Private Sub CheckBox2_Change()
    TextBox2.Text = "TextBox2"
    TextBox1.Locked = CheckBox2.Value
End Sub

Private Sub UserForm_Initialize()
    TextBox1.Text = "TextBox1"
    TextBox1.Enabled = True
    TextBox1.Locked = False

    CheckBox1.Caption = "Enabled"
    CheckBox1.Value = True

    CheckBox2.Caption = "Locked"
    CheckBox2.Value = False

    TextBox2.Text = "TextBox2"
End Sub


EnterKeyBehavior, MultiLine 속성 예제

다음은 EnterKeyBehavior 속성을 사용하여 TextBox에서 Enter 키의 효과를 제어하는 예제입니다. 이 예제에서 TextBox를 한 줄이나 여러 줄로 결정할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • ToggleButton1과 ToggleButton2라 명명된 두 개의 ToggleButton 컨트롤
Private Sub UserForm_Initialize()
    TextBox1.EnterKeyBehavior = True
    ToggleButton1.Caption = "EnterKeyBehavior is True"
    ToggleButton1.Width = 70
    ToggleButton1.Value = True

    TextBox1.MultiLine = True
    ToggleButton2.Caption = "MultiLine is True"
    ToggleButton2.Width = 70
    ToggleButton2.Value = True

    TextBox1.Height = 100
    TextBox1.WordWrap = True
    TextBox1.Text = "Type your text here. If " _
        & "EnterKeyBehavior is True, " _
        & "press Enter to start a new line. Otherwise, press SHIFT+ENTER."
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        TextBox1.EnterKeyBehavior = True
        ToggleButton1.Caption = _
            "EnterKeyBehavior is True"
    Else
        TextBox1.EnterKeyBehavior = False
        ToggleButton1.Caption = _
            "EnterKeyBehavior is False"
    End If
End Sub

Private Sub ToggleButton2_Click()
    If ToggleButton2.Value = True Then
        TextBox1.MultiLine = True
        ToggleButton2.Caption = "MultiLine TextBox"
    Else
        TextBox1.MultiLine = False
        ToggleButton2.Caption = "Single-line TextBox"
    End If
End Sub


GetFormat, GetText, SetText 메서드 예제

다음은 GetFormat, GetText와 SetText 메서드를 사용하여 텍스트를 DataObject와 클립보드 사이로 전송하는 예제입니다.

TextBox 안에 텍스트를 입력하고 CommandButton1을 클릭하여 표준 텍스트 형식으로 DataObject에 전송할 수 있습니다. CommandButton2를 클릭하면 DataObject에서 텍스트를 검색합니다. CommandButton3을 클릭하면 TextBox1에서 DataObject로 사용자 정의 형식으로 텍스트를 복사합니다. CommandButton4를 클릭하면 DataObject에서 사용자 정의 형식으로 문자열을 검색합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • CommandButton1에서 CommandButton4까지 명명된 네 개의 CommandButton 컨트롤

  • Label1이라 명명된 Label
Dim MyDataObject As DataObject

Private Sub CommandButton1_Click()
'Put standard format on Clipboard
    If TextBox1.TextLength > 0 Then
        Set MyDataObject = New DataObject
        MyDataObject.SetText TextBox1.Text
        Label1.Caption = "Put on D.O."
        CommandButton2.Enabled = True
        CommandButton4.Enabled = False
    End If
End Sub

Private Sub CommandButton2_Click()
'Get standard format from Clipboard
    If MyDataObject.GetFormat(1) = True Then
        Label1.Caption = "Std format - " _
            & MyDataObject.GetText(1)
    End If
End Sub

Private Sub CommandButton3_Click()
'Put custom format on Clipboard
    If TextBox1.TextLength > 0 Then
        Set MyDataObject = New DataObject
        MyDataObject.SetText TextBox1.Text, 233
        Label1.Caption = "Custom on D.O."
        CommandButton4.Enabled = True
        CommandButton2.Enabled = False
    End If
End Sub

Private Sub CommandButton4_Click()
'Get custom format from Clipboard
    If MyDataObject.GetFormat(233) = True Then
        Label1.Caption = "Cust format - " _
            & MyDataObject.GetText(233)
End If
End Sub

Private Sub UserForm_Initialize()
    CommandButton2.Enabled = False
    CommandButton4.Enabled = False
End Sub


Copy, GetFromClipboard, GetText 메서드, DataObject 개체 예제

이 예제는 TextBox 에서 클립보드로, 클립보드에서 DataObject로, 그리고 DataObject 에서 또 다른 TextBox으로 데이터를 이동하는 것을 설명하는 예제입니다. GetFromClipboard 메서드는 데이터를 클립보드에서 DataObject로 전송합니다. Copy와 GetText 메서드 또한 사용됩니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1과 TextBox2라 명명된 두 개의 TextBox 컨트롤

  • CommandButton1이라 명명된 CommandButton
Dim MyData as DataObject

Private Sub CommandButton1_Click()
    'Need to select text before copying it to Clipboard
    TextBox1.SelStart = 0
    TextBox1.SelLength = TextBox1.TextLength
    TextBox1.Copy

    MyData.GetFromClipboard
    TextBox2.Text = MyData.GetText(1)
End Sub

Private Sub UserForm_Initialize()
    Set MyData = New DataObject
    TextBox1.Text = "Move this data to the " _
        & "Clipboard, to a DataObject, then to "
        & "TextBox2!"
End Sub


GroupName 속성 예제

다음은 GroupName 속성을 사용하여 동일한 폼에서 OptionButton 컨트롤 그룹 두 개를 만드는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 OptionButton1에서 OptionButton5까지 명명된 다섯 개의 OptionButton을 포함해야 합니다.

Private Sub UserForm_Initialize()
    OptionButton1.GroupName = "Widgets"
    OptionButton2.GroupName = "Widgets"
    OptionButton4.GroupName = "Widgets"

    OptionButton3.GroupName = "Gadgets-Group2"
    OptionButton5.GroupName = "Gadgets-Group2"
End Sub


TextBox 컨트롤, SetFocus 메서드, EnterFieldBehavior, HideSelection, MultiLine, Value 속성 예제

다음은 폼 하나 또는 그 이상의 컨텍스트에서 HideSelection 속성을 설명한 예제입니다. 포커스를 두 번째 폼에 전송하는 것 뿐만 아니라 TextBox에서 텍스트를 선택하여 폼의 다른 컨트롤로 탭 이동할 수 있습니다. 또한 이 예제 코드는 SetFocus 메서드와 EnterFieldBehavior, MultiLine과 Value 속성을 사용합니다.

이 예제를 사용하려면 다음의 단계를 따라야 합니다.

  1. 마지막 이벤트 서브루틴을 제외하고 이 예제 코드를 폼의 선언부에 복사합니다.

  2. TextBox1이라 명명된 확대 TextBox, ToggleButton1이라 명명된 ToggleButton 그리고 CommandButton1이라 명명된 CommandButton을 추가합니다.

  3. 프로젝트에서 UserForm2라 명명된 개체에 제 2폼을 삽입합니다.

  4. UserForm2의 선언부에 이 목록의 마지막 이벤트 서브루틴을 붙여넣습니다.

  5. 이 폼에서 CommandButton1이라 명명된 CommandButton을 추가합니다.

  6. UserForm1을 실행합니다.

' ***** UserForm1에 대한 코드 *****

Private Sub CommandButton1_Click()
    TextBox1.SetFocus
    UserForm2.Show    'Bring up the second form.
End Sub
Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        TextBox1.HideSelection = False
        ToggleButton1.Caption = "Selection Visible"
    Else
        TextBox1.HideSelection = True
        ToggleButton1.Caption = "Selection Hidden"
    End If
End Sub
Private Sub UserForm_Initialize()
    TextBox1.MultiLine = True
    TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

'Fill the TextBox
    TextBox1.Text = "SelText indicates the starting " _
        & "point of selected text, or the insertion " _
        & point if no text is selected." & Chr$(10) _
        & Chr$(13) & "The SelStart property is " _
        & "always valid, even when the control does " _
        & "not have focus. Setting SelStart to a " _
        & "value less than zero creates an error. " _
        & Chr$(10) & Chr$(13) & "Changing the value " _
        & "of SelStart cancels any existing " _
        & "selection in the control, places " _
        & "an insertion point in the text, and sets " _
        & "the SelLength property to zero."

    TextBox1.HideSelection = True
    ToggleButton1.Caption = "Selection Hidden"
    ToggleButton1.Value = False

End Sub

'

' ***** UserForm2에 대한 코드 *****

Private Sub CommandButton1_Click()
    UserForm2.Hide
End Sub


Index 속성 예제

다음은 Index 속성을 이용하여 MultiPage와 TabStrip에서 페이지와 탭의 순서를 변경하는 예제입니다. CommandButton1을 선택하여 세 번째 페이지와 탭을 MultiPage와 TabStrip 앞으로 이동할 수 있습니다. CommandButton2를 선택하여 세 번째 페이지와 탭을 MultiPage와 TabStrip 뒤로 이동할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1과 CommandButton2라 명명된 두 개의 CommandButton 컨트롤

  • MultiPage1이라 명명된 MultiPage

  • TabStrip1이라 명명된 TabStrip
Dim MyPageOrTab As Object

Private Sub CommandButton1_Click()
'Move third page and tab to front of control
    MultiPage1.page3.Index = 0
    TabStrip1.Tab3.Index = 0
End Sub

Private Sub CommandButton2_Click()
'Move selected page and tab to back of control
    Set MyPageOrObject = MultiPage1.SelectedItem
    MsgBox "MultiPage1.SelectedItem = " _
        & MultiPage1.SelectedItem.Name
    MyPageOrObject.Index = 4

    Set MyPageOrObject = TabStrip1.SelectedItem
    MsgBox "TabStrip1.SelectedItem = " _
        & TabStrip1.SelectedItem.Caption
    MyPageOrObject.Index = 4
End Sub

Private Sub UserForm_Initialize()
    MultiPage1.Width = 200
    MultiPage1.Pages.Add
    MultiPage1.Pages.Add
    MultiPage1.Pages.Add

    TabStrip1.Width = 200
    TabStrip1.Tabs.Add
    TabStrip1.Tabs.Add
    TabStrip1.Tabs.Add

    CommandButton1.Caption = _
        "Move third page/tab to front"
    CommandButton1.Width = 120

    CommandButton2.Caption = _
        "Move selected item to back"
    CommandButton2.Width = 120
 End Sub


InsideHeight, InsideWidth 속성 예제

다음은 InsideHeight와 InsideWidth 속성을 사용하여 CommandButton의 크기를 다시 설정하는 예제입니다. 크기를 다시 설정하려면, CommandButton을 클릭합니다.

참고 InsideHeight와 InsideWidth 속성은 읽기 전용입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1이라 명명된 CommandButton
Dim Resize As Single

Private Sub UserForm_Initialize()
    Resize = 0.75
    CommandButton1.Caption = "Resize Button"

End Sub

Private Sub CommandButton1_Click()
    CommandButton1.Move 10, 10, _
        UserForm1.InsideWidth * Resize, _
        UserForm1.InsideHeight * Resize
    CommandButton1.Caption = "Button resized " _
        & "using InsideHeight and InsideWidth!"
End Sub


Item 메서드, OptionButton 컨트롤 예제

다음은 Item 메서드를 사용하여 Controls과 Pages 컬렉션의 각 구성원에 액세스하는 예제입니다. Controls 컬렉션이나 MultiPage에 대한 옵션 단추 중 하나를 선택하여 CommandButton을 클릭합니다. 그러면 적절한 컨트롤의 이름이 Label에 반환됩니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때, 다음의 폼을 포함해야 합니다.

  • CommandButton1이라 명명된 CommandButton

  • Label1이라 명명된 Label

  • OptionButton1과 OptionButton2라 명명된 두 개의 OptionButton 컨트롤

  • MultiPage1이라 명명된 MultiPage
Dim MyControl As Object
Dim ControlsIndex As Integer

Private Sub CommandButton1_Click()
    If OptionButton1.Value = True Then
        'Process Controls collection for UserForm
        Set MyControl = Controls.Item(ControlsIndex)
        Label1.Caption = MyControl.Name

        'Prepare index for next control on Userform
        ControlsIndex = ControlsIndex + 1
        If ControlsIndex >= Controls.Count Then
            ControlsIndex = 0
        End If

    ElseIf OptionButton2.Value = True Then
        'Process Current Page of Pages collection
        Set MyControl = MultiPage1.Pages _
            .Item(MultiPage1.Value)
        Label1.Caption = MyControl.Name
    End If
End Sub

Private Sub UserForm_Initialize()
    ControlsIndex = 0

    OptionButton1.Caption = "Controls Collection"
    OptionButton2.Caption = "Pages Collection"
    OptionButton1.Value = True

    CommandButton1.Caption = "Get Member Name"
End Sub


KeyPress 이벤트 예제

다음은 KeyPress 이벤트를 사용하여 한 TextBox에서 두 번째 TextBox로 키 입력을 복사하는 예제입니다. 표시된 TextBox에 정확하게 입력합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1과 TextBox2라 명명된 두 개의 TextBox 컨트롤
Private Sub TextBox1_KeyPress(ByVal KeyAscii As _
    MSForms.ReturnInteger)
    TextBox2.Text = TextBox2.Text & Chr(KeyAscii)

    'To handle keyboard combinations (using SHIFT,
     'CONTROL, OPTION, COMMAND, and another key),
    'or TAB or ENTER, use the KeyDown or KeyUp event.
End Sub

Private Sub UserForm_Initialize()
    Move 0, 0, 570, 380

    TextBox1.Move 30, 40, 220, 160
    TextBox1.MultiLine = True
    TextBox1.WordWrap = True
    TextBox1.Text = "Type text here."
    TextBox1.EnterKeyBehavior = True

    TextBox2.Move 298, 40, 220, 160
    TextBox2.MultiLine = True
    TextBox2.WordWrap = True
    TextBox2.Text = "Typed text copied here."
    TextBox2.Locked = True
 End Sub


LargeChange, SmallChange 속성 예제

다음은 독립형 ScrollBar와 함께 사용되는 LargeChange 속성과 SmallChange 속성을 설명하는 예제입니다. LargeChange 값과 SmallChange 값을 0부터 100에 걸쳐 모든 정수에 설정할 수 있습니다. 이 예제는 MaxLength 속성을 사용하여 LargeChange 값과 SmallChange 값에 등록된 문자 수를 제한합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label과 TextBox1로 명명된 TextBox

  • Label2라 명명된 Label 과 TextBox2라 명명된 TextBox

  • ScrollBar1이라 명명된 ScrollBar

  • Label3이라 명명된 Label
Dim TempNum As Integer

Private Sub ScrollBar1_Change()
    Label3.Caption = ScrollBar1.Value
End Sub

Private Sub TextBox1_Change()
    If IsNumeric(TextBox1.Text) Then
        TempNum = CInt(TextBox1.Text)
        If TempNum >= 0 And TempNum <= 100 Then
            ScrollBar1.SmallChange = TempNum
        Else
            TextBox1.Text = ScrollBar1.SmallChange
        End If
    Else
        TextBox1.Text = ScrollBar1.SmallChange
    End If
End Sub

Private Sub TextBox2_Change()
    If IsNumeric(TextBox2.Text) Then
        TempNum = CInt(TextBox2.Text)
        If TempNum >= 0 And TempNum <= 100 Then
            ScrollBar1.LargeChange = TempNum
        Else
            TextBox2.Text = ScrollBar1.LargeChange
        End If
    Else
        TextBox2.Text = ScrollBar1.LargeChange
    End If
End Sub

Private Sub UserForm_Initialize()
    ScrollBar1.Min = -1000
    ScrollBar1.Max = 1000

    Label1.Caption = "SmallChange 0 to 100"
    ScrollBar1.SmallChange = 1
    TextBox1.Text = ScrollBar1.SmallChange
    TextBox1.MaxLength = 3

    Label2.Caption = "LargeChange 0 to 100"
    ScrollBar1.LargeChange = 100
    TextBox2.Text = ScrollBar1.LargeChange
    TextBox2.MaxLength = 3

    ScrollBar1.Value = 0
    Label3.Caption = ScrollBar1.Value
End Sub


Layout 이벤트, LayoutEffect 속성, Move 메서드 예제

다음은 Move 메서드와 함께 폼에서 선택된 컨트롤을 옮기고, 움직인(그리고 UserForm의 레이아웃을 변경한) 컨트롤을 명시하기 위하여 Layout 이벤트와 LayoutEffect 속성을 사용하는 예제입니다. 컨트롤을 눌러 이동하려면 CommandButton을 클릭합니다. 메시지 상자는 이동하는 컨트롤의 이름을 나타냅니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • ComboBox1이라 명명된 ComboBox

  • OptionButton1이라 명명된 OptionButton

  • CommandButton1이라 명명된 CommandButton

  • ToggleButton1이라 명명된 ToggleButton
Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Move current control"
    CommandButton1.AutoSize = True
    CommandButton1.TakeFocusOnClick = False

    ToggleButton1.Caption = "Use Layout Event"
    ToggleButton1.Value = True
End Sub

Private Sub CommandButton1_Click()
    If ActiveControl.Name = "ToggleButton1" Then
        'Keep it stationary
    Else
        'Move the control, using Layout event when
          'ToggleButton1.Value is True
        ActiveControl.Move 0, 0, , , _
            ToggleButton1.Value
    End If
End Sub

Private Sub UserForm_Layout()
    Dim MyControl As Control

    MsgBox "In the Layout Event"

    'Find the control that is moving.
    For Each MyControl In Controls
        If MyControl.LayoutEffect = _
            fmLayoutEffectInitiate Then
            MsgBox MyControl.Name & " is moving."
            Exit For
        End If
    Next
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        ToggleButton1.Caption = "Use Layout Event"
    Else
        ToggleButton1.Caption = "No Layout Event"
    End If
End Sub


SetFocus 메서드, LineCount, TextLength 속성 예제

다음은 LineCount와 TextLength 속성, 그리고 SetFocus 메서드를 사용하여 TextBox 내에 있는 텍스트의 문자와 줄 수를 계산하는 예제입니다. 이 예제에서 LineCount와 TextLength 속성의 현재 값을 구할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 컨트롤을 포함하는 폼이어야 합니다.

  • TextBox1이라 명명된 TextBox

  • CommandButton1이라 명명된 CommandButton

  • Label1과 Label2라 명명된 두 개의 Label
'Type SHIFT+ENTER to start a new line in the text box.

Private Sub CommandButton1_Click()
    'Must first give TextBox1 the focus to get line
     'count
    TextBox1.SetFocus
    Label1.Caption = "LineCount = " _
        & TextBox1.LineCount
    Label2.Caption = "TextLength = " _
        & TextBox1.TextLength
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.WordWrap = True
    CommandButton1.AutoSize = True
    CommandButton1.Caption = "Get Counts"

    Label1.Caption = "LineCount = "
    Label2.Caption = "TextLength = "

    TextBox1.MultiLine = True
    TextBox1.WordWrap = True
    TextBox1.Text = "Enter your text here."
End Sub


ListBox 컨트롤, List 속성 예제

다음은 여러 열 ListBox의 열을 교체하는 예제입니다. 이 예제는 다음의 두 가지 방법으로 List 속성을 사용합니다.

  1. ListBox에서 각 값을 액세스하여 교환하는 방법입니다. 이 방법에서 List에는 특정 값의 열과 행을 나타내는 아래 첨자가 있습니다.

  2. 배열에서의 값으로 ListBox를 초기 상태로 읽어들이는 방법입니다. 이 방법에서 List에는 아래 첨자가 없습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 ListBox1이라 명명된 ListBox와 CommandButton1이라 명명된 CommandButton을 포함해야 합니다.

Dim MyArray(6, 3)
'Array containing column values for ListBox.

Private Sub UserForm_Initialize()
    Dim i As Single

    ListBox1.ColumnCount = 3
'This list box contains 3 data columns

    'Load integer values MyArray
    For i = 0 To 5
        MyArray(i, 0) = i
        MyArray(i, 1) = Rnd
        MyArray(i, 2) = Rnd
    Next i

    'Load ListBox1
    ListBox1.List() = MyArray

End Sub
Private Sub CommandButton1_Click()
' Exchange contents of columns 1 and 3

    Dim i As Single
    Dim Temp As Single

    For i = 0 To 5
        Temp = ListBox1.List(i, 0)
        ListBox1.List(i, 0) = ListBox1.List(i, 2)
        ListBox1.List(i, 2) = Temp
    Next i
End Sub


ListBox 컨트롤, AddItem, RemoveItem 메서드, ListIndex, ListCount 속성 예제

다음은 AddItem과 RemoveItem 메서드, 그리고 ListIndex와 ListCount 속성을 사용하여 ListBox의 내용을 추가 또는 삭제하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ListBox1이라 명명된 ListBox

  • CommandButton1과 CommandButton2라 명명된 두 개의 CommandButton 컨트롤
Dim EntryCount As Single

Private Sub CommandButton1_Click()
    EntryCount = EntryCount + 1
    ListBox1.AddItem (EntryCount & " - Selection")
End Sub
Private Sub CommandButton2_Click()
    'Ensure ListBox contains list items
    If ListBox1.ListCount >= 1 Then
        'If no selection, choose last list item.
        If ListBox1.ListIndex = -1 Then
            ListBox1.ListIndex = _
                    ListBox1.ListCount - 1
        End If
        ListBox1.RemoveItem (ListBox1.ListIndex)
    End If
End Sub
Private Sub UserForm_Initialize()
    EntryCount = 0
    CommandButton1.Caption = "Add Item"
    CommandButton2.Caption = "Remove Item"
End Sub


ListRows 속성 예제

다음은 SpinButton을 사용하여 ComboBox의 드롭다운 목록의 행의 수를 조절하는 예제입니다. SpinButton 값을 변경하고, 목록을 나타내기 위하여 ComboBox의 드롭다운 화살표를 클릭합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ComboBox1이라 명명된 ComboBox

  • SpinButton1이라 명명된 SpinButton

  • Label1이라 명명된 Label
Private Sub UserForm_Initialize()
    Dim i As Integer

    For i = 1 To 20
        ComboBox1.AddItem "Choice " & (ComboBox1.ListCount + 1)
    Next i

    SpinButton1.Min = 0
    SpinButton1.Max = 12
    SpinButton1.Value = ComboBox1.ListRows
    Label1.Caption = "ListRows = " & SpinButton1.Value
End Sub

Private Sub SpinButton1_Change()
    ComboBox1.ListRows = SpinButton1.Value
    Label1.Caption = "ListRows = " & SpinButton1.Value
End Sub


ListStyle, MultiSelect 속성 예제

다음은 ListStyle과 MultiSelect 속성을 사용하여 ListBox의 모양을 조절하는 예제입니다. ToggleButton을 사용하는 ListStyle 값을 선택하여 MultiSelect 값 중의 하나에 대한 OptionButton을 선택합니다. ListBox 모양은 ListBox 내의 선택 동작뿐 아니라 때에 따라 바뀌기도 합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ListBox1이라 명명된 ListBox

  • Label1이라 명명된 Label

  • OptionButton1에서 OptionButton3까지의 명명된 세 개의 OptionButton 컨트롤

  • ToggleButton1이라 명명된 ToggleButton
Private Sub UserForm_Initialize()
    Dim i As Integer

    For i = 1 To 8
        ListBox1.AddItem "Choice" & (ListBox1.ListCount + 1)
    Next i

    Label1.Caption = "MultiSelect Choices"
    Label1.AutoSize = True

    ListBox1.MultiSelect = fmMultiSelectSingle
    OptionButton1.Caption = "Single entry"
    OptionButton1.Value = True
    OptionButton2.Caption = "Multiple entries"
    OptionButton3.Caption = "Extended entries"

    ToggleButton1.Caption = "ListStyle - Plain"
    ToggleButton1.Value = True
    ToggleButton1.Width = 90
    ToggleButton1.Height = 30
End Sub

Private Sub OptionButton1_Click()
    ListBox1.MultiSelect = fmMultiSelectSingle
End Sub

Private Sub OptionButton2_Click()
    ListBox1.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub OptionButton3_Click()
    ListBox1.MultiSelect = fmMultiSelectExtended
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        ToggleButton1.Caption = "Plain ListStyle"
        ListBox1.ListStyle = fmListStylePlain
    Else
        ToggleButton1.Caption = "OptionButton " _
            & "or CheckBox"
        ListBox1.ListStyle = fmListStyleOption
    End If
End Sub


ListWidth 속성 예제

다음은 SpinButton을 사용하여 ComboBox의 드롭다운 목록의 너비를 조절하는 예제입니다. SpinButton의 값을 변경하고 목록을 나타내기 위하여 ComboBox의 드롭다운 화살표를 클릭합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ComboBox1이라 명명된 ComboBox

  • SpinButton1이라 명명된 SpinButton

  • Label1이라 명명된 Label
Private Sub SpinButton1_Change()
    ComboBox1.ListWidth = SpinButton1.Value
    Label1.Caption = "ListWidth = " _
        & SpinButton1.Value
End Sub

Private Sub UserForm_Initialize()
    Dim i As Integer

    For i = 1 To 20
        ComboBox1.AddItem "Choice " _
            & (ComboBox1.ListCount + 1)
    Next i

    SpinButton1.Min = 0
    SpinButton1.Max = 130
    SpinButton1.Value = Val(ComboBox1.ListWidth)
    SpinButton1.SmallChange = 5
    Label1.Caption = "ListWidth = " _
        & SpinButton1.Value
End Sub


MatchEntry 속성, OptionButton 컨트롤 예제

다음은 MatchEntry 속성을 사용하여 ComboBox와 ListBox에 사용할 수 있는 문자 일치를 설명하는 예제입니다. 이 예제에서 OptionButton과 일치하는 형식을 설정한 다음 ComboBox에 입력하여 목록에서 항목을 지정합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • OptionButton1에서 OptionButton3까지의 명명된 세 개의 OptionButton 컨트롤

  • ComboBox1이라 명명된 ComboBox
Private Sub OptionButton1_Click()
    ComboBox1.MatchEntry = fmMatchEntryNone
End Sub

Private Sub OptionButton2_Click()
    ComboBox1.MatchEntry = fmMatchEntryFirstLetter
End Sub

Private Sub OptionButton3_Click()
    ComboBox1.MatchEntry = fmMatchEntryComplete
End Sub

Private Sub UserForm_Initialize()
    Dim i As Integer

    For i = 1 To 9
        ComboBox1.AddItem "Choice " & i
    Next i
    ComboBox1.AddItem "Chocoholic"

    OptionButton1.Caption = "No matching"
    OptionButton1.Value = True

    OptionButton2.Caption = "Basic matching"
    OptionButton3.Caption = "Extended matching"
End Sub


MatchFound, MatchRequired 속성, Change 이벤트, CheckBox 컨트롤 예제

다음은 MatchFound와 MatchRequired 속성을 사용하여 ComboBox에 일치하는 추가된 문자를 설명하는 예제입니다. 일치의 확인은 Change 이벤트에서 나타납니다.

이 예제에서, ComboBox의 텍스트 부분이 ComboBox의 항목 중 하나와 일치하는지의 여부를 지정합니다. CheckBox를 사용하여 목록에서 지정한 항목을 ComboBox에 입력하여 일치하는 필수 요소를 지정할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ComboBox1이라 명명된 ComboBox

  • CheckBox1이라 명명된 CheckBox
Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        ComboBox1.MatchRequired = True
        MsgBox "To move the focus from the " _
            & "ComboBox, you must match an entry in " _
            & "the list or press ESC."
    Else
        ComboBox1.MatchRequired = False
        MsgBox " To move the focus from the " _
            & "ComboBox, just tab to or click " _
            & "another control. Matching is optional."
    End If
End Sub

Private Sub ComboBox1_Change()
    If ComboBox1.MatchRequired = True Then
    'MSForms handles this case automatically
    Else
        If ComboBox1.MatchFound = True Then
            MsgBox "Match Found; matching optional."
        Else
            MsgBox "Match not Found; matching " _
                    & "optional."
        End If
    End If
End Sub

Private Sub UserForm_Initialize()
Dim i As Integer

For i = 1 To 9
    ComboBox1.AddItem "Choice " & i
Next i
ComboBox1.AddItem "Chocoholic"

CheckBox1.Caption = "MatchRequired"
CheckBox1.Value = True
End Sub


Max, Min, MaxLength 속성 예제

다음은 독립형 ScrollBar와 함께 사용될 때 Max 속성과 Min 속성을 설명하는 예제입니다. -1000에서 1000까지의 범위에 걸친 모든 정수의 Max 값과 Min 값을 설정할 수 있습니다. 이 예제에서 MaxLength 속성을 사용하여 Max 값과 Min 값에 등록된 문자 수를 제한합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label과 TextBox1이라 명명된 TextBox

  • Label2라 명명된 Label과 TextBox2라 명명된 TextBox

  • ScrollBar1이라 명명된 ScrollBar

  • Label3이라 명명된 Label
Dim TempNum As Integer

Private Sub UserForm_Initialize()
    Label1.Caption = "Min -1000 to 1000"
    ScrollBar1.Min = -1000
    TextBox1.Text = ScrollBar1.Min
    TextBox1.MaxLength = 5

    Label2.Caption = "Max -1000 to 1000"
    ScrollBar1.Max = 1000
    TextBox2.Text = ScrollBar1.Max
    TextBox2.MaxLength = 5

    ScrollBar1.SmallChange = 1
    ScrollBar1.LargeChange = 100
    ScrollBar1.Value = 0
    Label3.Caption = ScrollBar1.Value
End Sub

Private Sub TextBox1_Change()
    If IsNumeric(TextBox1.Text) Then
        TempNum = CInt(TextBox1.Text)
        If TempNum >= -1000 And TempNum <= 1000 Then
            ScrollBar1.Min = TempNum
        Else
            TextBox1.Text = ScrollBar1.Min
        End If
    Else
        TextBox1.Text = ScrollBar1.Min
    End If
End Sub

Private Sub TextBox2_Change()
    If IsNumeric(TextBox2.Text) Then
        TempNum = CInt(TextBox2.Text)
        If TempNum >= -1000 And TempNum <= 1000 Then
            ScrollBar1.Max = TempNum
        Else
            TextBox2.Text = ScrollBar1.Max
        End If
    Else
        TextBox2.Text = ScrollBar1.Max
    End If
End Sub

Private Sub ScrollBar1_Change()
Label3.Caption = ScrollBar1.Value
End Sub


MouseIcon, MousePointer 속성 예제

다음은 특정 컨트롤이나 상황에 적당한 마우스 포인터를 지정하는 방법을 설명하는 예제입니다. MousePointer 속성을 사용함으로써 여러 가지 유용한 마우스 포인터 중 하나를 지정할 수 있고, 또는 MousePointer 속성과 MouseIcon 속성을 사용하여 사용자 정의 아이콘을 지정할 수 있습니다.

이 예제는 다음 방법에서 적용됩니다.

  • 처음 CommandButton과 관련 있는 마우스 포인터를 변경하려면 ListBox에서 마우스 포인터를 선택합니다.

  • 두 번째 CommandButton과 그 마우스 포인터와 연관지으려면 첫 번째 CommandButton을 클릭합니다.

  • 마우스 포인터에 관한 사용자 정의 아이콘을 가져오려면 두 번째 CommandButton을 클릭합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때, 다음의 폼을 포함해야 합니다.

  • CommandButton1과 CommandButton2라 명명된 두 개의 CommandButton 컨트롤

  • ListBox1이라 명명된 ListBox

참고 이 예제는 LoadPicture 함수를 사용할 때 가져오는 두 개의 아이콘 파일(아이콘 파일 확장자와 동일)을 사용합니다. 사용자의 시스템에 있는 아이콘 파일을 지정하려면, 각 LoadPicture 함수 불러오기를 편집해야 합니다.

Private Sub ListBox1_Click()
    If IsNull(ListBox1.Value) = False Then
        CommandButton1.MousePointer = ListBox1.Value

        If CommandButton1.MousePointer = _
            fmMousePointerCustom Then
            CommandButton1.MouseIcon = _
                 LoadPicture("c:\msvc20\cdk32\" _
                 & "samples\circ1\bix.ico")
        End If
    End If
End Sub

Private Sub CommandButton1_Click()
    CommandButton2.MousePointer = CommandButton1.MousePointer

    If CommandButton2.MousePointer = fmMousePointerCustom Then
        CommandButton2.MouseIcon = CommandButton1.MouseIcon
    End If
End Sub

Private Sub CommandButton2_Click()
    CommandButton2.MousePointer = fmMousePointerCustom
    CommandButton2.MouseIcon = LoadPicture("c:\msvc20\cdk32\samples\push\push.ico")
End Sub

Private Sub UserForm_Initialize()
    'Load ListBox with MousePointer choices
    ListBox1.ColumnCount = 2

    ListBox1.AddItem "fmMousePointerDefault"
    ListBox1.List(0, 1) = fmMousePointerDefault
    ListBox1.AddItem "fmMousePointerArrow"
    ListBox1.List(1, 1) = fmMousePointerArrow
    ListBox1.AddItem "fmMousePointerCross"
    ListBox1.List(2, 1) = fmMousePointerCross

    ListBox1.AddItem "fmMousePointerIBeam"
    ListBox1.List(3, 1) = fmMousePointerIBeam
    ListBox1.AddItem "fmMousePointerSizeNESW"
    ListBox1.List(4, 1) = fmMousePointerSizeNESW
    ListBox1.AddItem "fmMousePointerSizeNS"
    ListBox1.List(5, 1) = fmMousePointerSizeNS

    ListBox1.AddItem "fmMousePointerSizeNWSE"
    ListBox1.List(6, 1) = fmMousePointerSizeNWSE
    ListBox1.AddItem "fmMousePointerSizeWE"
    ListBox1.List(7, 1) = fmMousePointerSizeWE
    ListBox1.AddItem "fmMousePointerUpArrow"
    ListBox1.List(8, 1) = fmMousePointerUpArrow

    ListBox1.AddItem "fmMousePointerHourglass"
    ListBox1.List(9, 1) = fmMousePointerHourGlass
    ListBox1.AddItem "fmMousePointerNoDrop"
    ListBox1.List(10, 1) = fmMousePointerNoDrop
    ListBox1.AddItem "fmMousePointerAppStarting"
    ListBox1.List(11, 1) = fmMousePointerAppStarting

    ListBox1.AddItem "fmMousePointerHelp"
    ListBox1.List(12, 1) = fmMousePointerHelp
    ListBox1.AddItem "fmMousePointerSizeAll"
    ListBox1.List(13, 1) = fmMousePointerSizeAll
    ListBox1.AddItem "fmMousePointerCustom"
    ListBox1.List(14, 1) = fmMousePointerCustom

    ListBox1.BoundColumn = 2
    ListBox1.Value = fmMousePointerDefault

    MsgBox "ListBox1.Value =" & ListBox1.Value & "."
    CommandButton1.MousePointer = ListBox1.Value
End Sub


AutoSize, MultiLine, WordWrap, ScrollBars 속성, TextBox 컨트롤 예제

다음은 TextBox에서 MultiLine, WordWrap과 ScrollBars 속성을 설명하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • ToggleButton1에서 ToggleButton4까지의 명명된 네 개의 ToggleButton 컨트롤

TextBox 안에 있는 전체 텍스트를 보려면, ToggleButton 컨트롤을 클릭하여 MultiLine과 WordWrap을 True로 설정합니다.

MultiLine이 True면 사용자는 Shift+Enter를 눌러 텍스트의 줄 바꿈을 입력할 수 있습니다.

사용자가 TextBox의 내용을 수동으로 변경하면 ScrollBars가 나타납니다.

Private Sub UserForm_Initialize()
'Initialize TextBox properties and toggle buttons

    TextBox1.Text = "Type your text here. "
        & "Enter SHIFT+ENTER to move to a new line."

    TextBox1.AutoSize = False
    ToggleButton1.Caption = "AutoSize Off"
    ToggleButton1.Value = False
    ToggleButton1.AutoSize = True

    TextBox1.WordWrap = False
    ToggleButton2.Caption = "WordWrap Off"
    ToggleButton2.Value = False
    ToggleButton2.AutoSize = True

    TextBox1.ScrollBars = 0
    ToggleButton3.Caption = "ScrollBars Off"
    ToggleButton3.Value = False
    ToggleButton3.AutoSize = True

    TextBox1.MultiLine = False
    ToggleButton4.Caption = "Single Line"
    ToggleButton4.Value = False
    ToggleButton4.AutoSize = True
 End Sub

Private Sub ToggleButton1_Click()
'Set AutoSize property and associated ToggleButton

    If ToggleButton1.Value = True Then
        TextBox1.AutoSize = True
        ToggleButton1.Caption = "AutoSize On"
    Else
        TextBox1.AutoSize = False
        ToggleButton1.Caption = "AutoSize Off"
    End If
End Sub
Private Sub ToggleButton2_Click()
'Set WordWrap property and associated ToggleButton

    If ToggleButton2.Value = True Then
        TextBox1.WordWrap = True
        ToggleButton2.Caption = "WordWrap On"
    Else
        TextBox1.WordWrap = False
        ToggleButton2.Caption = "WordWrap Off"
    End If
End Sub
Private Sub ToggleButton3_Click()
'Set ScrollBars property and associated ToggleButton

    If ToggleButton3.Value = True Then
        TextBox1.ScrollBars = 3
        ToggleButton3.Caption = "ScrollBars On"
    Else
        TextBox1.ScrollBars = 0
        ToggleButton3.Caption = "ScrollBars Off"
    End If
End Sub
Private Sub ToggleButton4_Click()
'Set MultiLine property and associated ToggleButton

    If ToggleButton4.Value = True Then
        TextBox1.MultiLine = True
        ToggleButton4.Caption = "Multiple Lines"
    Else
        TextBox1.MultiLine = False
        ToggleButton4.Caption = "Single Line"
    End If
End Sub


MultiSelect, Selected 속성 예제

다음은 MultiSelect와 Selected 속성을 사용하여 ListBox에서 항목 하나 또는 그 이상 선택하는 방법을 설명하는 예제입니다. 옵션 단추를 선택하여 ListBox에서 항목을 선택함으로써 선택 메서드를 지정하게 됩니다. CommandButton을 클릭하여 두 번째 ListBox에서 선택된 항목을 나타낼 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ListBox1과 ListBox2라 명명된 두 개의 ListBox 컨트롤

  • CommandButton1이라 명명된 CommandButton

  • OptionButton1에서 OptionButton3까지의 명명된 세 개의 OptionButton컨트롤
Dim i As Integer

Private Sub CommandButton1_Click()
    ListBox2.Clear

    For i = 0 To 9
        If ListBox1.Selected(i) = True Then
            ListBox2.AddItem ListBox1.List(i)
        End If
    Next i

End Sub

Private Sub OptionButton1_Click()
    ListBox1.MultiSelect = fmMultiSelectSingle
End Sub

Private Sub OptionButton2_Click()
    ListBox1.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub OptionButton3_Click()
    ListBox1.MultiSelect = fmMultiSelectExtended
End Sub

Private Sub UserForm_Initialize()
    For i = 0 To 9
        ListBox1.AddItem "Choice " & (ListBox1.ListCount + 1)
    Next i

    OptionButton1.Caption = "Single Selection"
    ListBox1.MultiSelect = fmMultiSelectSingle
    OptionButton1.Value = True

    OptionButton2.Caption = "Multiple Selection"
    OptionButton3.Caption = "Extended Selection"

    CommandButton1.Caption = "Show selections"
    CommandButton1.AutoSize = True
End Sub


Name 속성 예제

다음은 폼에 각 컨트롤의 Name 속성을 나타내는 예제입니다. 이 예제는 Controls 컬렉션을 사용하여 사용자 정의 폼에 놓여 있는 모든 컨트롤을 순환시킵니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 폼은 CommandButton1이라 명명된 CommandButton 와 여러 다른 컨트롤을 포함해야 합니다.

Private Sub CommandButton1_Click()
    Dim MyControl As Control

    For Each MyControl In Controls
        MsgBox "MyControl.Name = " & MyControl.Name
    Next
End Sub


Object 속성 예제

새 컨트롤이 Microsoft Forms에서 표준 Top 속성과는 다른 Top 속성을 가지고 있다고 가정합니다. 구문을 기초로 한 속성을 모두 사용할 수 있습니다.

  • control.Top 은 표준 Top 속성을 사용합니다.

  • control.Object.Top 은 Top 속성을 추가한 컨트롤에서 사용합니다.


Layout 이벤트, OldLeft, OldTop, OldHeight, OldWidth 속성 예제

다음은 Layout 이벤트 내에서 현재 위치와 크기에서 컨트롤을 유지하기 위해 OldLeft, OldTop, OldHeight와 OldWidth 속성을 사용하는 예제입니다. 컨트롤을 이동하고 메시지 상자에 응답하기 위하여 Move ComboBox로 정해진 CommandButton을 클릭합니다. 반복하여 다른 컨트롤을 다시 설정하려면 Reset ComboBox로 정해진 CommandButton을 클릭합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1과 CommandButton2라 명명된 두 개의 CommandButton 컨트롤

  • ComboBox1이라 명명된 ComboBox
Dim Initialize As Integer
Dim ComboLeft, ComboTop, ComboWidth, _
    ComboHeight As Integer

Private Sub UserForm_Initialize()
    Initialize = 0
    CommandButton1.Caption = "Move ComboBox"
    CommandButton2.Caption = "Reset ComboBox"

    'Information for resetting ComboBox
    ComboLeft = ComboBox1.Left
    ComboTop = ComboBox1.Top
    ComboWidth = ComboBox1.Width
    ComboHeight = ComboBox1.Height
End Sub

Private Sub CommandButton1_Click()
    ComboBox1.Move 0, 0, , , True
End Sub

Private Sub UserForm_Layout()
    Dim MyControl As Control
    Dim MsgBoxResult As Integer
    'Suppress MsgBox on initial layout event.
    If Initialize = 0 Then
        Initialize = 1
        Exit Sub
    End If

    MsgBoxResult = MsgBox("In Layout event " _
        & "- Continue move?", vbYesNo)
    If MsgBoxResult = vbNo Then
        ComboBox1.Move ComboBox1.OldLeft, _
            ComboBox1.OldTop, ComboBox1.OldWidth, _
            ComboBox1.OldHeight
    End If
End Sub

Private Sub CommandButton2_Click()
    ComboBox1.Move ComboLeft, ComboTop, _
        ComboWidth, ComboHeight
End Sub


Parent 속성 예제

다음은 Parent 속성을 사용하여 컨트롤이나 특정 컨트롤을 포함하는 폼의 참조를 보여주는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1과 Label2라 명명된 두 개의 Label 컨트롤

  • CommandButton1이라 명명된 CommandButton

  • 사용자가 선택한 하나 또는 그 이상의 추가 컨트롤
Dim MyControl As Object
Dim MyParent As Object
Dim ControlsIndex As Integer

Private Sub UserForm_Initialize()
    ControlsIndex = 0
    CommandButton1.Caption = "Get Control and Parent"
    CommandButton1.AutoSize = True
    CommandButton1.WordWrap = True
End Sub

Private Sub CommandButton1_Click()
    'Process Controls collection for UserForm
    Set MyControl = Controls.Item(ControlsIndex)
    Set MyParent = MyControl.Parent
    Label1.Caption = MyControl.Name
    Label2.Caption = MyParent.Name

    'Prepare index for next control on Userform
    ControlsIndex = ControlsIndex + 1
    If ControlsIndex >= Controls.Count Then
        ControlsIndex = 0
    End If
End Sub


PictureAlignment 속성 예제

다음은 PictureAlignment 속성을 사용하여 배경 그림을 설정하는 예제입니다. 이 예제는 또한 PictureAlignment에서 제공되는 정렬 옵션을 결정합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때, 다음의 폼을 포함해야 합니다.

  • Frame1이라 명명된 Frame

  • SpinButton1이라 명명된 SpinButton

  • TextBox1이라 명명된 TextBox
Dim Alignments(5) As String

Private Sub UserForm_Initialize()
    Alignments(0) = "0 - Top Left"
    Alignments(1) = "1 - Top Right"
    Alignments(2) = "2 - Center"
    Alignments(3) = "3 - Bottom Left"
    Alignments(4) = "4 - Bottom Right"

    'Specify a bitmap that exists on your system
    Frame1.Picture = LoadPicture("c:\winnt2\ball.bmp")

    SpinButton1.Min = 0
    SpinButton1.Max = 4
    SpinButton1.Value = 0

    TextBox1.Text = Alignments(0)
    Frame1.PictureAlignment = SpinButton1.Value
End Sub

Private Sub SpinButton1_Change()
    TextBox1.Text = Alignments(SpinButton1.Value)
    Frame1.PictureAlignment = SpinButton1.Value
End Sub

Private Sub TextBox1_Change()
    Select Case TextBox1.Text
    Case "0"
        TextBox1.Text = Alignments(0)
        Frame1.PictureAlignment = 0
    Case "1"
        TextBox1.Text = Alignments(1)
        Frame1.PictureAlignment = 1
    Case "2"
        TextBox1.Text = Alignments(2)
        Frame1.PictureAlignment = 2
    Case "3"
        TextBox1.Text = Alignments(3)
        Frame1.PictureAlignment = 3
    Case "4"
        TextBox1.Text = Alignments(4)
        Frame1.PictureAlignment = 4
    Case Else
        TextBox1.Text = Alignments(SpinButton1.Value)
        Frame1.PictureAlignment = SpinButton1.Value
    End Select
End Sub


ComboBox 컨트롤, AddItem 메서드, Picture, PicturePosition 속성 예제

다음은 ComboBox를 사용하여 컨트롤에 대한 그림 위치 옵션을 보여주는 예제입니다. 목록 선택을 클릭할 때마다 CommandButton의 그림과 메뉴/명령 이름이 업데이트됩니다. 또한 이 예제 코드는 AddItem 메서드를 사용하여 ComboBox 선택의 장소를 지정합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label

  • CommandButton1이라 명명된 CommandButton

  • ComboBox1이라 명명된 ComboBox
Private Sub UserForm_Initialize()
    Label1.Left = 18
    Label1.Top = 12
    Label1.Height = 12
    Label1.Width = 190
    Label1.Caption = "Select picture placement " _
        & "relative to the caption."

    'Add list entries to combo box. The value of each
    'entry matches the corresponding ListIndex value
    'in the combo box.
    ComboBox1.AddItem "Left Top"        'ListIndex = 0
    ComboBox1.AddItem "Left Center"     'ListIndex = 1
    ComboBox1.AddItem "Left Bottom"     'ListIndex = 2
    ComboBox1.AddItem "Right Top"       'ListIndex = 3
    ComboBox1.AddItem "Right Center"    'ListIndex = 4
    ComboBox1.AddItem "Right Bottom"    'ListIndex = 5
    ComboBox1.AddItem "Above Left"      'ListIndex = 6
    ComboBox1.AddItem "Above Center"    'ListIndex = 7
    ComboBox1.AddItem "Above Right"    'ListIndex = 8
    ComboBox1.AddItem "Below Left"      'ListIndex = 9
    ComboBox1.AddItem "Below Center"    'ListIndex = 10
    ComboBox1.AddItem "Below Right"    'ListIndex = 11
    ComboBox1.AddItem "Centered"        'ListIndex = 12
    'Use drop-down list
    ComboBox1.Style = fmStyleDropDownList
    'Combo box values are ListIndex values
    ComboBox1.BoundColumn = 0
    'Set combo box to first entry
    ComboBox1.ListIndex = 0

    ComboBox1.Left = 18
    ComboBox1.Top = 36
    ComboBox1.Width = 90
    ComboBox1.ListWidth = 90

    'Initialize CommandButton1
    CommandButton1.Left = 230
    CommandButton1.Top = 36
    CommandButton1.Height = 120
    CommandButton1.Width = 120

    'Note: Be sure to refer to a bitmap file that is
    'present on your system, and to include the path
    'in the filename.
    CommandButton1.Picture = _
         LoadPicture("c:\windows\argyle.bmp")
    CommandButton1.PicturePosition = ComboBox1.Value
End Sub

Private Sub ComboBox1_Click()
    Select Case ComboBox1.Value
    Case 0  'Left Top
        CommandButton1.Caption = "Left Top"
        CommandButton1.PicturePosition = _
            fmPicturePositionLeftTop

    Case 1  'Left Center
        CommandButton1.Caption = "Left Center"
        CommandButton1.PicturePosition = _
            fmPicturePositionLeftCenter

    Case 2  'Left Bottom
        CommandButton1.Caption = "Left Bottom"
        CommandButton1.PicturePosition = _
            fmPicturePositionLeftBottom

    Case 3  'Right Top
        CommandButton1.Caption = "Right Top"
        CommandButton1.PicturePosition = _
            fmPicturePositionRightTop

    Case 4  'Right Center
        CommandButton1.Caption = "Right Center"
        CommandButton1.PicturePosition = _
            fmPicturePositionRightCenter

    Case 5  'Right Bottom
        CommandButton1.Caption = "Right Bottom"
        CommandButton1.PicturePosition = _
            fmPicturePositionRightBottom

    Case 6  'Above Left
        CommandButton1.Caption = "Above Left"
        CommandButton1.PicturePosition = _
            fmPicturePositionAboveLeft

    Case 7  'Above Center
        CommandButton1.Caption = "Above Center"
        CommandButton1.PicturePosition = _
            fmPicturePositionAboveCenter

    Case 8  'Above Right
        CommandButton1.Caption = "Above Right"
        CommandButton1.PicturePosition = _
            fmPicturePositionAboveRight

    Case 9  'Below Left
        CommandButton1.Caption = "Below Left"
        CommandButton1.PicturePosition = _
            fmPicturePositionBelowLeft

    Case 10 'Below Center
        CommandButton1.Caption = "Below Center"
        CommandButton1.PicturePosition = _
            fmPicturePositionBelowCenter

    Case 11 'Below Right
        CommandButton1.Caption = "Below Right"
        CommandButton1.PicturePosition = _
            fmPicturePositionBelowRight

    Case 12 'Centered
        CommandButton1.Caption = "Centered"
        CommandButton1.PicturePosition = _
            fmPicturePositionCenter

    End Select

End Sub


PictureSizeMode 속성 예제

다음은 그림에 대한 세 가지 표시 옵션을 설명하기 위하여 PictureSizeMode 속성이 사용되는 예제입니다. 원래의 그림을 보면서 그림의 원래 비율을 유지하여 크기를 변경하고 공간을 채우도록 그림을 늘여 줍니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Frame1이라 명명된 Frame

  • SpinButton1이라 명명된 SpinButton

  • TextBox1이라 명명된 TextBox

  • OptionButton1에서 OptionButton3까지 명명된 세 개의 OptionButton 컨트롤

참고 이 예제는 두 개의 속성 보충 요소로서 PictureAlignment 속성 예제를 좀 더 발전시킨 것입니다. 이미지를 잘라내거나 늘이거나 확대/축소를 조절하는 세 개의 OptionButton 이벤트 서브루틴입니다.

Dim Alignments(5) As String

Private Sub UserForm_Initialize()
    Alignments(0) = "0 - Top Left"
    Alignments(1) = "1 - Top Right"
    Alignments(2) = "2 - Center"
    Alignments(3) = "3 - Bottom Left"
    Alignments(4) = "4 - Bottom Right"

    'Specify a bitmap that exists on your system
    Frame1.Picture = LoadPicture("c:\winnt2\ball.bmp")

    SpinButton1.Min = 0
    SpinButton1.Max = 4
    SpinButton1.Value = 0

    TextBox1.Text = Alignments(0)
    Frame1.PictureAlignment = SpinButton1.Value

    OptionButton1.Caption = "Crop"
    OptionButton1.Value = True
    OptionButton2.Caption = "Stretch"
    OptionButton3.Caption = "Zoom"
End Sub

Private Sub OptionButton1_Click()
    If OptionButton1.Value = True Then
        Frame1.PictureSizeMode = fmPictureSizeModeClip
    End If
End Sub

Private Sub OptionButton2_Click()
    If OptionButton2.Value = True Then
        Frame1.PictureSizeMode = fmPictureSizeModeStretch
    End If
End Sub

Private Sub OptionButton3_Click()
    If OptionButton3.Value = True Then
        Frame1.PictureSizeMode = fmPictureSizeModeZoom
    End If
End Sub

Private Sub SpinButton1_Change()
    TextBox1.Text = Alignments(SpinButton1.Value)
    Frame1.PictureAlignment = SpinButton1.Value
End Sub

Private Sub TextBox1_Change()
    Select Case TextBox1.Text
    Case "0"
        TextBox1.Text = Alignments(0)
        Frame1.PictureAlignment = 0
    Case "1"
        TextBox1.Text = Alignments(1)
        Frame1.PictureAlignment = 1
    Case "2"
        TextBox1.Text = Alignments(2)
        Frame1.PictureAlignment = 2
    Case "3"
        TextBox1.Text = Alignments(3)
        Frame1.PictureAlignment = 3
    Case "4"
        TextBox1.Text = Alignments(4)
        Frame1.PictureAlignment = 4
    Case Else
        TextBox1.Text = Alignments(SpinButton1.Value)
        Frame1.PictureAlignment = SpinButton1.Value
    End Select
End Sub


Paste, PutInClipboard, SetText 메서드 예제

다음은 TextBox에서 DataObject로, DataObject에서 클립보드로, 그리고 클립보드에서 또 다른 TextBox로 데이터를 이동하는 것을 설명하는 예제입니다. PutInClipboard 메서드는 데이터를 DataObject에서 클립보드로 전송합니다. 또한 SetText와 Paste 메서드도 사용됩니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1과 TextBox2라 명명된 가진 두 개의 TextBox 컨트롤

  • CommandButton1이라 명명된 CommandButton
Dim MyData As DataObject

Private Sub CommandButton1_Click()
    Set MyData = New DataObject

    MyData.SetText TextBox1.Text
    MyData.PutInClipboard

    TextBox2.Paste
End Sub

Private Sub UserForm_Initialize()
    TextBox1.Text = "Move this data to a " _
        & "DataObject, to the Clipboard, then to " _
        & "TextBox2!"
End Sub


ScrollBar 컨트롤, Scroll 이벤트 예제

다음은 스크롤 상자를 이동할 때 독립 실행형 ScrollBar와 스크롤 막대의 값 변경을 알려주는 것을 설명하는 예제입니다. 컨트롤의 끝에 화살표를 클릭함으로써, 스크롤 상자와 화살표 사이 영역을 클릭함으로써, 또는 스크롤 상자를 끌어옴으로써 스크롤 상자를 이동할 수 있습니다. 스크롤 상자를 끌어올 때 Scroll 이벤트는 새 값을 얻기 위하여 스크롤되는 것을 알려주는 메시지를 나타냅니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ScrollBar1이라 명명된 ScrollBar

  • Label1과 Label2라 명명된 두 개의 Label. Label1은 사용자를 위해 확대/축소 배율 정보를 포함하고 있고 Label2는 변화량 값을 알려줍니다.
Dim ScrollSaved As Integer
'Previous ScrollBar setting

Private Sub UserForm_Initialize()
    ScrollBar1.Min = -225
    ScrollBar1.Max = 289
    ScrollBar1.Value = 0

    Label1.Caption = "-225  -----Widgets-----   289"
    Label1.AutoSize = True

    Label2.Caption = ""
End Sub

Private Sub ScrollBar1_Change()
    Label2.Caption = " Widget Changes " _
        & (ScrollSaved - ScrollBar1.Value)
End Sub

Private Sub ScrollBar1_Exit(ByVal Cancel as MSForms.ReturnBoolean)
    Label2.Caption = " Widget Changes " _
        & (ScrollSaved - ScrollBar1.Value)
    ScrollSaved = ScrollBar1.Value
End Sub

Private Sub ScrollBar1_Scroll()
    Label2.Caption = (ScrollSaved ? ScrollBar1 _
        .Value) & " Widget Changes by Scrolling"
End Sub


ScrollBars, KeepScrollBarsVisible 속성 예제

다음은 Scrollbars과 KeepScrollBarsVisible 속성을 사용하여 MultiPage와 Frame의 페이지에 스크롤 막대를 추가하는 예제입니다. 차례대로 옵션 단추를 선택하고 KeepScrollBarsVisible값을 지정합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • MultiPage1이라 명명된 MultiPage

  • Frame1이라 명명된 Frame

  • OptionButton1에서 OptionButton4까지의 명명된 네 개의 OptionButton 컨트롤
Private Sub UserForm_Initialize()
    MultiPage1.Pages(0).ScrollBars = fmScrollBarsBoth
    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsNone

    Frame1.ScrollBars = fmScrollBarsBoth
    Frame1.KeepScrollBarsVisible = fmScrollBarsNone

    OptionButton1.Caption = "No scroll bars"
    OptionButton1.Value = True
    OptionButton2.Caption = "Horizontal scroll bars"
    OptionButton3.Caption = "Vertical scroll bars"
    OptionButton4.Caption = "Both scroll bars"
End Sub

Private Sub OptionButton1_Click()
    MultiPage1.Pages(0).KeepScrollBarsVisible = _
        fmScrollBarsNone
    Frame1.KeepScrollBarsVisible = fmScrollBarsNone
End Sub

Private Sub OptionButton2_Click()
    MultiPage1.Pages(0).KeepScrollBarsVisible = _
        fmScrollBarsHorizontal
    Frame1.KeepScrollBarsVisible = _
        fmScrollBarsHorizontal
End Sub

Private Sub OptionButton3_Click()
    MultiPage1.Pages(0).KeepScrollBarsVisible = _
        fmScrollBarsVertical
    Frame1.KeepScrollBarsVisible = _
        fmScrollBarsVertical
End Sub

Private Sub OptionButton4_Click()
    MultiPage1.Pages(0).KeepScrollBarsVisible = _
        fmScrollBarsBoth
    Frame1.KeepScrollBarsVisible = fmScrollBarsBoth
End Sub


ScrollHeight, ScrollLeft, ScrollTop, ScrollWidth 속성 예제

다음은 MultiPage의 페이지를 스크롤되는 영역으로 사용하는 예제입니다. 초기에 나타나지 않은 페이지의 부분에 액세스하기 위하여 MultiPage 의 Page2에 스크롤 막대를 사용합니다.

이 예제를 사용하려면, 이 예제 코드를 폼의 선언부에 복사합니다. 폼은 MultiPage1이라 명명된 MultiPage를 포함하고 있고 MultiPage 의 각 페이지는 컨트롤 하나 또는 그 이상을 포함해야 합니다.

참고 MultiPage의 각 페이지는 유일합니다. Page1에는 스크롤 막대가 없습니다. Page2에는 세로, 가로 스크롤 막대가 있습니다.

Private Sub UserForm_Initialize()
    MultiPage1.Pages(1).ScrollBars = fmScrollBarsBoth
    MultiPage1.Pages(1).KeepScrollBarsVisible = _
        fmScrollBarsNone

    MultiPage1.Pages(1).ScrollHeight = 2 * _
        MultiPage1.Height
    MultiPage1.Pages(1).ScrollWidth = 2 * _
        MultiPage1.Width

    'Set ScrollHeight, ScrollWidth before setting
     'ScrollLeft, ScrollTop
    MultiPage1.Pages(1).ScrollLeft = _
        MultiPage1.Width / 2
    MultiPage1.Pages(1).ScrollTop = _
        MultiPage1.Height / 2
End Sub


Style 속성 예제

다음은 Style 속성을 사용하여 ComboBox의 텍스트 영역에 입력된 효과를 변경하는 예제입니다. OptionButton 컨트롤을 선택하여 스타일을 선택하고 ComboBox에 입력하여 항목을 선택합니다. Style이 fmStyleDropDownList일 때, 드롭다운 목록에서 항목을 선택해야 합니다. Style이 fmStyleDropDownCombo일 때, 드롭다운 목록에서 항목을 지정하여 텍스트 영역에 입력할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • OptionButton1과 OptionButton2라 명명된 두 개의 OptionButton 컨트롤

  • ComboBox1이라 명명된 ComboBox
Private Sub OptionButton1_Click()
    ComboBox1.Style = fmStyleDropDownCombo
End Sub

Private Sub OptionButton2_Click()
    ComboBox1.Style = fmStyleDropDownList
End Sub

Private Sub UserForm_Initialize()
    Dim i As Integer

    For i = 1 To 10
        ComboBox1.AddItem "Choice " & i
    Next i

    OptionButton1.Caption = "Select like ComboBox"
    OptionButton1.Value = True
    ComboBox1.Style = fmStyleDropDownCombo

    OptionButton2.Caption = "Select like ListBox"
End Sub


Style 속성, Label 컨트롤 예제

다음은 Style 속성을 사용하여 MultiPage와 TabStrip에 있는 탭의 모양을 지정하는 예제입니다. 이 예제는 Label을 사용하는 것을 설명합니다. OptionButton을 선택하여 스타일을 선택할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label

  • OptionButton1에서 OptionButton3까지의 명명된 세 개의 OptionButton 컨트롤

  • MultiPage1이라 명명된 MultiPage

  • TabStrip1이라 명명된 TabStrip

  • TabStrip 안의 모든 컨트롤

  • MultiPage 각 페이지의 모든 컨트롤
Private Sub OptionButton1_Click()
    MultiPage1.Style = fmTabStyleTabs
    TabStrip1.Style = fmTabStyleTabs
End Sub

Private Sub OptionButton2_Click()
    'Note that the page borders are invisible
    MultiPage1.Style = fmTabStyleButtons
    TabStrip1.Style = fmTabStyleButtons
End Sub

Private Sub OptionButton3_Click()
    'Note that the page borders are invisible and
    'the page body begins where the tabs normally
     'appear.
    MultiPage1.Style = fmTabStyleNone
    TabStrip1.Style = fmTabStyleNone
End Sub

Private Sub UserForm_Initialize()
    Label1.Caption = "Page/Tab Style"
    OptionButton1.Caption = "Tabs"
    OptionButton1.Value = True
    MultiPage1.Style = fmTabStyleTabs
    TabStrip1.Style = fmTabStyleTabs

    OptionButton2.Caption = "Buttons"
    OptionButton3.Caption = "No Tabs or Buttons"
End Sub


TabFixedHeight, TabFixedWidth 속성 예제

다음은 TabFixedHeight와 TabFixedWidth 속성을 사용하여 MultiPage와 TabStrip에 쓰이는 탭의 크기를 설정하는 예제입니다. SpinButton 컨트롤을 클릭하여 MultiPage와 TabStrip 내의 탭 크기와 너비를 조절합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • MultiPage1이라 명명된 MultiPage

  • TabStrip1이라 명명된 TabStrip

  • Width 컨트롤의 Label1이라 명명된 Label

  • Width 컨트롤의 SpinButton1이라 명명된 SpinButton

  • Width 컨트롤의 TextBox1이라 명명된 TextBox

  • Height 컨트롤의 Label2라 명명된 Label

  • Height 컨트롤의 SpinButton2라 명명된 SpinButton

  • Height 컨트롤의 TextBox2라 명명된 TextBox
Private Sub UpdateTabWidth()
    TextBox1.Text = SpinButton1.Value
    TabStrip1.TabFixedWidth = SpinButton1.Value
    MultiPage1.TabFixedWidth = SpinButton1.Value
End Sub

Private Sub UpdateTabHeight()
    TextBox2.Text = SpinButton2.Value
    TabStrip1.TabFixedHeight = SpinButton2.Value
    MultiPage1.TabFixedHeight = SpinButton2.Value
End Sub

Private Sub UserForm_Initialize()
    MultiPage1.Style = fmTabStyleButtons

    Label1.Caption = "Tab Width"
    SpinButton1.Min = 0
    SpinButton1.Max = _
        TabStrip1.Width / TabStrip1.Tabs.Count
    SpinButton1.Value = 0
    TextBox1.Locked = True

    UpdateTabWidth

    Label2.Caption = "Tab Height"
    SpinButton2.Min = 0
    SpinButton2.Max = TabStrip1.Height
    SpinButton2.Value = 0
    TextBox2.Locked = True

    UpdateTabHeight
End Sub

Private Sub SpinButton1_SpinDown()
    UpdateTabWidth
End Sub

Private Sub SpinButton1_SpinUp()
    UpdateTabWidth
End Sub

Private Sub SpinButton2_SpinDown()
    UpdateTabHeight
End Sub

Private Sub SpinButton2_SpinUp()
    UpdateTabHeight
End Sub


TabIndex 속성 예제

다음은 TabIndex 속성을 사용하여 각 컨트롤의 탭 순서를 표시하고 설정하는 예제입니다. Tab 키를 눌러 탭 순서에 의한 다음 컨트롤을 선택하고 컨트롤의 TabIndex를 나타냅니다. 또한, TabIndex를 나타내기 위하여 컨트롤에서 단추를 클릭합니다. TextBox에서 새 인덱스 값을 지정하고 CommandButton3을 눌러 TabIndex를 변경할 수 있습니다. 컨트롤 하나에 대한 TabIndex를 변경하려면 또한 Frame 안의 다른 컨트롤에 대한 TabIndex를 업데이트합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label

  • TextBox1이라 명명된 TextBox

  • Frame1이라 명명된 Frame

  • TextBox2라 명명된 Frame 안의 TextBox

  • CommandButton1과 CommandButton2라 명명된 Frame 안의 두 개의 CommandButton 컨트롤

  • ScrollBar1이라 명명된 Frame 안의 ScrollBar
  • CommandButton3이라 명명된 Frame에 없는CommandButton
Private Sub MoveToFront()
    Dim i, Temp As Integer

    Temp = Frame1.ActiveControl.TabIndex
    For i = 0 To Temp - 1
        Frame1.Controls.Item(i).TabIndex = i + 1
    Next i

    Frame1.ActiveControl.TabIndex = 0
    TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub

Private Sub CommandButton3_Click()
    Dim i, Temp As Integer

    If IsNumeric(TextBox1.Text) Then
        Temp = Val(TextBox1.Text)

     If Temp >= Frame1.Controls.Count Or Temp < 0
         Then
         'Entry out of range; move control to front
            'of tab order
            MoveToFront
                 ElseIf
                 Temp > Frame1.ActiveControl.TabIndex
            Then
            'Move entry down the list
            For i = Frame1.ActiveControl.TabIndex + _
                    1 To Temp
               Frame1.Controls.Item(i).TabIndex = _
                        i - 1
            Next i
            Frame1.ActiveControl.TabIndex = Temp
            TextBox1.Text = _
                 Frame1.ActiveControl.TabIndex
        Else
            'Move Entry up the list
            For i = Frame1.ActiveControl.TabIndex - _
                    1 To Temp
               Frame1.Controls.Item(i).TabIndex = _
                        i + 1
            Next i
            Frame1.ActiveControl.TabIndex = Temp
            TextBox1.Text = _
                 Frame1.ActiveControl.TabIndex
        End If
    Else
        'Text entry; move control to front of tab
          'order
        MoveToFront
    End If
End Sub

Private Sub UserForm_Initialize()
    Label1.Caption = "TabIndex"

    Frame1.Controls(0).SetFocus
    TextBox1.Text = Frame1.ActiveControl.TabIndex

    Frame1.Cycle = fmCycleCurrentForm

    CommandButton3.Caption = "Set TabIndex"
    CommandButton3.TakeFocusOnClick = False
End Sub

Private Sub TextBox2_Enter()
    TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub

Private Sub CommandButton1_Enter()
    TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub

Private Sub CommandButton2_Enter()
    TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub

Private Sub ScrollBar1_Enter()
    TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub


TabStop 속성 예제

다음은 TabStop 속성을 사용하여 특정 컨트롤에 포커스를 옮기기 위해 Tab 키를 누르는지를 조정하는 예제입니다. 폼에서 컨트롤 사이에의 포커스를 이동하려면 Tab 키를 누르고 나서, ToggleButton을 눌러 CommandButton1에 대한 TabStop을 변경합니다. TabStop이 False일 때, CommandButton1은 Tab 키에 의해 포커스를 받지 않을 것입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1이라 명명된 CommandButton

  • ToggleButton1이라 명명된 ToggleButton

  • OptionButton 또는 ListBox와 같은, 하나 또는 둘 이상의 컨트롤
Private Sub CommandButton1_Click()
    MsgBox "Clicked CommandButton1."
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1 = True Then
        CommandButton1.TabStop = True
        ToggleButton1.Caption = "TabStop On"
    Else
        CommandButton1.TabStop = False
        ToggleButton1.Caption = "TabStop Off"
    End If
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Show Message"

    ToggleButton1.Caption = "TabStop On"
    ToggleButton1.Value = True
    ToggleButton1.Width = 90
End Sub


Height, Width, Left, Top, ClientHeight, ClientWidth, ClientLeft, ClientTop 속성, TabStrip, Image 컨트롤 예제

다음은 CommandButton을 클릭하면 TabStrip's의 클라이언트 영역 크기에 맞추어 Image 크기를 지정하는 예제입니다. 이 예제 코드는 Height, Left, Top, Width, ClientHeight, ClientLeft, ClientTop과 ClientWidth 속성을 사용합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1이라 명명된 CommandButton

  • TabStrip1이라 명명된 TabStrip

  • Image1이라 명명된 Image
Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Size Image to Tab Area"
    CommandButton1.WordWrap = True
    CommandButton1.AutoSize = True
End Sub
Private Sub CommandButton1_Click()
    Image1.ZOrder(fmFront)
'Place Image in front of TabStrip

'ClientLeft and ClientTop are measured from the edge
'of the TabStrip, not from the edges of the form
'containing the TabStrip.
    Image1.Left = TabStrip1.Left + TabStrip1.ClientLeft
    Image1.Top = TabStrip1.Top + TabStrip1.ClientTop
    Image1.Width = TabStrip1.ClientWidth
    Image1.Height = TabStrip1.ClientHeight

End Sub


Tag 속성 예제

다음은 UserForm에서 컨트롤에 추가되는 정보를 저장하기 위하여 Tag 속성을 사용하는 예제입니다. 컨트롤을 클릭하고 CommandButton을 클릭합니다. 적당한 컨트롤에 대한 Tag의 내용은 TextBox에서 반환됩니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 TextBox

  • CommandButton1이라 명명된 CommandButton

  • ScrollBar1이라 명명된 ScrollBar

  • ComboBox1라 명명된 ComboBox

  • MultiPage1라 명명된 MultiPage
Private Sub CommandButton1_Click()
    TextBox1.Text = ActiveControl.Tag
End Sub

Private Sub UserForm_Initialize()
    TextBox1.Locked = True
    TextBox1.Tag = "Display area for Tag properties."
    TextBox1.AutoSize = True

    CommandButton1.Caption = "Show Tag of Current " _
        & "Control."
    CommandButton1.AutoSize = True
    CommandButton1.WordWrap = True
    CommandButton1.TakeFocusOnClick = False
    CommandButton1.Tag = "Shows tag of control " _
        & "that has the focus."

    ComboBox1.Style = fmStyleDropDownList
    ComboBox1.Tag = "ComboBox Style is that of " _
        & "a ListBox."

    ScrollBar1.Max = 100
    ScrollBar1.Min = -273
    ScrollBar1.Tag = "Max = " & ScrollBar1.Max _
        & " , Min = " & ScrollBar1.Min

    MultiPage1.Pages.Add
    MultiPage1.Pages.Add
    MultiPage1.Tag = "This MultiPage has " _
        & MultiPage1.Pages.Count & " pages."
End Sub


TakeFocusOnClick 속성 예제

다음은 TakeFocusOnClick을 사용하여 단추를 클릭할 때 CommandButton이 포커스를 받는지를 조절하는 예제입니다. CommandButton1보다는 컨트롤을 클릭한 뒤 CommandButton1을 클릭합니다. TakeFocusOnClick이 True면, CommandButton1은 단추를 클릭한 뒤에 포커스를 가지게 됩니다. ToggleButton을 클릭하여 TakeFocusOnClick 값을 변경할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1이라 명명된 CommandButton

  • ToggleButton1이라 명명된 ToggleButton

  • OptionButton 또는 ListBox와 같은, 하나 또는 둘 이상의 컨트롤
Private Sub CommandButton1_Click()
    MsgBox "Watch CommandButton1 to see if it " _
        & "takes the focus."
End Sub

Private Sub ToggleButton1_Click()
    If ToggleButton1 = True Then
        CommandButton1.TakeFocusOnClick = True
        ToggleButton1.Caption = "TakeFocusOnClick On"
    Else
        CommandButton1.TakeFocusOnClick = False
        ToggleButton1.Caption = "TakeFocusOnClick Off"
    End If
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Show Message"

    ToggleButton1.Caption = "TakeFocusOnClick On"
    ToggleButton1.Value = True
    ToggleButton1.Width = 90
End Sub


TextColumn 속성 예제

다음은 TextColumn 속성을 사용하여 Text 속성에 대한 데이터를 공급하는 ListBox의 데이터 열을 지정하는 예제입니다. 이 예제는 ListBox의 세 번째 열을 텍스트 열로 설정합니다. TextColumn에서 ListBox로부터 항목을 선택하면 값은 Label에 표시될 것입니다.

이 예제는 또한 AddItem 메서드와 List 속성을 사용하여 여러 열 ListBox를 읽어들이는 방법을 설명합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • ListBox1이라 명명된 ListBox

  • TextBox1이라 명명된 TextBox
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 3

ListBox1.AddItem "Row 1, Col 1"
ListBox1.List(0, 1) = "Row 1, Col 2"
ListBox1.List(0, 2) = "Row 1, Col 3"

ListBox1.AddItem "Row 2, Col 1"
ListBox1.List(1, 1) = "Row 2, Col 2"
ListBox1.List(1, 2) = "Row 2, Col 3"

ListBox1.AddItem "Row 3, Col 1"
ListBox1.List(2, 1) = "Row 3, Col 2"
ListBox1.List(2, 2) = "Row 3, Col 3"

ListBox1.TextColumn = 3
End Sub

Private Sub ListBox1_Change()
TextBox1.Text = ListBox1.Text
End Sub


Enabled, EnterFieldBehavior, SelLength, SelStart, SelText 속성 예제

다음은 키보드를 사용하여 삽입 지점을 이동하고 선택된 것을 확장하면 변경되는 선택 관련 속성(SelLength, SelStart와 SelText)을 추적하는 예제입니다. 또한 이 예제는 Enabled 와 EnterFieldBehavior 속성을 사용합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1이라 명명된 한 개의 커다란 TextBox

  • TextBox2에서 TextBox4까지 명명된 열로 되어 있는 세 개의 TextBox 컨트롤
Private Sub TextBox1_KeyUp(ByVal KeyCode As _
    MSForms.ReturnInteger, ByVal Shift As Integer)
    TextBox2.Text = TextBox1.SelStart
    TextBox3.Text = TextBox1.SelLength
    TextBox4.Text = TextBox1.SelText
End Sub
Private Sub UserForm_Initialize()
    TextBox1.MultiLine = True
    TextBox1.EnterFieldBehavior = _
        fmEnterFieldBehaviorRecallSelection

    TextBox1.Text = "Type your text here. Use " _
        & "CTRL+ENTER to start a new line."
End Sub


TopIndex 속성 예제

다음은 ListBox 안에 포커스를 가지는 항목과 ListBox에 나타나는 맨 위 항목을 명시하는 예제입니다. 이 예제는 TopIndex 속성을 사용하여 ListBox의 위에 나타나는 항목과 포커스를 가지고 있는 항목을 지정하는 ListIndex 속성을 식별합니다. ListBox 항목을 선택합니다. 표시된 TopIndex와 ListIndex 값은 항목을 선택할 때 또는 CommandButton을 클릭할 때 업데이트됩니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label

  • TextBox1이라 명명된 TextBox

  • Label2라 명명된 Label

  • TextBox2라 명명된 TextBox

  • CommandButton1이라 명명된 CommandButton

  • ListBox1이라 명명된 ListBox
Private Sub CommandButton1_Click()
    ListBox1.TopIndex = ListBox1.ListIndex
    TextBox1.Text = ListBox1.TopIndex
    TextBox2.Text = ListBox1.ListIndex
End Sub

Private Sub ListBox1_Change()
    TextBox1.Text = ListBox1.TopIndex
    TextBox2.Text = ListBox1.ListIndex
End Sub

Private Sub UserForm_Initialize()
    Dim i As Integer

    For i = 0 To 24
        ListBox1.AddItem "Choice " & (i + 1)
    Next i
    ListBox1.Height = 66
    CommandButton1.Caption = "Move to top of list"
    CommandButton1.AutoSize = True
    CommandButton1.TakeFocusOnClick = False

    Label1.Caption = "Index of top item"
    TextBox1.Text = ListBox1.TopIndex

    Label2. Caption = "Index of current item"
    Label2.AutoSize = True
    Label2.WordWrap = False
    TextBox2.Text = ListBox1.ListIndex
End Sub


TripleState 속성, ToggleButton 컨트롤 예제

다음은 TripleState 속성을 사용하여 CheckBox와 ToggleButton의 legal 값으로 Null을 허용하는 예제입니다. ToggleButton2를 통해 TripleState의 값을 조절합니다. TripleState의 값에 기초를 둔 CheckBox 또는 ToggleButton의 값을 설정할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CheckBox1이라 명명된 CheckBox

  • ToggleButton1이라 명명된 ToggleButton

  • ToggleButton2라 명명된 ToggleButton
Private Sub UserForm_Initialize()
    CheckBox1.Caption = "Value is True"
    CheckBox1.Value = True
    CheckBox1.TripleState = False

    ToggleButton1.Caption = "Value is True"
    ToggleButton1.Value = True
    ToggleButton1.TripleState = False

    ToggleButton2.Value = False
    ToggleButton2.Caption = "Triple State Off"
End Sub

Private Sub ToggleButton2_Click()
    If ToggleButton2.Value = True Then
        ToggleButton2.Caption = "Triple State On"
        CheckBox1.TripleState = True
        ToggleButton1.TripleState = True
    Else
        ToggleButton2.Caption = "Triple State Off"
        CheckBox1.TripleState = False
        ToggleButton1.TripleState = False
    End If
End Sub

Private Sub CheckBox1_Change()
    If IsNull(CheckBox1.Value) Then
        CheckBox1.Caption = "Value is Null"
    ElseIf CheckBox1.Value = False Then
        CheckBox1.Caption = "Value is False"
    ElseIf CheckBox1.Value = True Then
        CheckBox1.Caption = "Value is True"
    End If
End Sub

Private Sub ToggleButton1_Change()
    If IsNull(ToggleButton1.Value) Then
        ToggleButton1.Caption = "Value is Null"
    ElseIf ToggleButton1.Value = False Then
        ToggleButton1.Caption = "Value is False"
    ElseIf ToggleButton1.Value = True Then
        ToggleButton1.Caption = "Value is True"
    End If
End Sub


Value 속성 예제

다음은 선택된 컨트롤의 Value 속성을 나타내어 가질 수 있는 다른 형식의 컨트롤의 값을 설명하는 예제입니다. Tab 키를 누르거나 컨트롤에서 단추를 클릭하여 컨트롤을 선택합니다. 컨트롤의 형식에 의존하기 때문에 컨트롤의 텍스트 영역에서 입력하거나, 컨트롤에서 단추를 한번 또는 그 이상 클릭하거나, 컨트롤 내에서 항목, 페이지, 또는 탭을 선택함으로써 컨트롤에 대한 값을 지정할 수 있습니다. 적절하게 지정된 CommandButton을 눌러 선택된 컨트롤의 값을 표시할 수 있습니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • CommandButton1이라 명명된 CommandButton

  • TextBox1이라 명명된 TextBox

  • CheckBox1이라 명명된 CheckBox

  • ComboBox1이라 명명된 ComboBox

  • CommandButton2라 명명된 CommandButton

  • ListBox1이라 명명된 ListBox

  • MultiPage1이라 명명된 MultiPage

  • OptionButton1과 OptionButton2라 명명된 두 개의 OptionButton

  • ScrollBar1이라 명명된 ScrollBar

  • SpinButton1이라 명명된 SpinButton

  • TabStrip1이라 명명된 TabStrip

  • TextBox2라 명명된 TextBox

  • ToggleButton1이라 명명된 ToggleButton
Dim i As Integer

Private Sub CommandButton1_Click()
    TextBox1.Text = "Value of " & ActiveControl.Name _
        & " is " & ActiveControl.Value
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Get value of " _
        & "current control"
    CommandButton1.AutoSize = True
    CommandButton1.TakeFocusOnClick = False
    CommandButton1.TabStop = False

    TextBox1.AutoSize = True

    For i = 0 To 10
        ComboBox1.AddItem "Choice " & (i + 1)
        ListBox1.AddItem "Selection " & (100 - i)
    Next i

    CheckBox1.TripleState = True
    ToggleButton1.TripleState = True

    TextBox2.Text = "Enter text here."
End Sub


Zoom 이벤트, Zoom 속성, Label 컨트롤 예제

다음은 Zoom 이벤트를 사용하여 Zoom 속성의 새 값을 계산하고 적당한 때 폼에 스크롤 막대를 추가하는 예제입니다. 이 예제는 현재 값을 나타내기 위하여 Label을 사용합니다. SpinButton을 사용하여 폼의 크기를 지정하고 CommandButton을 클릭하여 Zoom 속성의 값을 설정합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label

  • SpinButton1이라 명명된 SpinButton

  • CommandButton1이라 명명된 CommandButton

  • 다른 컨트롤은 폼의 가장자리 근처에 위치합니다.
Private Sub CommandButton1_Click()
    Zoom = SpinButton1.Value
End Sub

Private Sub SpinButton1_SpinDown()
    Label1.Caption = SpinButton1.Value
End Sub

Private Sub SpinButton1_SpinUp()
    Label1.Caption = SpinButton1.Value
End Sub

Private Sub UserForm_Initialize()
    SpinButton1.Min = 10
    SpinButton1.Max = 400
    SpinButton1.Value = 100
    Label1.Caption = SpinButton1.Value

    CommandButton1.Caption = "Zoom it!"
End Sub

Private Sub UserForm_Zoom(Percent As Integer)
    Dim MyResult As Double

    If Percent > 99 Then
        ScrollBars = fmScrollBarsBoth
        ScrollLeft = 0
        ScrollTop = 0

        MyResult = Width * Percent / 100
        ScrollWidth = MyResult

        MyResult = Height * Percent / 100
        ScrollHeight = MyResult
    Else
        ScrollBars = fmScrollBarsNone
        ScrollLeft = 0
        ScrollTop = 0
    End If
End Sub


Max, Min, Zoom 속성, Frame, ScrollBar 컨트롤 예제

다음은 Zoom 속성을 사용하여 폼, 페이지, 프레임에 나타나 있는 정보를 축소하거나 확대하는 예제입니다. 이 예제는 Frame, Frame 내의 TextBox와 ScrollBar를 포함합니다. Frame의 확대 수준은 Zoom을 통해 변경합니다. ScrollBar를 이용해서 Zoom을 설정할 수 있습니다. TextBox는 확대/축소 효과를 설명합니다.

이 예제는 또한 Max와 Min 속성을 사용하여 ScrollBar에 대한 가능한 값의 범위를 결정합니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • Label1이라 명명된 Label

  • ScrollBar1이라 명명된 ScrollBar

  • Label2라 명명된 제2 Label

  • Frame1이라 명명된 Frame

  • Frame1 내부에 있는 TextBox1이라 명명된 TextBox
Private Sub UserForm_Initialize()
    ScrollBar1.Max = 400
    ScrollBar1.Min = 10
    ScrollBar1.Value = 100

    Label1.Caption = "10  -----Percent of " _
        & "Original Size---- 400"
    Label2.Caption = ScrollBar1.Value

    Frame1.TextBox1.Text = "Enter your text here."
    Frame1.TextBox1.MultiLine = True
    Frame1.TextBox1.WordWrap = True

    Frame1.Zoom = ScrollBar1.Value
End Sub

Private Sub ScrollBar1_Change()
    Frame1.Zoom = ScrollBar1.Value
    Label2.Caption = ScrollBar1.Value
End Sub


ZOrder 메서드, TextBox 컨트롤 예제

다음은 전체 TextBox를 볼 수 있도록(화면 상의 앞으로 가져옴으로써) 하거나 TextBox를 다른 컨트롤의 뒤에(화면 상의 뒤로 가져감으로써) 위치할 수 있도록 TextBox의 화면 상의 순서를 설정하는 예제입니다.

이 예제를 사용하려면 이 예제 코드를 폼의 선언부에 복사해야 합니다. 이 때 다음의 폼을 포함해야 합니다.

  • TextBox1에서 TextBox3까지의 명명된 세 개의 TextBox 컨트롤

  • ToggleButton1이라 명명된 ToggleButton
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
    TextBox2.ZOrder(fmTop)
    'Place TextBox2 on Top of z-order

    'Update ToggleButton caption to identify next state
    ToggleButton1.Caption = "Send TextBox2 to back"
Else
    TextBox2.ZOrder(1)
    'Place TextBox2 on Bottom of z-order

    'Update ToggleButton caption to identify next state
    ToggleButton1.Caption = "Bring TextBox2 to front"
End If
End Sub
Private Sub UserForm_Initialize()
'Set up text boxes to show z-order in the form
TextBox1.Text = "TextBox 1"
TextBox2.Text = "TextBox 2"
TextBox3.Text = "TextBox 3"

TextBox1.Height = 40
TextBox2.Height = 40
TextBox3.Height = 40

TextBox1.Width = 60
TextBox2.Width = 60
TextBox3.Width = 60

TextBox1.Left = 10
TextBox1.Top = 10

TextBox2.Left = 25      'Overlap TextBox2 on TextBox1
TextBox2.Top = 25

TextBox3.Left = 40      'Overlap TextBox3 on TextBox2, TextBox1
TextBox3.Top = 40

ToggleButton1.Value = False
ToggleButton1.Caption = "Bring TextBox2 to Front"
ToggleButton1.Left = 10
ToggleButton1.Top = 90
ToggleButton1.Width = 50
ToggleButton1.Height = 50

End Sub


바로 가기 키

개체를 선택하기 위한 바로 가는 키로 사용되는 하나의 문자를 의미합니다. Alt 키를 누르면, 바로 가기 키로서 개체에게 포커스를 주게 되고 개체와 관련된 하나 또는 그 이상의 이벤트가 초기화됩니다. 특정 이벤트 또는 초기화된 이벤트는 하나의 개체에서 다른 개체로 변합니다. 코드가 이벤트와 관련되어 있으면 이벤트가 초기화될 때 처리됩니다. 바로 가는 키는 키보드 바로 가는 키라고도 합니다.


배경색

모든 그리기 작업과 화면 배색이 이루어지는 비어 있는 창이나 화면의 클라이언트 영역의 색을 의미합니다.


바운드

워크시트내에 셀이나 셀 범위와 같은 특정 데이타 원본에 관련된 내용을 포함한 컨트롤을 의미합니다.


지우기

삭제

설정을 "off"로 변경하거나 값을 삭제합니다.


클라이언트 영역

텍스트나 그래픽과 같은 출력 창을 나타내는 응용 프로그램의 창 일부를 의미합니다.


컨텍스트 ID

응용 프로그램 안에 있는 특정 개체에 해당하는 고유 숫자나 문자열을 의미합니다. 컨텍스트 ID는 응용 프로그램과 해당 도움말 항목 사이의 연결을 만들기 위해 사용됩니다.


컨트롤 그룹

개념적이거나 논리적으로 관련된 컨트롤의 집합을 의미합니다. 개념적으로 관련된 컨트롤은 보통 함께 나타나지만 반드시 서로에게 영향을 주지는 않습니다. 논리적으로 관련된 컨트롤은 서로에게 영향을 줍니다. 예를 들어, 옵션 단추 그룹의 한 단추를 지정하면 그 그룹의 다른 단추의 값은 False로 설정됩니다.


컨트롤 팁

컨트롤을 설명하는 간단한 구문, Page 또는 Tab을 의미합니다. 사용자가 클릭하지 않고 마우스 포인터를 컨트롤 위에 고정시키면 컨트롤 팁이 나타납니다. 컨트롤 팁은 도구 설명과 유사합니다. Microsoft Forms는 개발자에게 디자인 모드에 도구 설명을 제공하고 개발자는 런타임 시 최종 사용자에게 컨트롤 팁을 제공합니다.


커서

데이터의 행을 응용 프로그램에 반환하는 소프트웨어를 의미합니다. 결과 집합에 있는 커서는 결과 집합의 현재 위치를 나타냅니다.


순환

개체 그룹을 통해 정해진 순서로 이동하는 것을 의미합니다.


데이터 형식

파일, 데이터베이스 기록, 스프레드시트의 셀, 워드프로세서 문서의 텍스트와 같은 데이터 단위의 구조나 모양을 의미합니다.


데이터 원본

예를 들어, 워크시트의 셀에 컨트롤이 바운드되어 있는 데이터의 위치를 의미합니다. 데이터 원본의 현재 값은 컨트롤의 Value 속성에 저장될 수 있습니다. 하지만, 컨트롤은 데이터 원본 안에 저장되어 있는 정보만을 표시할 뿐 데이터를 저장하지는 않습니다.


기준 컨트롤

Format 메뉴에 Align 명령과 Make Same Size 명령을 하기 위한 참조 영역을 의미합니다. 컨트롤을 정렬하면 선택된 컨트롤은 기준 컨트롤에 맞추어 정렬됩니다. 컨트롤을 크기 조정하면 선택된 컨트롤은 기준 컨트롤의 크기로 지정됩니다.

기준 컨트롤은 흰색 크기 조정 핸들로 표시됩니다. 선택된 컨트롤의 나머지의 크기 조정 핸들은 검정으로 표시됩니다.


끌어서 놓을 대상

끌어서 놓을 원본

끌어서 놓기 작업에서 끌어질 텍스트나 개체를 의미합니다.


열거된 상수

열거 형태를 사용하는 속성, 메서드, 또는 이벤트 설명으로 열거된 데이터 항목의 추가 정보를 찾을 수 있습니다.


전경색

화면 상에 텍스트를 그리거나 표시하기 위하여 현재에 선택된 색을 의미합니다. 단색 디스플레이에서 전경색은 비트맵이나 다른 그래픽의 색이 됩니다.


눈금 블록

인접한 두 눈금 지점 사이의 간격을 의미합니다.


입력 시스템(IME)

입력한 일본어나 중국어 같은 DBCS 언어의 문자를 입력하여 번역하는 응용 프로그램을 의미합니다. 입력하면 IME(Input Method Editor)는 가능한 상당 문구를 나타냅니다. 가장 적절한 입력을 선택할 수 있습니다.


상속된 속성

다른 클래스의 특성을 획득한 속성을 의미합니다.


키보드 상태

어떤 키가 눌러졌는지와 키보드 수정 키인 Shift 키, Ctrl 키와 Alt 키가 눌러졌는지를 인식하는 반환값을 의미합니다.


OLE 컨테이너 컨트롤

Visual Basic 응용 프로그램으로 다른 응용 프로그램에 개체를 연결하고 포함하려면 Visual Basic 컨트롤을 사용합니다.


OLE 상태 코드

오류 조건에 관한 정보를 반환하는 데이터 구조 일부의 오류 번호를 의미합니다. 데이터 구조는 개체 연결 및 개체 포함으로 정의됩니다.


자리 표시자

보안 목적으로 다른 문자를 가리거나 숨기는 문자를 의미합니다. 예를 들어, 사용자가 암호를 입력하면 각 입력된 문자를 대신하여 별표가 화면에 표시됩니다.


속성 페이지

속성 시트의 탭 처리된 페이지로서 속성의 그룹을 나타냅니다.


RGB

색을 빨강(R), 초록(G), 파랑(B)의 혼합으로 나타내는 색상값 시스템을 의미합니다. 색은 세 가지 정수(R,G,B)로 정의되는데 각 정수의 범위는 0에서 255까지입니다. 0의 값은 색상 구성 요소가 완전히 없다는 것을 의미합니다. 255의 값은 색상 구성 요소의 농도가 최고값이라는 의미입니다.


시스템 색

특정 형식의 모니터와 비디오 어댑터 사용을 위해 운영 체제가 정의한 색상을 의미합니다. Windows에서 각 색상은 창 제목이나 메뉴와 같은 사용자 인터페이스의 특정 부분과 관련이 있습니다.


대상

끌어온 개체를 놓으려는 위치의 개체를 의미합니다.


투명

개체의 배경이 보이지 않으면 배경을 설명합니다. 사용자는 배경을 대신하여 개체 뒤에 있는 모든 것, 예를 들어, 응용 프로그램의 배경으로 사용된 이미지나 그림 등을 볼 수 있습니다. BackStyle 속성을 사용하면 배경을 투명하게 만들 수 있습니다.


언바운드

워크시트 셀과 관련이 없는 컨트롤을 설명합니다. 반면에 바운드 컨트롤은 워크시트 셀을 위한 데이터 원본으로서 이 데이터 원본은 컨트롤 값을 표시하고 편집할 수 있는 액세스를 제공합니다.