'Excel'에 해당되는 글 2건

  1. 2011.07.26 Visual C++에서 name mangling 16
  2. 2007.01.06 특정 셀의 값 변경 이벤트 19
http://hopeis.tistory.com/123
http://blog.naver.com/muggae/50010211722

VC로 DLL 만드는 경우에 def를 사용하지 않고 extern을 사용하는 경우에 VB에서 호출이 안된다.
이런 문제가 발생하는 이유는 볼랜드의 경우에 stdcall 호출 타입인 경우에는 extern "C"를 하면 함수 이름 그대로 export가 되지만, VC의 경우에 extern "C"를 하여도 prefix와 postfix가 붙게 되어 함수 이름이 변경되어 export 된다.
볼랜드 계열만 사용하다 VC에서는 왜 제대로 안되나 싶었는데 아래 자료를 읽어보니 명확해졌다.

# function_name_with_extern_c.png from Calling conventions for different C++ compilers and operating systems

Posted by Gu Youn
,
1. 설명 : 특정 cell(A1)에 100이 입력되면 메시지를 출력하고 sheet2를 숨긴다.

2. 소스
Dim sheet As Worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$A$1" Then '값 확인할 셀 주소
       If Target.Value = 100 Then '셀의 현재 값 비교
           Sheet1.msg '특정 조건의 이벤트 출력
           Sheet1.HideSheet
       Else
           Sheet1.ShowSheet
       End If
   End If
End Sub

Sub msg()
   MsgBox "100입니다."
End Sub

Sub HideSheet()
   Set sheet = ThisWorkbook.Worksheets("Sheet2")
   If sheet.Visible <> xlSheetVeryHidden Then
       'sheet.Visible = xlSheetVeryHidden '서시-시트에서 숨기기 취소 사용 못 함
       sheet.Visible = xlSheetHidden '서식-시트에서 숨기기 취소 사용 가능
   End If
End Sub

Sub ShowSheet()
   Set sheet = ThisWorkbook.Worksheets("Sheet2")
   sheet.Visible = xlSheetVisible
End Sub

3. 샘플


Posted by Gu Youn
,