Créer un raccourci Internet par macro ?


Par VBA, il est possible de créer un raccourci vers une page Web.
On peut par exemple placer le raccourci sur le bureau ou sur la barre Office.
Pour ce faire, il faut écrire le fichier raccourci (fichier texte) puis l'enregistrer avec l'extension .url sur le bureau ou sur la barre Office.

Le fichier se présente sous la forme d'un fichier texte du genre :
        [InternetShortcut]
        URL=http://boursorama.fr

...simplement enregistré sous le nom boursorama.url.

Pour créer le fichier texte par VBA sur le bureau (supposé se trouver à c:\windows\all users\bureau\),
         Open "c:\windows\all users\bureau\boursorama.url" For Output As #1


et pour y inscrire les lignes de commandes du raccourci :
         Print #1, "[InternetShortcut]"
         Print #1, Chr$(10) & "URL=http://boursorama.fr"

et ne pas oublier de refermer le fichier texte par   Close #1

La macro complète, pour créer un lien vers Boursorama sur le bureau, se présente donc comme suit : Sub raccourcis_bureau()
Open "c:\windows\all users\bureau\boursorama.url" For Output As #1
Print #1, "[InternetShortcut]"
Print #1, Chr$(10) & "URL=http://boursorama.fr"
Close #1
End Sub
On peut aussi personnaliser le raccourci en choisissant une icône plus originale : Sub raccourcis_bureau()
chemin = "c:\windows\all users\bureau\"
Open chemin & "boursorama.url" For Output As #1
Print #1, "[InternetShortcut]"
Print #1, Chr$(10) & "URL=http://boursorama.fr"
Print #1, Chr$(10) & "IconIndex = 14"
Print #1, Chr$(10) & "IconFile=C:\WINDOWS\Moricons.dll"
Close #1
End Sub
Enfin, il suffit de remplacer le chemin d'accès au bureau par celui de la barre Office pour créer un raccourci sur la barre Office Sub raccourcis_Office()
chemin = "C:\Program Files\Microsoft Office\Office\gestionnaire office\office\"
Open chemin & "boursorama.url" For Output As #1
Print #1, "[InternetShortcut]"
Print #1, Chr$(10) & "URL=http://boursorama.fr"
Print #1, Chr$(10) & "IconIndex = 5"
Print #1, Chr$(10) & "IconFile=C:\WINDOWS\Moricons.dll"
Close #1
End Sub

Remarque :
Les macros présentées ci-dessus supposent connues les adresses du bureau et de la barre Office.
Si on souhaite pouvoir utiliser les macros sur différents micros (configurations éventuellement différentes), il peut être intéressant de rechercher leur adresse par VBA. L'utilisation de Filesearch est commode mais hélas fort longue : Sub raccourcis_office()
Application.FileSearch.LookIn = "c:\"
Application.FileSearch.FileName = "msoffice.exe"
Application.FileSearch.SearchSubFolders = True
Application.FileSearch.Execute
chemin = WorksheetFunction.Substitute(Application.FileSearch.FoundFiles(1), "msoffice.exe", "gestionnaire office\office\")
Open chemin & "boursorama.url" For Output As #1
Print #1, "[InternetShortcut]"
Print #1, Chr$(10) & "URL=http://boursorama.fr"
Close #1
End Sub


Pour faire des raccourcis "simples" vers un fichier ou un répertoire (plutôt que des raccourcis Internet vers une page html), cliquez ici.