MS 오피스 팁/Excel

[Excel/VBA/영어] 엑셀로 만든 신박한 단어장 (영어판)

노하우저장소 2021. 10. 18.

안녕하세요!

네이버 단어장, 카카오 단어장 등 많은 애플리케이션이 이미 있지만, 단어 추가와 몇 암기 기능만으로는 뭔가 아쉬움이 있습니다.

저에게는 나만의 지식과 학습 내용을 추가로 입력할 수 없는 것이 바로 그 아쉬움이었습니다.

그래서 제게 맞는 용도의 엑셀 단어장을 만들어보았습니다.

제 단어장의 주목적은 학습 내용의 기록이며 손쉬운 내용 검색입니다.

 

자, 구경해 보시죠!

※ 예시 화면은 일본어판인데, 지금 소개해 드리는 영어판이 훨씬 업그레이드됐습니다.

※ 일본어판 대비 영어판에 개선된 점

  • 분류와 토익스피킹 파트 입력 옵션 (관련 포스팅)
  • 우측 슬라이서 기능으로 간편한 필터링
  • 유튜브 영상 링크 기능 (영상 공유 주소와 분/초를 입력하면 링크 자동 생성)
  • 전체 목록 보기 버튼 (필터링 해제)
  • 단어 추가 버튼 (단어 입력 위치로 자동 이동)

내맘대로 단어장 영어판 Ver. 1 다운로드

내맘대로단어장_영어_v1.xlsm
0.08MB

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

 

이상입니다!

 

 

 

[Excel/VBA/일본어] 엑셀로 만든 신박한 단어장 (일본어판)

안녕하세요! 네이버 단어장, 카카오 단어장 등 많은 애플리케이션이 이미 있지만, 단어 추가와 몇 암기 기능만으로는 뭔가 아쉬움이 있습니다. 저에게는 나만의 지식과 학습 내용을 추가로 입력

knowhowbank.tistory.com

 

댓글