nØthing specia¡

Sources

Posts

129 posts

나만의 이벤트 정의하기

nØthing specia¡|2020년 1월 24일

프로그래밍을 하다보면 개체가 제공해주는 이벤트가 불만족스런 경우가 생긴다. 혹시 나만의 이벤트를 만들 수 있지 않을 까… 물론 가능하다. 다음은 Userform의 콤보상자를 바탕으로 여기에 내 이벤트를 만드는 예이다. 콤보상자에 데이터를 입력하면 새로 입려된 데이터는 콤보상자의 리스트로 들어간다. 그런데 이미 입력한 데이터라면 입력을 취소하는 예이다. [DataComboBox.cls] Option Explicit '// define DataComboBox's an event, 'ItemAdded' Public Event ItemAdded(strValue As String, blnCancel As Boolean) '// p_cboCombo is a variable that refers to

사용자를 배려한 한/영 입력

nØthing specia¡|2020년 1월 21일

옛날 얘기인데, 각종 업무용 프로그램을 액세스로 개발하여 밥먹고 사는 사람이 있었는 데, 개발해놓은 걸 보니 날짜입력을 그냥 텍스트박스로 처리해두고 있었다. Calendar컨트롤을 사용하면 입력도 편리하고 제대로 일자 포맷에 맞게 입력되었는 지 체크하는 수고도 덜 수 있을 텐데 그리 하지 않았다. 이유를 물어보니 , 본인도 그런 점을 알지만 다년 간의 경험상 그런 컨트롤을 사용하다보면 프로그램도 무거워지고(액세스는 디비를 같이 담고 있으니 더욱 그럴 만하다) 결정적으로 불안정해져 실행중 프로그램이 죽는 경우가 있다고 한다. 잔뜩 입력하다가 프로그램이 죽는 것보단 불편한게 나을 것이다. 게다가 달력컨트롤이 기본이 아니어서 PC마다 없는 경우가 생길 수 있다. '가지 많은 나무에 바람 잘 날 없다'는 속

Collection의 Key는 어디서 찾아야 하나?

nØthing specia¡|2020년 1월 20일

이런 경우 VBA는 한심한 언어이다. 무슨 얘기인가 하면 Collection개체의 Add메서드를 사용할 때 딕셔너리처럼 {Key, Item}와 같이 Key를 같이 입력할 수 있다. 물론 Key는 유일해야 하므로 중복된 Key값은 받아주질 않는다. 그런데 Key를 입력하고 나면 Key값을 알 수 있는 방법이 없다. 도대체 Key를 만들어 입력해서 Key를 갖고 Item을 찾을 수 있게 해주면 뭐하나? Key을 돌려주는 프로퍼티나 메서드가 없는데… 이런 문제점에 대한 대안으로 Item에 Key를 포함해서 넣어주는 방법으로 해결한다. 즉 프로그래밍언어 차원이 아닌 개발방법으로서 몸으로 때우는 것이다. Dim col As New Collection col.Add Array("key#1", "fir

VBA로 만드는 알고리즘-리스트

nØthing specia¡|2020년 1월 20일

데이터를 다룰 때 가장 많이 사용하는 것이 배열과 리스트인데, 오늘은 리스트 관련한 얘기를 하려고 한다. 리스트는 가장 인기있는 데이터구조인데, 배열과 달리 미리 크기가 정해져 있지 않고, 필요에 따라 데이터를 추가/삭제가 가능한 기능을 가지고 있다. VBA는 컬렉션(Collecton)개체라는 리스트를 제공하는 데(제공하는 것만도 감지덕지 하다), 그외 외부참조를 통해 딕셔너리나 닷넷의 ArrayList들이 사용가능하다. 프로그래밍하면서 가장 편리하다고 생각하는 것이 컬렉션개체인데, 역설적으로 기능이 정말 단촐해서 맘에 든다. 기능은 많은 데, 자주 사용하지 않는 것보단 단순하게 배우기 쉽고 활용도 좋다. 그렇지만 사람 욕심이라는 게, 내가 쓸 연장은 내가 만들고 싶은 욕구라는 게 있다. 다음

구글앱스크립트로 실시간 데이터 업데이트하기

nØthing specia¡|2020년 1월 17일

이번에는 구글 앱스크립트로 실시간 페이지를 업데이트하는 예를 소개하고자 하는 데, 직접 만든 건 아니고(아직 그럴 짠밥이 못된다) 깃헙(Github)에 좋은 프로젝트가 하나 있어 소개한다. Real-time dashboard using google.script.run 이 프로젝트는 일정간격으로 TheSimpsons Quote API(심슨이 들려주는 격언,에서 격언과 이미지를 가져오는 것이다. 그 결과물은 다음과 같다. 깃허브에 가면 소스코드를 볼 수 있는 데, 프로젝트는 매우 단촐하다. 서버사이드 코드 Code.gs와 클라이언트 사이드 Index.html(자바스크립트 포함)가 전부이다(이런 간단명료한 거 좋아한다) 클라이언트 사이드 소스코드에서 google.script.run.wi