Ιδιωτικές χορδές προφίλ που χρησιμοποιούν αρχεία INI χρησιμοποιώντας VBA στο Microsoft Excel

Anonim

Οι Ιδιωτικές χορδές προφίλ χρησιμοποιούνται συχνά για την αποθήκευση συγκεκριμένων πληροφοριών χρηστών εκτός της εφαρμογής/εγγράφου για μεταγενέστερη χρήση.
Θα μπορούσατε για παράδειγμα να αποθηκεύσετε πληροφορίες σχετικά με το πιο πρόσφατο περιεχόμενο σε ένα παράθυρο διαλόγου/UserForm,
πόσες φορές έχει ανοίξει ένα βιβλίο εργασίας ή ο τελευταίος αριθμός τιμολογίου που χρησιμοποιήθηκε για ένα πρότυπο τιμολογίου.
Οι πληροφορίες μπορούν να αποθηκευτούν σε ένα αρχείο INI, είτε στον τοπικό σκληρό δίσκο είτε σε κοινόχρηστο φάκελο δικτύου.
Ένα αρχείο INI είναι ένα συνηθισμένο αρχείο κειμένου και το περιεχόμενο θα μπορούσε να μοιάζει κάπως έτσι:

[ΠΡΟΣΩΠΙΚΟΣ]
Επώνυμο = Doe
Όνομα = Γιάννης
Ημερομηνία γέννησης = 1.1.1960
Μοναδικός αριθμός = 123456
Οι ιδιωτικές συμβολοσειρές προφίλ για κάθε χρήστη μπορούν επίσης να αποθηκευτούν στο Μητρώο.

Το Excel δεν διαθέτει ενσωματωμένη λειτουργικότητα για ανάγνωση και εγγραφή σε αρχεία INI όπως το Word (System.PrivateProfileString),
έτσι χρειάζεστε μερικές λειτουργίες API για να το κάνετε αυτό με έναν εύκολο τρόπο.
Ακολουθούν τα παραδείγματα μακροεντολών για εγγραφή και ανάγνωση από ένα αρχείο INI που περιέχει Ιδιωτικές χορδές προφίλ.

Const IniFileName As String = "C: \ FolderName \ UserInfo.ini"
"η διαδρομή και το όνομα αρχείου στο αρχείο που περιέχει τις πληροφορίες που θέλετε να διαβάσετε/γράψετε

Ιδιωτική Λειτουργία Δήλωσης GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strDefault As String, _ ByVal strReturnedString As String, _ ByVal lngSize As Long, ByVal strFileNameProfileNameNameName _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strString As String, _ ByVal strFileNameName As String) As Long Private Function WritPrivateProfileString32 (ByVal strFileName As String, _ ByVal strSile, As String, String, String ByVal strValue As String) As Boolean Dim lngValid As Long On Error Resume Next lngValid = WritePrivateProfileStringA (strSection, strKey, _ strValue, strFileName) If lngValid> 0 Στη συνέχεια, WritePrivateProfileString32 = True On Error , _ ByVal strSection As String, ByVal strKey As String, _ Optional strDefault) As String Dim strReturnStri ng As String, lngSize As Long, lngValid As Long On Error Resume Next If IsMissing (strDefault) Στη συνέχεια strDefault = "" strReturnString = Space (1024) lngSize = Len (strReturnString) lngValid = GetPrivateProfileStringA (strSection, strKey, _String, strKey, lngSize, strFileName) GetPrivateProfileString32 = Αριστερά (strReturnString, lngValid) Στο Error GoTo 0 End Function », τα παρακάτω παραδείγματα υποθέτουν ότι το εύρος B3: B5 στο ενεργό φύλλο περιέχει« πληροφορίες σχετικά με το Επώνυμο, το Όνομα και τη Γέννηση του Υπογράψτε το UserUserInfo () αποθηκεύει πληροφορίες το αρχείο IniFileName If Not WritePrivateProfileString32 (IniFileName, "PERSONAL", _ "Lastname", Range ("B3"). Value) Στη συνέχεια MsgBox "Δεν είναι δυνατή η αποθήκευση πληροφοριών χρήστη στο" & IniFileName, _ vbExclamation, "Folder δεν υπάρχει! " Έξοδος από το τερματισμό εάν WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Lastname", Range ("B3"). Value WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Firstname", Range ("B4"). , _ "Birthhdate", Range ("B5"). Value End Sub Sub ReadUserInfo () 'διαβάζει πληροφορίες από το αρχείο IniFileName If Dir (IniFileName) = "" Τότε Έξοδος από το Εύρος Sub ("B3"). Formula = GetPrivateProfileString32 (IniFileName , _ "PERSONAL", "Lastname") Range ("B4"). Formula = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "Firstname") Range ("B5"). Formula = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "Birthhdate") End Sub 'το παρακάτω παράδειγμα υποθέτει ότι το εύρος D4 στο ενεργό φύλλο περιέχει' πληροφορίες σχετικά με τον μοναδικό αριθμό Sub GetNewUniqueNumber () Dim UniqueNumber As Long If Dir (IniFileName) = "" Τότε Έξοδος από το UniqueNumber = 0 On Error Συνέχιση επόμενου UniqueNumber = CLng (GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "UniqueNumber")) Σε Error GoTo 0 Range ("D4"). Formula = UniqueNumber + 1 If Not WritePrivateProfileString32 (IniFileName, "PERSONAL", _ "UniqueNumber", Range ("D4"). Value) Στη συνέχεια MsgBox "Δεν είναι δυνατή η αποθήκευση των πληροφοριών χρήστη στο" & IniFileName , _ vbExclamation, "Ο φάκελος δεν υπάρχει!" Exit Sub End If End Sub