Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dateiverknüpfungen in VBA erstellen

Dateiverknüpfungen in VBA erstellen
01.03.2006 22:24:49
frigo
Hallo zusammen,
ich möchte mit einem Makro eine ganze Ordnerstruktur inkl. Unterordner durchlaufen und zu allen enthaltenen Dateien Verknüpfungen in einer anderen Ordnerstruktur erzeugen.
Ich finde allerdings nirgends den Befehl zum Kopieren einer Verknüpfung.
Also das Pendant zu FileCopy.
Kann mir vielleicht vielleicht jemand auf die Spünge helfen?
Bsp:
aus der folgenden Struktur
Ordner 1
- Datei Alpha
- Datei Beta
soll folgendes erzeugt werden:
Ordner 4711
- Verknüpfung zu Datei Alpha im Ordner 1
- Verknüpfung zu Datei Beta im Ordner 1
Vielen Dank,
Frigo

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiverknüpfungen in VBA erstellen
01.03.2006 22:55:15
Detlef
Hi,
dazu brauchst du z.B. WSH, mit VBA-Bordmitteln gehts nicht.
mfg Detlef
AW: Dateiverknüpfungen in VBA erstellen
01.03.2006 22:56:45
Ramses
Hallo
Das ist mal für einen Standardordner ohne Unterverzeichnisse zu berücksichtigen, da du keinen Hinweis darauf gibst, wie die Zielstruktur aussehen soll
Option Explicit

Sub Create_Shortcut_in_specific_Target_Folder()
    'by Ramses
    Dim myFSO As Object
    Dim myFSOShell As Object
    Dim mySourceFolder As String, myTargetFolder As String
    Dim myFSOFolder As Object, myFSOFiles As Object, tmpName As String
    Dim myShortCut As Object
    Dim mySourceFile As Object, myFileExt As String
    'Variablen füllen
    mySourceFolder = "C:\Ordner1"
    myTargetFolder = "C:\Ordner2"
    myFileExt = ".xls"
    '*************************
    'Ab hier nichts mehr ändern
    Set myFSO = CreateObject("Scripting.FileSystemObject")
    Set myFSOShell = CreateObject("WScript.Shell")
    'Verzeichnis und Unterverzeichnis anlegen
    ChDrive "C:"
    If Not myFSO.folderexists(myTargetFolder) Then
        On Error Resume Next
        MkDir myTargetFolder
    End If
    Set myFSOFolder = myFSO.getfolder(mySourceFolder)
    For Each mySourceFile In myFSOFolder.Files
        Debug.Print Right(mySourceFile, 4)
        If Right(mySourceFile, 4) = myFileExt Then
            tmpName = Left(mySourceFile, Len(mySourceFile) - 4)
            tmpName = Right(tmpName, Len(tmpName) - InStrRev(tmpName, "\", -1))
            Set myShortCut = myFSOShell.CreateShortcut(myTargetFolder & "\" & "LINK_" & tmpName & ".lnk")
            With myShortCut
                'Fenstertyp beim öffnen
                ' 4=Normal 3=Maximized 7=Minimized
                .windowstyle = 4
                .iconlocation = mySourceFile
                ' o der alternativ ein anderes Icon
                '.IconLocation = "C:\graph9.ico"
                .Targetpath = Left(mySourceFile, Len(mySourceFile) - 4) & myFileExt
                'Speichern
                .Save
            End With
        End If
    Next
End Sub

Gruss Rainer
Anzeige
AW: Dateiverknüpfungen in VBA erstellen
01.03.2006 23:02:37
frigo
Wow, super, vielen Dank!
Frigo
AW: Dateiverknüpfungen in VBA erstellen
02.03.2006 07:49:41
Andreas-we
Hallo Ramses,
habe gerade diesen Beitrag entdeckt.
Dein Makro ist auch fast ganz genau die Lösung für eine Anwendung von mir.
Nur benötige ich, dass nicht nur XLS-Dateien verlinkt werden, sondern alle Formate.
Kannst Du das bitte in dein Makro noch einbauen?
Gruß
Andreas
AW: Dateiverknüpfungen in VBA erstellen
02.03.2006 08:24:42
Ramses
Hallo
... aber bitte sehr:
Option Explicit

Sub Create_Shortcut_in_specific_Target_Folder()
    'by Ramses
    Dim myFSO As Object
    Dim myFSOShell As Object
    Dim mySourceFolder As String, myTargetFolder As String
    Dim myFSOFolder As Object, myFSOFiles As Object, tmpName As String
    Dim myShortCut As Object
    Dim mySourceFile As Object, myFileExt As String
    'Variablen füllen
    mySourceFolder = "C:\Ordner1"
    myTargetFolder = "C:\Ordner2"
    '*************************
    'Ab hier nichts mehr ändern
    Set myFSO = CreateObject("Scripting.FileSystemObject")
    Set myFSOShell = CreateObject("WScript.Shell")
    'Verzeichnis und Unterverzeichnis anlegen
    ChDrive "C:"
    If Not myFSO.folderexists(myTargetFolder) Then
        On Error Resume Next
        MkDir myTargetFolder
    End If
    Set myFSOFolder = myFSO.getfolder(mySourceFolder)
    For Each mySourceFile In myFSOFolder.Files
        tmpName = mySourceFile
        tmpName = Right(tmpName, Len(tmpName) - InStrRev(tmpName, "\", -1))
        Set myShortCut = myFSOShell.CreateShortcut(myTargetFolder & "\" & "LINK_" & tmpName & ".lnk")
        With myShortCut
            'Fenstertyp beim öffnen
            ' 4=Normal 3=Maximized 7=Minimized
            .windowstyle = 4
            .iconlocation = mySourceFile
            ' o der alternativ ein anderes Icon
            '.IconLocation = "C:\graph9.ico"
            .Targetpath = mySourceFile
            'Speichern
            .Save
        End With
    Next
End Sub

Gruss Rainer
Anzeige
AW: Dateiverknüpfungen in VBA erstellen
02.03.2006 08:31:50
Andreas-we
Opti!
Danke.
Andreas

46 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige