|
9 |; ?& r. f [4 m1. مەزكۇر ھۆججەتنى ئاچىمىز .& Q/ E! G9 R k& N$ M6 H0 B4 wبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
) ئاندىن خالىغان بىر ئىسىمنى يازىمىز،工具---宏----录制新宏2.قورال - ماكرو -(
) L& `) r! D" J3 A$ ] يەنى ئىسىم قويىمىز ،مەسىلەن : مەن4 e' P. _/ \5 Z0 n2 E2 D. e+ Yبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
3.录制新宏 بولغانلىقى ئۈچۈن 停止录制 نى بېسىپ بىر قۇرۇق «ماكرو» قۇرىۋالىمىز .
. n( r- Q3 c: L) E0 [- D. b" Y# e4.قورال -«ماكرو» غا كىرىپ بايىقى «مەن »ئىسىملىك «ماكرو»نى تەھرىرلەيمىز ،چىققان كۆزنەكتىكى بارلىق ھەرپلەرنى ئۆچۈرۈپ ،تۆۋەندىكى كودلارنى چاپلايمىز ۋە ئىتىمىز ،خىزمەت دەپتىرىگە قايتىپ كىرىپ ،«ماكرو»نى ئىجرا قىلساق AllInternalPasswords كۆرىنىدۇ ،ئۇنىمۇ ئىجرا قىلىپ ،«جەزىملەشتۈرۈش» كونۇپكىسىنى ئىككى قېتىم باسىمىز ،بىرئاز ئۆتۈپ يەنە جەزىملەشتۈرسەك پۈتىدۇ ،سىناپ كۆرۈڭ .
1 G" F% [# u2 q. s# zPublic Sub AllInternalPasswords()
3 Q, v% K v7 h' D$ @- ?' Breaks worksheet and workbook structure passwords. Bob McCormick
& M7 l' g9 R4 T( X3 ^' probably originator of base code algorithm modified for coverage u' i6 H6 F, s1 p2 @4 Qبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
' of workbook structure / windows passwords and for multiple passwords
8 Z l$ d- G* }8 @: o' , e* z7 S3 ^& bبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
% O4 y$ L* e7 b! K' Modified 2003-Apr-04 by JEM: All msgs to constants, and
* i5 J: \% G% J. \' eliminate one Exit Sub (Version 1.1.1)
$ x, W5 W# m8 g6 I, n' Reveals hashed passwords NOT original passwords , N! r2 ?! N8 U g$ O6 Uبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const DBLSPACE As String = vbNewLine & vbNewLine 2 S/ {/ ?. z7 v+ Sبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const AUTHORS As String = DBLSPACE & vbNewLine & _
$ ?4 y% U4 i S3 s"Adapted from Bob McCormick base code by" & _
, F2 c4 f+ [- g4 w1 T) p3 j: s: @& \"Norman Harker and JE McGimpsey"
, s$ j0 g7 m2 ]Const HEADER As String = "AllInternalPasswords User Message" " S$ N4 y* |1 @7 U' zبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" ' y( p( e7 R, s- G% B6 |بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const REPBACK As String = DBLSPACE & "Please report failure " & _ Y" d! f4 x7 aبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"to the microsoft.public.excel.programming newsgroup."
4 C k4 x7 E( x. a x+ m6 g& X3 CConst ALLCLEAR As String = DBLSPACE & "The workbook should " & _
- P! j! K$ _9 H" p" f7 ^"now be free of all password protection, so make sure you:" & _ * c6 @6 o$ h/ N: Y, }1 A A }بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ , l. ^5 a: K+ { r# o3 p' c3 ]بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _
$ K6 ^1 H5 Y, [0 n% w. f9 uDBLSPACE & "Also, remember that the password was " & _
, l( J$ {0 Q/ w) H# l& N% {2 h( L/ r"put there for a reason. Don't stuff up crucial formulas " & _
~! k' O' p. c4 T! u0 D6 ["or data." & DBLSPACE & "Access and use of some data " & _
4 [ c, t/ K5 @% ]; z$ |, @"may be an offense. If in doubt, don't." / W+ w& Z$ w2 k# a" nبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const MSGNOPWORDS1 As String = "There were no passwords on " & _
" m8 f: n' l" N7 N8 y"sheets, or workbook structure or windows." & AUTHORS & VERSION $ ]! O) T! B( L4 @بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const MSGNOPWORDS2 As String = "There was no protection to " & _ ' B$ y; `' ]6 tبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"workbook structure or windows." & DBLSPACE & _ 3 Z" |( T' _9 g/ Q% Pبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"Proceeding to unprotect sheets." & AUTHORS & VERSION
" e& a. X/ L- j* m; _% z2 VConst MSGTAKETIME As String = "After pressing OK button this " & _ K6 [& f. v* t0 M% jبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"will take some time." & DBLSPACE & "Amount of time " & _ ; Z+ I# ]9 q7 ]# D2 I# ^بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"depends on how many different passwords, the " & _ # o7 {+ @' C# i! lبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"passwords, and your computer's specification." & DBLSPACE & _ f! h! B7 n8 e- pبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"Just be patient! Make me a coffee!" & AUTHORS & VERSION : u; z" Z& d4 Q) t7 R" C+ f8 X0 Aبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _ % C) G0 W7 i7 \' }( M9 Q/ `بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"Structure or Windows Password set." & DBLSPACE & _ 1 V9 C, D8 \$ M8 z+ Mبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"The password found was: " & DBLSPACE & "$$" & DBLSPACE & _
: f1 e n- X. ]: ^4 m! u"Note it down for potential future use in other workbooks by " & _ * N8 p t, y, S7 _$ a. ?5 ?: V( b9 S: n Iبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"the same person who set this password." & DBLSPACE & _
+ E, t( y/ @2 k"Now to check and clear other passwords." & AUTHORS & VERSION - { k3 Z6 k( f/ m1 B iبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _ ( W5 X& e4 C8 ^5 Y9 Y- b( t1 k8 ?. Gبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"password set." & DBLSPACE & "The password found was: " & _ . c. G, F* D: Aبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _
5 _+ O2 ^; y, ~/ g5 w7 ~. ]"future use in other workbooks by same person who " & _ , g' s* Y; b: N( q" q3 hبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"set this password." & DBLSPACE & "Now to check and clear " & _ ( h# U3 w3 I, {0 W" @بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"other passwords." & AUTHORS & VERSION
( R' a- @. n, B& QConst MSGONLYONE As String = "Only structure / windows " & _ ) t. Q& h6 Q4 M6 mبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"protected with the password that was just found." & _
: J8 P( {1 G7 P" nALLCLEAR & AUTHORS & VERSION & REPBACK % n! ]" r; [+ K8 M& Rبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Dim w1 As Worksheet, w2 As Worksheet 1 o$ ^2 R0 M" Fبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Dim i As Integer, j As Integer, k As Integer, l As Integer
2 S) S6 F# b" o% [$ _! @, }Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer 0 Y' G) x! @8 x; i2 B- ]' M% `# u' Fبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer * g0 \3 N j. l& {! Z! Sبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Dim PWord1 As String
# L0 L( y1 j# \+ [! y0 ^$ {Dim ShTag As Boolean, WinTag As Boolean
3 N/ v9 h2 i9 Z; W8 R$ q* O9 B) M1 }" F
" }' f% `2 a+ F+ Y- r! r! @Application.ScreenUpdating = False
6 l% a' Y1 d" S- k8 F0 j7 u) tWith ActiveWorkbook " Z+ Y* T7 K: L! z% Eبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
WinTag = .ProtectStructure Or .ProtectWindows
, I# \( X" G2 S V2 e8 U& AEnd With
0 i! D' M* F2 v. {4 B! q2 b5 j# GShTag = False ) c, X7 b- a" i& e& Bبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
For Each w1 In Worksheets X' l0 T* Z$ kبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
ShTag = ShTag Or w1.ProtectContents " t! L* l9 I f1 P" q8 Uبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Next w1
" \- J) ^3 \ { m7 t" `If Not ShTag And Not WinTag Then o5 c) Y; _' J# y) c8 Cبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
MsgBox MSGNOPWORDS1, vbInformation, HEADER
2 I( R/ N$ H- ?9 P+ `& ?0 bExit Sub ; {# V0 u* ]) T6 T, t; T6 ~7 C: N" gبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
End If
7 }0 {; B4 t8 I4 v) E# m! WMsgBox MSGTAKETIME, vbInformation, HEADER ( x+ }% A. ^: A, R4 ]- Q+ `بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
If Not WinTag Then
+ i, C2 ]9 v i$ ^, W5 Q0 t! FMsgBox MSGNOPWORDS2, vbInformation, HEADER # }* A& u$ a- Z& c a; C/ Wبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Else # H* l f" f" G3 E1 e* yبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
On Error Resume Next % g, r; P! L: L% Zبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Do 'dummy do loop
& `# w* ]7 ^/ |9 ?# V5 bFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66 / D' p; p4 X5 a( Y" G; cبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 $ }$ U' E& _6 V/ e! o) `بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 4 n B( k& l0 S7 Z/ }9 [بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 ( \ @8 M0 ~0 `, v8 a: ]6 R- Mبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
With ActiveWorkbook ; N8 M( P2 H; Z1 K8 ]. h# Fبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
.Unprotect Chr(i) & Chr(j) & Chr(k) & _
- E: D' J; B3 q7 L, `4 ~Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ 8 o5 ^) [, _; C$ m9 N/ V3 l: e4 R* iبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
; e- h% U1 ^. s: q% K- OIf .ProtectStructure = False And _
- b8 i2 E+ u! _' m r8 F: ]4 [.ProtectWindows = False Then
9 X$ Q; m7 h) H2 n5 |( xPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _ 2 u% f8 r* N. D% bبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
* i6 l1 l5 S# O0 }) |6 EChr(i4) & Chr(i5) & Chr(i6) & Chr(n) 2 f# s' c& T# ^" ]بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
MsgBox Application.Substitute(MSGPWORDFOUND1, _ a# I5 p& G6 }. Q6 ?2 fبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
"$$", PWord1), vbInformation, HEADER / i7 i9 |& e9 cبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Exit Do 'Bypass all for...nexts
0 |& Z0 j; U' N8 `End If
# ?3 [' k( W0 ~+ z, ]( u: {End With ; I& e" e. ?: {- K+ o' Uبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Next: Next: Next: Next: Next: Next
. Q3 F+ f9 I- l* t3 {2 W. ~0 v/ ]! T# nNext: Next: Next: Next: Next: Next
, f \* g. U- V1 s: j$ Q% gLoop Until True
5 H# ?9 V( ?0 c% N3 ?On Error GoTo 0 & A0 w+ Q# `1 T# H4 q9 F4 Mبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
End If ) {1 g- d" i# eبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
If WinTag And Not ShTag Then
4 w, ?5 T, z5 W! \& N- fMsgBox MSGONLYONE, vbInformation, HEADER * n3 w9 b7 j: C% q- N/ h% r3 d# Mبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Exit Sub
7 b$ i- D8 K9 b# A" x% v3 tEnd If
7 M$ `( y4 D9 m7 x8 z% _- W. UOn Error Resume Next 6 Z/ s( ^6 q7 Iبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
For Each w1 In Worksheets
% i# a$ A( R$ \; Y! Y$ a7 f'Attempt clearance with PWord1 . S* L: g) a7 e# }6 uبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
w1.Unprotect PWord1
2 V" y' U. j$ m. Q+ J+ n; Y! {Next w1 2 d/ g$ v" ^ [بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
On Error GoTo 0
3 [! y7 ^2 }& W0 cShTag = False
) @0 U$ M9 T3 g1 p4 m" A& ~" E9 x, GFor Each w1 In Worksheets
+ r+ K! z7 y$ Q' ?) j0 O'Checks for all clear ShTag triggered to 1 if not. 3 j% U; n, P' h9 i3 G! ?; cبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
ShTag = ShTag Or w1.ProtectContents
, a0 I, s; U9 o) W$ {Next w1 / b$ m1 U# E. Jبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
If ShTag Then 5 u; S* b" U: p) f! Iبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
For Each w1 In Worksheets
9 f j2 _6 s; D& G" o$ x5 OWith w1
& D+ R% o0 d% l0 {6 } NIf .ProtectContents Then $ H, W% c0 l: d/ ~3 ?بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
On Error Resume Next ; k6 u# X" }3 C1 {* cبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Do 'Dummy do loop
9 y2 T2 T; y, [8 z4 i; w* ZFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66 - v' I6 [. }9 \/ |: T$ m" Pبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
1 |$ {6 O) L- K0 ^( |+ d% F- BFor i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
& q! h+ B% a O: `For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
6 }9 A$ J$ R. L0 ?, ]$ l0 U1 o! c8 o.Unprotect Chr(i) & Chr(j) & Chr(k) & _ . p* P8 F+ |2 W0 Sبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
) f! Q) y+ C; t" v0 x1 ?( NChr(i4) & Chr(i5) & Chr(i6) & Chr(n)
+ O% A% \" _( M! XIf Not .ProtectContents Then . K- b$ a3 `+ l( h: }7 rبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _ 8 p) E9 Y2 M- r% P9 kبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ 2 i2 E! x, Y, m; aبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) 3 v! z. e% a8 f4 _; G$ m1 yبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
MsgBox Application.Substitute(MSGPWORDFOUND2, _
9 |8 R: J8 b2 ^) l- z) Q"$$", PWord1), vbInformation, HEADER ! N) ]1 X/ t L! Kبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
'leverage finding Pword by trying on other sheets
( J7 |* G4 Y }% E% lFor Each w2 In Worksheets ' S* U& j5 D( K4 X/ T- A2 lبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
w2.Unprotect PWord1 3 G9 j/ z/ c3 W6 {بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Next w2 : L# C5 R7 J9 g; @# {بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Exit Do 'Bypass all for...nexts 8 p4 n) O8 o- r8 _$ ?3 M1 gبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
End If ; [. q5 T) i. Q2 f/ L- r3 b- Cبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Next: Next: Next: Next: Next: Next + P9 c+ E" A( ?# T$ d; U& [بۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
Next: Next: Next: Next: Next: Next
6 {7 I$ Y3 O P7 \& v( b" a6 iLoop Until True
/ q3 t2 _7 S/ [) E4 }2 EOn Error GoTo 0
- N, S' x+ x! Q! S) V! `End If
7 R0 A3 E& a8 v6 N7 hEnd With
7 S$ S- U9 ]0 F3 B% ?6 z* ?Next w1 ) b# g6 I- f4 J: Aبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
End If
9 y ~. X, O4 gMsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER + w' c$ T' c4 ]" f* Cبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
End Sub; u9 D* c& v+ ]: Vبۇ مەزمۇنلار روھلان مۇنبىرىدىن كۆچۈرۈلگەن()
4 \4 |7 @1 ^$ m {( h3 r |
|