CALL 및 REGISTER 함수 사용

중요: 주의    레지스트리를 잘못 편집하면 운영 체제가 심각하게 손상되어 다시 설치해야 할 수도 있습니다. Microsoft에서는 레지스트리를 잘못 편집하여 발생한 문제에 대한 해결 가능성을 보증하지 않습니다. 따라서 레지스트리를 편집하기 전에 중요한 데이터를 모두 백업해 두는 것이 좋습니다. 컴퓨터 레지스트리의 사용 및 보호 방법과 관련된 최신 정보를 확인하려면 Microsoft Windows 도움말을 참조하세요.

이 문서에서는 Microsoft Excel의 CALL, REGISTER, REGISTER.ID 함수에 사용되는 수식 구문과 이 함수를 사용하는 방법을 설명합니다.

참고:  CALL 및 REGISTER 함수는 에서 사용할 웹용 Excel.

이 문서의 내용

설명

다음은 CALL, REGISTER, REGISTER.ID 함수에 사용되는 인수 및 반환 값 데이터 형식에 대한 설명입니다. 인수와 반환 값은 운영 환경에 따라 약간씩 다르며, 이러한 차이점이 데이터 형식 표에 나와 있습니다.

맨 위로 이동

데이터 형식

CALL, REGISTER및 REGISTER.ID 함수에서 type_text 인수는 반환 값의 데이터 형식과 DLL 함수 또는 코드 리소스에 대한 모든 인수의 데이터 형식을 지정합니다. 첫 번째 type_text 반환 값의 데이터 형식을 지정합니다. 나머지 문자는 모든 인수의 데이터 형식을 나타냅니다. 예를 들어 부동 소수점 번호를 반환하고 정수와 부동 소수점 번호를 인수에 "BIB"가 필요하기 때문에 부동 소수점 번호를 type_text 함수입니다.

다음 표에는 Microsoft Excel에서 인식하는 모든 데이터 형식 코드, 각 데이터 형식에 대한 설명, 인수나 반환 값의 전달 방법 및 C 프로그래밍 언어에서의 일반적인 데이터 형식 선언이 나와 있습니다.

코드

설명

전달 방법

C 선언

A

논리값
(FALSE = 0, TRUE = 1)

short int

B

IEEE 8바이트 부동 소수점 수


(Windows)

참조(Macintosh)

double
(Windows)

double *(Macintosh)

C

Null로 끝나는 문자열(최대 문자열 길이 = 255)

참조

char *

D

바이트 단위로 계산되는 문자열(첫째 바이트에는 문자열 길이가 지정됨. 최대 문자열 길이 = 255자)

참조

unsigned char *

E

IEEE 8바이트 부동 소수점 수

참조

double *

F

Null로 끝나는 문자열(최대 문자열 길이 = 255자)

참조(현재 위치에서 수정)

char *

G

바이트 단위로 계산되는 문자열(첫째 바이트에는 문자열 길이가 지정됨. 최대 문자열 길이 = 255자)

참조(현재 위치에서 수정)

unsigned char *

H

부호 없는 2바이트 정수

unsigned short int

I

부호 있는 2바이트 정수

short int

J

부호 있는 4바이트 정수

long int

K

배열

참조

FP *

L

논리값
(FALSE = 0, TRUE = 1)

참조

short int *

M

부호 있는 2바이트 정수

참조

short int *

N

부호 있는 4바이트 정수

참조

long int *

O

배열

참조

인수 세 개가 전달됨:
unsigned short int *
unsigned short int *
double [ ]

P

Microsoft Excel OPER 데이터 구조

참조

OPER *

R

Microsoft Excel XLOPER 데이터 구조

참조

XLOPER *

맨 위로 이동

주의

  • C 언어 선언에서는 컴파일러의 기본 설정이 8바이트 실수(Double), 2바이트 정수(Short) 및 4바이트 정수(Long)라고 가정합니다.

  • Microsoft Windows 프로그래밍 환경에서 모든 포인터는 원거리 포인터입니다. 예를 들어 Microsoft Windows에서 D 데이터 형식 코드는 unsigned char far *로 선언해야 합니다.

  • DL 및 코드 리소스의 모든 함수는 Pascal 호출 규칙을 사용하여 호출됩니다. 대부분의 C 컴파일러를 사용하면 다음 예제와 같이 함수 선언에 Pascal 키워드를 추가하여 Pascal 호출 규칙을 사용할 수 pascal void main (rows,columns,a)

  • 함수에서 반환 값에 대해 참조 전달 방식의 데이터 형식을 사용하는 경우 NULL 포인터를 반환 값으로 전달할 수 있습니다. Microsoft Excel에서 NULL 포인터는 #NUM! 오류 값으로 해석됩니다.

맨 위로 이동

추가 데이터 형식 정보

여기에서는 F, G, K, O, P 및 R 데이터 형식에 대한 자세한 내용과 type_text 인수에 대한 기타 내용을 제공합니다.

F 및 G 데이터 형식

함수에 F 및 G 데이터 형식을 사용하면 Microsoft Excel에서 할당하는 문자열 버퍼를 수정할 수 있습니다. 반환 값 형식 코드가 F나 G이면 함수가 반환한 값은 무시됩니다. 대신 함수의 인수 목록에서 해당하는 첫째 데이터 형식(F 또는 G)을 검색하고 할당된 문자열 버퍼의 현재 내용을 반환 값으로 사용합니다. Microsoft Excel에서는 해당 인수에 256바이트를 할당하므로 함수는 받은 것보다 더 큰 문자열을 반환할 수도 있습니다.

맨 위로 이동

K 데이터 형식

K 데이터 형식은 변수 크기 FP 구조를 가리키는 포인터를 사용합니다. 이 구조는 다음과 같이 DLL이나 코드 리소스에 정의해야 합니다.

typedef struct _FP
{
unsigned short int rows;
unsigned short int columns;
double array[1]; /* Actually, array[rows][columns] */
} FP;

double array[1] 선언은 요소가 하나뿐인 배열의 저장 공간을 할당합니다. 실제 배열의 요소 수는 행 수를 열 수로 곱한 값과 같습니다.

맨 위로 이동

O 데이터 형식

O 데이터 형식은 반환 값이 아닌 인수로만 사용할 수 있습니다. 배열의 행 수에 대한 포인터, 배열의 열 수에 대한 포인터, 부동 소수점 숫자의 2차원 배열에 대한 포인터 등 세 가지 항목을 전달합니다.

값을 반환하는 대신 함수는 O 데이터 형식에 의해 전달된 배열을 수정할 수 있습니다. 이를 위해 ">O"를 type_text 있습니다. 자세한 내용은 아래 "장소 수정 — Void로 선언된 함수"를 참조하세요.

O 데이터 형식은 참조 방식으로 인수를 전달하는 Fortran DLL과 직접 호환됩니다.

맨 위로 이동

P 데이터 형식

P 데이터 형식은 OPER 구조를 가리키는 포인터입니다. OPER 구조에는 8바이트 데이터와 데이터 형식을 지정하는 2바이트 식별자가 있습니다. P 데이터 형식을 사용하면 DLL 함수나 코드 리소스가 모든 Microsoft Excel 데이터 형식을 사용하고 반환할 수 있습니다.

OPER 구조는 다음과 같이 정의됩니다.

typedef struct _oper

{
union
{
double num;
unsigned char *str;
unsigned short int bool;
unsigned short int err;
struct
{
struct _oper *lparray;
unsigned short int rows;
unsigned short int columns;
} array;
} val;
unsigned short int type;
} OPER;

type 필드에는 다음 값 중 하나가 포함됩니다.

type

설명

사용할 val 필드

1

숫자

num

2

문자열(첫째 바이트에 문자열 길이가 포함됨)

str

4

부울(논리)

bool

16

오류: 오류 값은 다음과 같습니다.

0#NULL!

7#DIV/0!

15#Value!

23#REF!

29#NAME?

36#NUM!

42#N/A

err

64

배열

array

128

누락된 인수

256

빈 셀

마지막 두 값은 값을 반환하지 않는 인수로만 사용할 수 있습니다. 호출자에서 인수를 생략할 때 누락된 인수 값(128)이 전달됩니다. 빈 셀 값(256)은 호출자에서 빈 셀에 대한 참조를 전달할 때 전달됩니다.

맨 위로 이동

R 데이터 형식 - DLL에서 Microsoft Excel 함수 호출

R 데이터 형식은 OPER 구조의 향상된 버전인 XLOPER를 가리키는 포인터입니다. Microsoft Excel 버전 4.0 이상에서는 Microsoft Excel 함수를 호출하는 DLL 및 코드 리소스를 R 데이터 형식으로 작성할 수 있습니다. XLOPER 구조를 사용하면 DLL 함수가 시트 참조를 전달하여 흐름 제어를 구현하는 동시에 데이터도 전달할 수 있습니다. 여기서 R 데이터 형식과 Microsoft Excel API(응용 프로그래밍 인터페이스)에 대해 자세히 설명하지는 않습니다. R 데이터 형식, Microsoft Excel API, Microsoft Excel의 다양한 기술적 측면에 대한 자세한 내용은 Microsoft Office XP Developer's Guide를 참조하세요.

맨 위로 이동

잘못된 함수와 재계산

Microsoft Excel은 일반적으로 DLL 함수(또는 코드 리소스)를 셀에 입력하거나, 해당 전례 중 하나를 변경하거나 매크로 중에 셀을 계산할 때만 계산합니다. 워크시트에서 DLL 함수 또는 코드 리소스 휘발성으로 만들 수 있습니다. 즉, 워크시트가 다시 계산될 때마다 다시 계산됩니다. 함수를 휘발성으로 만들 수 있도록 느낌표(!)를 type_text 인수의 마지막 문자로 추가합니다.

예를 들어 Windows용 Microsoft Excel에서 다음 워크시트 수식은 워크시트를 다시 계산할 때마다 새로 계산됩니다.

CALL("Kernel32","GetTickCount","J!")

맨 위로 이동

현재 위치에서 수정 - Void로 선언된 함수

type_text의 반환 형식 코드에 한 자리 숫자 n(1 - 9)을 사용할 수 있습니다. 그러면 Microsoft Excel에서 값을 반환하는 대신 type_text의 n번째 인수가 가리키는 위치의 변수를 수정합니다. 이것을 현재 위치에서 수정이라고도 합니다. n번째 인수는 참조 전달 방식의 데이터 형식(C, D, E, F, G, K, L, M, N, O, P 또는 R)이어야 합니다. 또한 DLL 함수나 코드 리소스는 void 키워드(C 언어)나 procedure 키워드(파스칼 언어)를 사용하여 선언해야 합니다.

예를 들어 NULL로 끝나는 문자열과 정수를 가리키는 두 포인터를 인수로 사용하는 DLL 함수는 문자열을 현재 위치에서 수정할 수 있습니다. "1FMM"을 type_text 인수로 사용하고 함수는 void로 선언합니다.

Microsoft Excel 4.0 이전 버전에서는 > 첫 번째 인수를 수정했습니다. 첫 번째 인수 이외에는 인수를 수정할 방법이 없습니다. 이 > 문자는 Microsoft Excel 버전 4.0 이상에서 n = 1과 같습니다.

맨 위로 이동

추가 도움이 필요하신가요?

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×