첫댓글엑셀에다가 그냥 암호를 걸면 되지 않나요? 암호를 모르면 그걸 copy해 가 봐야 열 수가 없으니 의미가 없을텐데요. 저는 중요한 파일에 암호를 걸었다가 저도 못 열어서 폐기한 적도 있습니다. ㅋㅋ 파일 이름에 암호에 대한 힌트를 숨겨 놓거나, 아니면 별도로 암호관리 파일을 만들고 거기 암호는 항상 기억하는 암호를 사용하면 됩니다.
암호는 거는 방법은 [다른 이름으로 저장] - [도구] - [일반 옵션] 에 있습니다. (엑셀 2010기준) 꼭 다른 이름으로 저장을 하지 않고 기존 파일 이름 그대로 덮어쓰면 됩니다.
아래 코드를 참고로... Option Explicit Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, ByRef lpVolumeSerialNumber As Long, ByRef lpMaximumComponentLength As Long, ByRef lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
첫댓글 엑셀에다가 그냥 암호를 걸면 되지 않나요?
암호를 모르면 그걸 copy해 가 봐야 열 수가 없으니 의미가 없을텐데요.
저는 중요한 파일에 암호를 걸었다가 저도 못 열어서 폐기한 적도 있습니다. ㅋㅋ
파일 이름에 암호에 대한 힌트를 숨겨 놓거나,
아니면 별도로 암호관리 파일을 만들고 거기 암호는 항상 기억하는 암호를 사용하면 됩니다.
암호는 거는 방법은 [다른 이름으로 저장] - [도구] - [일반 옵션] 에 있습니다. (엑셀 2010기준)
꼭 다른 이름으로 저장을 하지 않고 기존 파일 이름 그대로 덮어쓰면 됩니다.
안녕하세요? [빙룡이]님...
이미 좋은 답변을 받으셨는데...
해당 컴퓨터의 HDD의 s/n를 API로 가져와서 auto_open 프로시져에서 HDD s/n와 기존저장해 놓은 자료와 비교해서 맞지 않으면 실행하지 못하게 하시는 방법도 있습니다.
하지만 이방법도 완벽한 보안이 되진 않습니다.
그럼 잘 해결되시길... ^^*
아래 코드를 참고로...
Option Explicit
Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, ByRef lpVolumeSerialNumber As Long, ByRef lpMaximumComponentLength As Long, ByRef lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Sub Button1_Click()
Dim Serial As Long
GetVolumeInformation "C:\", vbNullString, 0, Serial, 0&, 0&, vbNullString, 0
MsgBox "Serial=" & Hex$(Serial)
End Sub