A little sub-routine to create MSIE Favorites for MS-Office users. It uses Windows Scripting Host (WSH) which has a shell object that has functions to find a computer's Favorites folder (SpecialFolders()) and create a URL shortcut (CreateShortcut()).
Option Explicit 'Add references: '1. Microsoft Scripting Runtime (Scripting namespace) '2. Windows Script Host Object Model (IWshRuntimeLibrary namespace) Public Sub CreateFavorite(ByVal strName As String, ByVal strUrl As String) Dim fso As Scripting.FileSystemObject Set fso = CreateObject("Scripting.FileSystemObject") Dim wshShell As IWshRuntimeLibrary.wshShell Set wshShell = CreateObject("Wscript.Shell") Dim strFavorites As String strFavorites = wshShell.SpecialFolders("Favorites") Dim shortcut As IWshRuntimeLibrary.WshURLShortcut Set shortcut = wshShell.CreateShortcut(fso.BuildPath(strFavorites, strName & ".url")) shortcut.TargetPath = strUrl shortcut.Save Set shortcut = Nothing Set wshShell = Nothing Set fso = Nothing End Sub
Note to myself: don't confuse:
- IWshRuntimeLibrary.WshShell with Shell32.Shell in Microsoft Shell Controls and Automation
- WshShell.SpecialFolders() with FileSystemObject.GetSpecialFolders() function. The latter function only returns a small number of special folders (windows, system and temporary).