wie kann ich per VBA im Explorer unter Extras / Ordneroptionen / Ansicht / den Punkt "Hide file extension for known file types"
aktivieren?
siehe Beispiel:
">

Gruß
Joe
Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
Declare
Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare
Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare
Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Declare
Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Public Const REG_DWORD = 4
Function SaveDword(ByVal Hkey As Long, ByVal strPath As String, ByVal strValueName As String, ByVal lData As Long)
Dim lResult As Long
Dim keyhand As Long
Dim r As Long
r = RegCreateKey(Hkey, strPath, keyhand)
lResult = RegSetValueEx(keyhand, strValueName, 0&, REG_DWORD, lData, 4)
r = RegCloseKey(keyhand)
End Function
Function GetDword(ByVal Hkey As Long, ByVal strPath As String, ByVal strValueName As String) As Long
Dim lResult As Long
Dim lValueType As Long
Dim lBuf As Long
Dim lDataBufSize As Long
Dim r As Long
Dim keyhand As Long
r = RegOpenKey(Hkey, strPath, keyhand)
lDataBufSize = 4
lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
If lValueType = REG_DWORD Then
GetDword = lBuf
End If
Else
MsgBox "Registry- Eintrag nicht gefunden! " & Chr(10) & _
"Überprüfen Sie die Schreibweise.", 64, "weise hin..."
End If
r = RegCloseKey(keyhand)
End Function
Sub MSG_GetDWord()
Dim lngDword As String
'DWord lesen
lngDword = GetDword(HKEY_CURRENT_USER, "Software\Microsoft\Windows\currentversion\Explorer\Advanced", "HideFileExt")
If lngDword = 0 Then
MsgBox "Bekannte Dateierweiterungen werden angezeigt. ", 64, "gebe bekannt..."
ElseIf lngDword = 1 Then
MsgBox "Bekannte Dateierweiterungen sind ausgeblendet. ", 64, "gebe bekannt..."
End If
End Sub
Sub MSG_SaveDword()
Dim lngDword As Long
''DWord schreiben
''0 zum Anzeigen 1 zum Ausblenden
lngDword = 0
Call SaveDword(HKEY_CURRENT_USER, "Software\Microsoft\Windows\currentversion\Explorer\Advanced", "HideFileExt", lngDword)
End Sub
Um die Explorer-Ordneroptionen per VBA zu ändern und die Ansicht für bekannte Dateitypen zu steuern, folge diesen Schritten:
Entwicklertools
> Visual Basic
.VBAProject (DeineDatei.xlsx)
und wähle Einfügen
> Modul
.Option Explicit
Public Const HKEY_CURRENT_USER = &H80000001
Public Const ERROR_SUCCESS = 0&
Public Const REG_DWORD = 4
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Function SaveDword(ByVal Hkey As Long, ByVal strPath As String, ByVal strValueName As String, ByVal lData As Long)
Dim lResult As Long
Dim keyhand As Long
Dim r As Long
r = RegCreateKey(Hkey, strPath, keyhand)
lResult = RegSetValueEx(keyhand, strValueName, 0&, REG_DWORD, lData, 4)
r = RegCloseKey(keyhand)
End Function
Function GetDword(ByVal Hkey As Long, ByVal strPath As String, ByVal strValueName As String) As Long
Dim lResult As Long
Dim lValueType As Long
Dim lBuf As Long
Dim lDataBufSize As Long
Dim r As Long
Dim keyhand As Long
r = RegOpenKey(Hkey, strPath, keyhand)
lDataBufSize = 4
lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
If lValueType = REG_DWORD Then
GetDword = lBuf
End If
Else
MsgBox "Registry-Eintrag nicht gefunden! Überprüfen Sie die Schreibweise.", 64, "Hinweis"
End If
r = RegCloseKey(keyhand)
End Function
Sub MSG_GetDWord()
Dim lngDword As String
lngDword = GetDword(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "HideFileExt")
If lngDword = 0 Then
MsgBox "Bekannte Dateierweiterungen werden angezeigt.", 64, "Information"
ElseIf lngDword = 1 Then
MsgBox "Bekannte Dateierweiterungen sind ausgeblendet.", 64, "Information"
End If
End Sub
Sub MSG_SaveDword()
Dim lngDword As Long
lngDword = 1 ' 0 zum Anzeigen, 1 zum Ausblenden
Call SaveDword(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "HideFileExt", lngDword)
End Sub
MSG_SaveDword
aus, um die Ordneroptionen zu ändern.MSG_GetDWord
, um den aktuellen Status zu überprüfen.Fehler: "Registry-Eintrag nicht gefunden!"
VBA läuft nicht auf neueren Windows-Versionen
Wenn Du nicht mit VBA arbeiten möchtest, kannst Du die Ordneroptionen auch manuell ändern:
Extras
> Ordneroptionen
.Ansicht
und aktiviere oder deaktiviere die Option "Dateinamenerweiterungen für bekannte Dateitypen ausblenden".Beispiel 1: Dateinamenerweiterungen ausblenden
MSG_SaveDword
Subroutine, um Dateinamenerweiterungen auszublenden.Beispiel 2: Status der Dateinamenerweiterungen abfragen
MSG_GetDWord
Subroutine kannst Du schnell herausfinden, ob die Erweiterungen angezeigt werden oder nicht.Sicherung der Registry
regedit
machen.Verwendung von Konstanten
HKEY_CURRENT_USER
und REG_DWORD
, um den Code klarer und lesbarer zu gestalten.1. Kann ich den Code in einer anderen Excel-Version verwenden? Ja, der VBA-Code sollte in den meisten Excel-Versionen funktionieren, solange die Windows-Registry gleich bleibt.
2. Was passiert, wenn ich die Registry falsch bearbeite? Falsche Änderungen an der Registry können zu Systeminstabilitäten führen. Stelle sicher, dass Du eine Sicherungskopie machst, bevor Du Änderungen vornimmst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen