[엑셀] 문제4. 기타작업(35점)
차트 수정
(23_01) 2014년 계열은 표시되지 않도록 하시오 vs 2014년 계열은 표시되지 않도록 데이터범위를 변경하시오
(23_01) 가로 축 레이블의 축과의 간격을 300으로 설정하시오
(23_02) 가로축 교차값을 60으로 짖어하고 값을 거꾸로 나타내시오
- 가로축 교차값이란 가로축과 세로축이 만나는 부분으로, 이를 변경하기 위해서는 y축을 건드려야 한다.
(24_02) 데이터 레이블 쉐이프 변경
(24_01) 항목(X축) 이름을 성명필드의 범위로 정하시오
(24_01) 데이터 선택 > 가로(항목) 축 레이블 > 편집 > 축레이블 범위: B2:B8
(24_01) 그럼 가로축 1 2 3 4 5 6 이 사람 이름으로 바뀐다.
(24_01) 추세선 이름을 수정하시오
(24_01) 추세선 서식 > 추세선 이름 > 사용자 지정
(24_03) 그래프 수정
(24_03) 항목(X축)의 표시형식을 아래 예시처럼 표현하시오 (예) 01월 01일 > Jan-01
(24_03) 우클릭 > 축 서식 > 축옵션 > 표시형식 > 서식코드
(답) mmm-dd
(24_03) 값축(X)과 보조축(Y)의 표시형식과 표시단위를 지정하고 가로축(X)의 기본추세로 눈금선을 표시하시오
(24_03) Y축 표시형식: 300,000이 300 (천) 이렇게 표시됨. 우클릭 > 축 서식 > 축옵션 > 표시단위 : 천
(24_03) X축 표시형식:눈금과 숫자에 콤마가 생김. 우클릭 > 축서식 > 축옵션 > 눈금 > 보조눈금, 표시형식 > 1000단위 구분 기호
매크로
(24_02) 100의 경우 0천원처럼 표시하시오.
(답) ##0,"천원"
(24_01) 값이 8 이상이면 ★와 수치를 표시하되 아래 예시처럼 셀 너비에 맞춰 ★이 반복 표시될 것.
(답) [>=8]★*#
(24_01) 수치를 천단위에서 절삭한 뒤 천 단위마다 ,로 구분하며 소수점 이하 둘째자리까지 표시
(답) #,##0.00,
(24_03) 백분율 형식으로 소수 1자리까지 표현하면서 셀의 너비에 맞춰 ▣이 반복 표시될 것
(답) *▣0.0%
비주얼 베이직
(23_01) 폼이 초기화되면 cmb구분 목록에는 K5:K7 값이 표시되고, 어린이가 초기값으로 선택되도록 프로시저를 작성하시오
Cmb구분.RowSource = "K5:K7" 까지 하면 저렇게 목록이 뜨는데, 저 값 중 첫 값인 '어린이'가 초기값으로 설정되어야 한다.
Cmb구분.Listindex = 0 < 첫 값의 경우 listindex 값은 0이다. 마찬가지로 두 번째 값은 listindex 값이 1이다.
※ 폰트 관련 변경
Range("범위").FONT.NAME = "궁서체"
Range("범위").FONT.SIZE = "14"
Range("범위").FONT.BOLD = TRUE(FALSE)
Range("범위").FONT.ITALIC = TRUE
(24_01) 폼이 초기화되면 Cmb일자에는 오늘을 기준으로 1일씩 적은 날짜 5개가 최근 일자 순서대로 목록으로 나오도록 프로시저를 작성하시오. txt생산단가, txt생산량, txt불량품수, txt재고량, txt총보유량을 비활성화 시키시오.
Private Sub UserForm_Initialize() Cmb제품명.RowSource = "C5:C12" Cmb제품명.ListIndex = 0 Cmb일자.AddItem Date Cmb일자.AddItem Date - 1 Cmb일자.AddItem Date - 2 Cmb일자.AddItem Date - 3 Cmb일자.AddItem Date - 4 Txt생산단가.Enabled = False Txt생산량.Enabled = False Txt불량품수.Enabled = False Txt재고량.Enabled = False Txt총보유량.Enabled = False End Sub |
(24_01) 닫기 버튼을 클릭하면 아래와 같은 메시지 상자를 표시하고 예를 클릭하면 <제품보유현황> 폼이 메모리에서 삭제되도록 하시오. 아래 그림에 표시된 수치는 입력된 레코드 수이며, 아니오가 기본적으로 선택되도록 하시오.
입력행 = range("첫 행").currentregion.rows.count + @
첫 행은 B4
그런데 데이터는 12행까지 있고, 실제 데이터가 추가되는 행은 5행 부터
하지만 필요없는 행은 2개의 행 (3행, 4행)
그러므로
Private Sub cmb닫기_Click() 레코드수 = Range("b4").CurrentRegion.Rows.Count - 2 v = MsgBox("총 " & 레코드수 & "행이 입력되었습니다.", vbYesNo + vbDefaultButton2, "제품번호 : " & 레코드수 & "까지 입력완료") If v = vbYes Then Unload Me End If End Sub |
(24_03) 폼이 초기화되면 Cmb관리대상여부에는 "예", "아니오"가 목록으로 표시되도록 지정하고, "예"가 초기값으로 나오도록 하시오.
Private Sub UserForm_Initialize() Cmb코드.RowSource = "L8:M13" Cmb관리대상여부.AddItem "예" Cmb관리대상여부.AddItem "아니오" Cmb관리대상여부.ListIndex = 0 End Sub |
(24_03) 종료버튼을 클릭하면 숙박일정입력 폼이 메모리에서 삭제되고 다음과 같이 출력되도록 하시오.
▶ L16셀에는 '작성시간 : 오후 3:30:20'의 형태로 현재시간을 출력하시오(TIME)
▶ L17셀에는 '다음점검일자 : 2024-07-10'의 형태로 txt작성일자에 10일을 더한 값을 출력하시오(CDATE)
Private Sub Cmd종료_Click() Unload Me Range("L16") = "작성시간 : " & Time Range("L17") = "다음점검일자 : " & CDate(Txt작성일자) + 10 End Sub |
[24_04] 자료관리 버튼을 클릭하면 가입자관리폼이 나타나고, 폼이 초기화되면 ① 'lst상품명'에는 'J8:K10' 데이터가 목록으로 표시되도록 지정하고, ② 첫번째 항목이 초기값으로 선택되도록 하시오. 또한 폼이 초기화될때 '가입자 구분'에서 '일반 가입자'가 선택되도록 초기값을 설정하시오
Private Sub UserForm_Initialize()
lst상품명.RowSource = "j8:k10" ①
lst상품명.ListIndex = 0 ②
End Sub
로 했는데 왼쪽 사진처럼 나왔다면
어떻게 해야 할까? 즉 표2의 가격이 미처 나오지 못한 것이다. lst상품명의 ColumnCount가 1이므로 첫번째 열밖에 나오지 않은 것이라고 할 수 있다.
그럼 직접 ColumnCount 명령을 내려서 ① 목록의 2번째 열을 불러오면 된다.
Private Sub UserForm_Initialize()
lst상품명.RowSource = "j8:k10"
lst상품명.ColumnCount = 2 > 순서가 앞인 이유: ②가 적용이 제대로 안되서
lst상품명.ListIndex = 0
opt일반 = True
End Sub
[24_04] 종료 버튼을 클릭하면 가입자관리 폼이 종료되고 J15:J17에 다음 서식이 적용되게 설계: 글자크기 14, 굵게, 기울임, 글자색 RGB(0,0,200)