VBA함수를 정리해놓은 사이트가 있어서 소개한다. 이들 사이트에서 복사한 다음, 출처를 표기할까 하는 생각을 좀 했다. 그러나, 개인적으로 누가 원저자인지를 모르겠어서 그냥 주소만 여기에 옮겨놓는다.
http://www.cancould.com.ne.kr/hamsu.htm
비주얼 베이직 함수라고 하는데, VBA 함수가 더 정확한 표현인 것 같다.
건물 에너지, IT와 여러 가지 글들
VBA함수를 정리해놓은 사이트가 있어서 소개한다. 이들 사이트에서 복사한 다음, 출처를 표기할까 하는 생각을 좀 했다. 그러나, 개인적으로 누가 원저자인지를 모르겠어서 그냥 주소만 여기에 옮겨놓는다.
http://www.cancould.com.ne.kr/hamsu.htm
비주얼 베이직 함수라고 하는데, VBA 함수가 더 정확한 표현인 것 같다.
어제오늘 웹서버가 제대로 작동하지 못했다. 아주 사소한 문제가 발생했다.
runlevel을 수정할 때는 반드시 그에 따른 서비스를 검토해야 한다.
현재 서비스 중인 데몬은 다음과 같다.
Application.UserName : 엑셀 사용자 이름
Application.Version : 현재 사용하는 엑셀 버전
Application.Path : 엑셀이 설치되어 있는 폴더(위치)
Application.StartUpPath : 시작 폴더(위치)
Application.DisplayStatusBar : 상태표시줄을 화면에 표시할 것인지 아니면 안 할 것인지를 설정
Application.StatusBar : 상태표시줄에 문자열을 표현
문제) 엑셀을 이용하여 이차방정식()을 풀어라
출제의도) If문을 이해한다.
해법)
1) 첫행(셀A1부터 셀E1까지)에 방정식에 필요한 계수들을 기록한다.
2) 둘째 행을 계수의 입력과 근에 대한 출력으로 설정한다.
3) 마지막 셀(셀F2)에 프로시저를 실행시킬 ‘단추’를 둔다.
4) VBA로 이차방정식을 푸는 프로시저를 다음과 같이 작성한다.
특징: 실근뿐만 아니라 허근도 구한다. 불능과 부정도 판정한다. 설령 이차항의 계수가 0일지라도, 즉 이차방정식이 아닐지라도 계산한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
Sub SolveQuadraticEquation() Dim a As Single Dim b As Single Dim c As Single 'Dim x1 As Single '실근만 있을때는 유효하나, 허근이 있으면 좀 곤란하게 되지요. 'Dim x2 As Single Dim d As Single '판별식 discriminant Dim u As Single Dim v As Single Dim output1 As String '허근의 표시 문자인 i를 출력하기 위해서, Dim output2 As String '그리고 부정과 불능을 출력하기 위해서 문자열로 처리함. '1) 셀에서 값을 읽어온다. Read the varibles from the excel cells a = Range("A2") b = Range("B2") c = Range("C2") ' '2) find the roots of equation If a <> 0 Then ' --> quadratic equation d = b ^ 2 - 4 * a * c u = -b / (2 * a) If d > 0 Then '서로 다른 두 실근(實根)을 갖는다. v = Sqr(d) / (2 * a) output1 = u + v output2 = u - v ElseIf d < 0 Then '허근(虛根)을 갖는다. v = Sqr(-d) / (2 * a) output1 = u & "+" & v & "i" output2 = u & "-" & v & "i" Else 'd=0 '중근(重根)을 갖는다. output1 = u output2 = output1 End If Else 'a = 0 If b <> 0 Then '--> linear equation output1 = -c / b output2 = "None" Else 'b= 0 If c <> 0 Then output1 = "不能" output2 = "不能" Else 'c = 0 output1 = "不定" 'indeterminate output2 = "不定" End If End If End If ' '3)출력 Output Range("D2") = output1 Range("E2") = output2 ' End Sub |
포스터는 의사를 전달하는 수단이다.
효과적으로 포스터를 만드는 방법을 알려주는 사이트가 있다.
[Creating Effective Poster Presentations]
An effective poster is a visual communications tool.
All visuals and text should relate to a succinctly stated message.
You should make your message accessible to a diverse audience.
An effective abstract is your first opportunity to hone your message.
Creating an effective posters requires planning, art, science, and attention to detail.
이전 글 : PERT/CPM을 위한 엑셀
제가 참고한 자료는 Seal교수의 논문입니다. 이 논문은 http://archive.ite.journal.informs.org/ ··· seal.php 에서 받을 수 있습니다. 엑셀 파일도 함께 있습니다.
매크로 기록은 조작한 명령을 기록하는 것으로 처리를 자동화할 때 편리한 기능이다. 조건에 따라 처리를 분기시키거나 원하는 값을 구할 때까지 계산을 반복시키는 복잡한 처리는 불가능하다. 이것은 VBA의 범주로 넘어간다. VBA를 시작한 사람은 우선 매크로 기록에서 전체를 이해하고, 다음에 Visual Basic Editor를 사용하여 코드를 추가/수정하는 것으로 원하는 매크로로 바꾸는 것이 VBA를 이해하고 실행하는데 효과적인 방법이다.
출처 : Katsuyuki Watanabe et al, 감춰놓고 혼자보는 엑셀비밀노트 970, p.652
ASCII File
ASCII = American Standard Code for Information Interchange
글자의 내용만 있고, 형식을 저장하지 않는다(plain text).
메모장과 같은 Text Editor로 보기와 편집이 가능하다.
호환용 형식(interchange format)으로 많이 사용된다.
파일의 크기가 커질 수 있다.
Character Set의 문제(encoding-decoding)가 발생할 수 있다.(Unicode, EUC-KR 등)
관련 확장자 : TXT, XML, DXF, CSV, PS
관련사이트 : Power of Plain Text
Binary Files
자료를 0과 1의 형태(이진 즉 binary)로 저장한다.
소프트웨어 제작사의 노하우가 숨어져 있다. 일반적으로 그 구조가 어떻게 되어 있는지 알 수 없다. 따라서 특정 편집기를 통해서 열기와 편집이 가능하다.
문서 파일의 경우, 글자의 내용뿐만 아니라 형식(글자체, 모양 등)도 저장한다(formatted text, styled text or rich text).
관련 확장자 : HWP, DOC, DWG, XLS, PDF
1. 프로그램이 시작된 경로를 알아내기
– App.Path 함수를 사용한다.
2. App.Path 사용시 주의할 점
– 루트 디렉토리일 경우 “\”를 함께 반환한다.
– 루트 디렉토리가 아닐 경우, 끝에 “\”가 없다.
3. 더 좋은 App.Path (출처 : http://www.freevbcode.com/ShowCode.asp?ID=878)
항상 끝에 “\”가 붙게 한다.
1 2 3 4 5 6 |
Public Function AppPath() As String Dim NewPath As String NewPath = App.Path If Right(App.Path, 1) <> "\" Then NewPath = NewPath & "\" AppPath = NewPath End Function |
사용예
1 2 |
'Open "C:\IA Program\입력값\FormData_5장.txt" For Input As #1 Open AppPath & "입력값\FormData_5장.txt" For Input As #1 |
4. 프로그램 시작 경로에서 파일명 가져오기
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Function GetFileName(sFileName As String) As String Dim FullFilename As String ' '파일이름 If Right$(Trim$(App.Path), 1) = "\" Then FullFilename = App.Path + sFileName Else FullFilename = App.Path + "\" + sFileName End If ' GetFileName = FullFilename ' End Function |
사용예 : FormData_5장.txt를 프로그램시작경로에서 찾는다.
1 |
myFile = GetFileName("FormData_5장.txt") |
5. 전체파일명에서 경로만 뽑아내기
1 2 3 4 5 6 7 8 9 10 |
Function GetPath(strFullFilename As String) As String ' Dim strPath As String strPath = Mid(strFullFilename, 1, InStrRev(strFullFilename, "\", , vbTextCompare) - 1) If Len(strPath) = 0 Then strPath = App.Path End If GetPath = strPath ' End Function |
호환성 : Visual Basic 5, 6
No amount of experimentation can ever prove me right; a single experiment can prove me wrong.
Science without religion is lame, religion without science is blind.
– Albert Einstein
Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. – Marie Curie