안녕하세요!
네이버 단어장, 카카오 단어장 등 많은 애플리케이션이 이미 있지만, 단어 추가와 몇 암기 기능만으로는 뭔가 아쉬움이 있습니다.
저에게는 나만의 지식과 학습 내용을 추가로 입력할 수 없는 것이 바로 그 아쉬움이었습니다.
그래서 제게 맞는 용도의 엑셀 단어장을 만들어보았습니다.
제 단어장의 주목적은 학습 내용의 기록이며 손쉬운 내용 검색입니다.
자, 구경해 보시죠!
※ 예시 화면은 일본어판인데, 지금 소개해 드리는 영어판이 훨씬 업그레이드됐습니다.
※ 일본어판 대비 영어판에 개선된 점
- 분류와 토익스피킹 파트 입력 옵션 (관련 포스팅)
- 우측 슬라이서 기능으로 간편한 필터링
- 유튜브 영상 링크 기능 (영상 공유 주소와 분/초를 입력하면 링크 자동 생성)
- 전체 목록 보기 버튼 (필터링 해제)
- 단어 추가 버튼 (단어 입력 위치로 자동 이동)
내맘대로 단어장 영어판 Ver. 1 다운로드
2021.10.31 - [MS 오피스 팁/Excel] - [Excel/VBA/영어] 엑셀로 만든 신박한 단어장 (영어판 v1.1)
저에게 꼭 필요한 사전 기능 (구현한 기능)
1. 단어, 발음, 뜻, 예시 및 기타 사항 입력 → 기본 기능인 엑셀표를 이용하여 양식 작성
2. 일부 내용으로 해당 항목 찾기 → [자동 필터]의 [텍스트 필터] 중 [포함]을 활용하되 VBA로 제어
3. 읽어 주기 → SAPI 기능 활용 (참조 : 오빠두 - 엑셀 단어장 테스트 양식)
※ 음성 합성 기술을 이용한 것으로 악센트는 제대로 구현이 되지 않을 수 있습니다.
주요 편리 사항 및 기능
1. 검색어 입력 시 다시 본래의 입력 셀로 돌아가 연속 검색이 편리합니다. (관련 포스팅)
2. 학습에 참고가 되는 단어 분류 입력이 가능하고 클릭만으로 특정 분류로 필터링 (슬라이서 기능)
3. 엑셀 표 기능을 이용했으므로, 단어 추가 시 표의 범위가 자동으로 확장되어 편리합니다.
4. 전체 리스트를 보기 기능 (필터링 해제)
5. 여러셀을 선택하고 발음 듣기도 가능합니다. (다중 셀 값 텍스트 합친 뒤 한 번에 읽도록 코딩)
6. 유튜브 영상 링크 기능: 유튜브의 참고 영상을 링크로 첨부하고 바로 볼 수 있음 (재생할 위치의 시간에 맞춰서 링크)
엑셀 단어장 개발 내용
발음 듣기 구현, 필터링 기능 구현
다음 포스팅 참고 → 2021.06.01 - [MS 오피스 팁/Excel] - [Excel/VBA/일본어] 엑셀로 만든 신박한 단어장 (일본어판)
유튜브 링크
유튜브 링크 수식은 다음과 같습니다.
=IF([@분]<>"",HYPERLINK([@주소]&"?t="&([@분]*60+[@초]),"유튜브"),"")
표의 [분]열에 값이 있을 때만 하이퍼링크를 생성시키기 위해 if 함수를 사용하였습니다.
그리고 재생 위치를 포함한 유튜브 주소는 [주소?t=초] 형태를 가집니다.
유튜브 영상을 볼 때는 [분:초]로 표시되므로 그대로 입력하기 편하도록 했으나,
주소는 [초]로만 표현되어야 해서, [분*60+초]라는 수식을 넣었습니다.
슬라이서
표에서 필터링을 손쉽게 해주는 기능이며, 상단 리본 메뉴에서 [삽입] → [필터 → 슬라이서]를 선택한 뒤 원하는 열을 체크하고 확인을 누르면 됩니다.
한 가지 팁을 드리자면,
필터를 조작하다 보면 행들이 감춰지기 때문에 슬라이서의 일부도 화면에서 사라질 수가 있습니다.
슬라이서가 항상 전체 표시되도록 하려면, 화면에 추가된 슬라이서에서 마우스 우클릭 한 뒤 → [크기 및 속성] → 우측 설정 화면의 [속성]을 확장시켜 → [변하지 않음]을 선택하면 됩니다.
※ 필터 적용 시에는 항상 슬라이서 전체가 표시되지만, 스크롤하는 경우 화면에서 슬라이서가 사라질 수 있습니다.
표 맨 아래 특정 열로 이동
Set lo = ActiveSheet.ListObjects(1)
lo.HeaderRowRange(1, findCol("열이름")).End(xlDown).Offset(1).Select
※findCol함수는 열번호 찾는 함수로 다음에 설명
열 번호 찾기 함수 (findCol)
Function findCol(col As String) As Integer '열 번호 찾기
Set lo = ActiveSheet.ListObjects(1)
findCol = Application.Match(col, lo.HeaderRowRange, 0)
End Function
필터 해제 VBA 코드
Set lo = ActiveSheet.ListObjects(1)
lo.AutoFilter.ShowAllData
이상입니다!
'MS 오피스 팁 > Excel' 카테고리의 다른 글
[Excel/VBA/영어] 엑셀로 만든 신박한 단어장 (영어판 v1.3) (0) | 2021.10.31 |
---|---|
[Excel] VLOOKUP 함수로 두 개 시트에서 값 찾기 (0) | 2021.10.31 |
[Excel] 기술 표준 리스트 관리 - 최종 버전 확인 및 문서 열람 링크 (0) | 2021.06.28 |
[Excel/VBA/일본어] 엑셀로 만든 신박한 단어장 (일본어판) (2) | 2021.06.01 |
[Excel/VBA] 셀과 범위 선택하기 총정리! (2) | 2021.05.18 |
댓글