Form Follows Energy

건물 에너지, IT와 여러 가지 글들

[excel]Spreadsheet for Critical Path Method

November 5th, 2014

This is a very simple program for  PERT/CPM.

Features

1) Calculate activity times : Earliest Start Time (EST); Earliest Finish Time (EFT); Latest start time (LST); Latest Finish Time (LFT).
2) Calculate the float times(TF, DF, FF) of each activity : Total Float (TF); Dependant Float(DF); Free Float (FF).
3) Determine Critical Path of activities
4) Draw a Gantt Chart

Sheets of program
1) Manual sheet -> includes user manual and warnings.
2) Input sheet -> has input-data area and calculation button.
3) Gantt Chart sheet

Screenshot

Screenshot of CriticalPath.XLS

Download a file : CriticalPathEng.xls

If you need a korean version file, please click here. (한국어 파일이 필요하면 여기를 누르시오.

[VBA] VBA Functions for Excel

November 29th, 2013
VBA Function 역할
Abs 숫자의 절대값을 반환한다.
Array 배열을 담고 있는 variant를 반환한다.
Asc 문자열의 첫 글자의 ASCII 값을 반환한다.
Atn 숫자의 아크탄젠트(arctangent) 값을 반환한다.
CBool 부울(boolean) 형식으로 변환한다.
CByte 바이트(byte) 형식으로 변환한다.
CCur (currency)형식으로 변환한다.
CDate Converts an expression to date data type
CDbl Converts an expression to double data type
CDec Converts an expression to decimal data type
Choose Selects and returns a value from a list of arguments
Chr Converts an ANSI value to a string
CInt Converts an expression to integer data type
CLng Converts an expression to long data type
Cos Returns the cosine of a number
CreateObject Creates an OLE Automation object
CSng Converts an expression to single data type
CStr Converts an expression to string data type
CurDir Returns the current path
CVar Converts an expression to variant data type
CVDate Converts an expression to date data type
CVErr Returns a user-defined error number
Date Returns the current system date
DateAdd Returns a date with a specific date interval added to it
DateDiff Returns a date with a specific date interval subtracted from it
DatePart Returns an integer containing a specific part of a date
DateSerial Converts a date to a serial number
DateValue Converts a string to date
Day Returns the day of the month of a date
Dir Returns the name of a file or directory that matches a pattern
DoEvents Yields execution so the operating system can process other events
EOF Returns True if the end of a text file has been reached
Error Returns the error message that corresponds to an error number
Exp Returns the base of the natural logarithms (e) raised to a power
FileAttr Returns the file mode for a text file
FileDateTime Returns the date and time when a file was last modified
FileLen Returns the number of bytes in a file
Fix Returns the integer portion of a number
Format Displays an expression in a particular format
Format Currency Returns a number as a string, formatted as currency
FormatDateTime Returns a number as a string, formatted as a date and/or time
Format Number Returns a number as a formatted string
Format Percent Returns a number as a string, formatted as a percentage
FreeFile Returns the next file number available for use by the Open statement
GetAll Returns a list of key settings and their values (originally created with SaveSetting) from an application’s entry in the Windows registry
GetAttr Returns a code representing a file attribute
GetObject Retrieves an OLE Automation object from a file
GetSetting Returns a key setting value from an application’s entry in the Windows registry
Hex Converts from decimal to hexadecimal
Hour Returns the hour of a time
IIf Returns one of two parts, depending on the evaluation of an expression
Input Returns a specific number of characters from an open text file
InputBox Displays a box to prompt a user for input
InStr Returns the position of a string within another string
InStrRev Returns the position of a string within another string, beginning at the back end of the string
Int Returns the integer portion of a number
IsArray Returns True if a variable is an array
IsDate Returns True if a variable is a date
IsEmpty Returns True if a variable has been initialized
IsError Returns True if an expression is an error value
IsMissing Returns True if an optional argument was not passed to a Procedure
IsNull Returns True if an expression contains no valid data
IsNumeric Returns True if an expression can be evaluated as a number
IsObject Returns True if an expression references an OLE Automation object
Join Returns a string created by joining a number of substrings contained in an array
LBound Returns the lower bound of an array
LCase Returns a string converted to lowercase
Left Returns a specified number of characters from the left of a string
Len Returns the length of a string, in characters
Loc Returns the current read or write position of a text file
LOF Returns the number of bytes in an open text file
Log Returns the natural logarithm of a number
LTrim Returns a copy of a string with no leading spaces
Mid Returns a specified number of characters from a string
MidB Returns a specified number of bytes from a string
Minute Returns the minute of a time
Month Returns the month of a date
MonthName Returns a string indicating the specified month
MsgBox Displays a modal message box
Now Returns the current system date and time
Oct Converts from decimal to octal
Replace Returns a string in which one substring is replaced with another
RGB Returns a number representing an RGB color value
Space Returns a string with a specified number of spaces
Split Returns an array consisting of a number of substrings
Sqr Returns the square root of a number
Str Returns a string representation of a number
Right Returns a specified number of characters from the right of a string
Rnd Returns a random number between 0 and 1
Round Rounds a number to a specific number of decimal places
RTrim Returns a copy of a string with no trailing spaces
Second Returns the second of a time
Seek Returns the current position in a text file
Sgn Returns an integer that indicates the sign of a number
Shell Runs an executable program
Sin Returns the sin of a number
StrComp Returns a value indicating the result of a string comparison
StrConv Returns a string variant converted as specified
String Returns a repeating character or string
StrReverse Reverses the character order of a string
Switch Evaluates a list of expressions and returns a value associated with the first expression in the list that is True
Tab Positions output in an output stream
Tan Returns the tangent of a number
Time Returns the current system time
Timer Returns the number of seconds since midnight
TimeSerial Returns the time for a specified hour, minute, and second
TimeValue Converts a string to a time serial number
Trim Returns a string containing a copy of a specified string without leading spaces and trailing spaces
TypeName Returns a string that describes the data type of a variable
UBound Returns the upper bound of an array
UCase Converts a string to uppercase
Val Returns the numbers contained in a string
VarType Returns a value indicating the subtype of a variable
Weekday Returns a number representing a day of the week
Weekday Name Returns a string indicating the specified weekday
Year Returns the year of a date

[Excel]Solver 활용

January 7th, 2013

[VBA]내 코드에서 엑셀 함수를 불러 사용하는 방법

October 25th, 2012

엑셀 함수(정확히는 워크시트 함수)에는 분야별로 많은 함수들이 내장되어 있다. 통계, 공학, 재무, 수학/삼각, 논리 등등 많이 있다. 이것을 내 VBA코드에서 활용할 방법은 없을까?

1) VBA 코드 안에서 풍부한 워크시트 함수를 호출하는 방법

2) A열 전체 중에서 가장 큰 값을 B1에 읽어오기

3) A열 전체 중에서 가장 큰 값을 가진 셀을 활성화하기

[VBA]방정식을 반복법으로 풀기

October 25th, 2012

 e^x - 5 sin x + 1.36 x =0을 반복법으로 풀어라.

먼저, 주어진 식을  x =  g (x)형식으로 변형시킨다.

즉,  x = e^x - 5 sin x + 2.36 x 으로 변형시킨다. 따라서  g(x) = e^x - 5 sin x + 2.36 x 가 된다.

풀어야 할 방정식은 다음과 같다.

[VBA] vector operation

October 24th, 2012

벡터 계산을 위한 구조체 선언

내적 계산하기

벡터의 합

외적

벡터의 크기

벡터의 차를 위한 함수

벡터의 비교

[VBA]데이터 형식

October 18th, 2012

모든 프로그래밍 언어에는 자신들만의 데이터 형식을 갖고 있다.

다음은 엑셀의 도움말에 있는 내용이다.

데이터 형식 저장 용량 범위
Byte 1바이트 0부터 255까지
Boolean 2바이트 True 또는 False
Integer 2바이트 -32,768부터 32,767까지
Long
(긴 정수)
4바이트 -2,147,483,648부터 2,147,483,647까지
Single
(단정도 부동 소수점)
4바이트 -3.402823E38부터 -1.401298E-45까지(음수값). 1.401298E-45부터 3.402823E38까지(양수값)
Double
(배정도 부동 소수점)
8바이트 -1.79769313486232E308부터
-4.94065645841247E-324까지(음수값). 4.94065645841247E-324부터 1.79769313486232E308까지(양수값)
Currency
(정수 값 잘림)
8바이트 -922,337,203,685,477.5808부터 922,337,203,685,477.5807까지
Decimal 14바이트 +/-79,228,162,514,264,337,593,543,950,335(소수점 이하 없음);
+/-7.9228162514264337593543950335(숫자의 오른쪽으로부터 28번째); +/-0.0000000000000000000000000001(0이 아닌 최소 숫자)
Date 8바이트 100년 1월 1일부터 9999년 10월 31까지
Object 4바이트 모든 개체 참조
String
(가변 길이)
10바이트 +문자열 길이 0부터 약 20억까지
String
(고정 길이)
문자열 길이 1부터 약 65,400까지
Variant
(숫자)
16바이트 Double형 범위 내의 모든 숫자
Variant
(문자)
22바이트 + 문자열 길이 변수 길이 String과 같은 범위
사용자 정의 형식
(Type 사용)
요소가 사용하는 숫자 해당 데이터 형식의 범위값과 각 요소의 범위값이 같음

 

메모 모든 데이터 형식의 배열은 20바이트 + 각 차원당 4바이트 + 데이터 자체가 차지하는 바이트 만큼의 메모리를 차지하며, 각 항목의 수에 항목의 크기를 곱하면 데이터가 차지하는 메모리의 용량을 구할 수 있습니다. 예를 들면 2바이트를 차지하는 4개의 Integer 데이터 요소로 된 1차원 배열은 8바이트를 차지합니다. 데이터의 8바이트와 오버헤드 24바이트를 더하면 배열에 필요한 메모리 양은 32바이트가 됩니다.

Variant는 배열 자체보다 12바이트를 더 차지하는 배열을 가지고 있습니다.

메모 StrConv 함수는 문자열 데이터를 다른 형식의 문자열 데이터로 변환할 때 사용된다.

도움말 끝

 

<개인 생각>

개인적으로 실수는 Double을, 엑셀의 셀을 참조하기 위한 행, 열 관련 변수는 Long으로 하는 것이 좋다.

[VBA]Do-Loop문의 이해

October 15th, 2012

이 함수들을 호출하는 서브 프로시저는 다음과 같다.

위 코드에는 불필요한 중복이 있다. 어떻게 할 것인가?

[VBA]For-Next문의 이해

October 12th, 2012

반복 횟수만큼 실행문을 반복할 때 사용한다.

이상은 평균을 구하는 함수이다. 다음은 분산(Variance)를 구하는 함수이다.

다음은 표준편차를 구하는 함수이다.

위에는 오류 코드(버그)가 숨겨 있다. 잘 찾아보아 보세요.