View Full Version : Solved: Not understanding Custom Icon Macro
Jomili
07-21-2011, 01:57 PM
I have a question about the macro located here:
http://www.vbaexpress.com/kb/getarticle.php?kb_id=584
My icon files live at this location:
C:\Personal\icons
How do I change the macro so it grabs the icon I want from that path instead of the path where the workbook originates?
Aflatoon
07-21-2011, 02:02 PM
Change the IconLocation in this bit:
' Link it to this file
With oShortcut
.TargetPath = szBookFullName
.IconLocation = szPath & szIconName
.Save
End With
Jomili
07-21-2011, 02:09 PM
Okay, got it working now. Thanks for the help. Here's the way the final macro worked out in case anybody else wants to see it:
Option Explicit
Sub CreateDesktopShortcut()
' =================================================================
' Create a custom icon shortcut on the users desktop
' =================================================================
' Msgbox string variables
Dim szMsg As String
Dim szStyle As String
Dim szTitle As String
' Change here for the icon's name
Const szIconName As String = "\1251139182_Positive.ico"
' Constant string values, you can replace "Desktop"
' with any Special Folders name to create the shortcut there
Const szlocation As String = "Desktop"
Const szLinkExt As String = ".lnk"
' Object variables
Dim oWsh As Object
Dim oShortcut As Object
' String variables
Dim szSep As String
Dim szBookName As String
Dim szBookFullName As String
Dim szPath As String
Dim szDesktopPath As String
Dim szShortcut As String
' Initialize variables
szSep = Application.PathSeparator
szBookName = szSep & ThisWorkbook.Name
szBookFullName = ThisWorkbook.FullName
szPath = ThisWorkbook.Path
On Error GoTo ErrHandle
' The WScript.Shell object provides functions to read system
' information and environment variables, work with the registry
' and manage shortcuts
Set oWsh = CreateObject("WScript.Shell")
szDesktopPath = oWsh.SpecialFolders(szlocation)
' Get the path where the shortcut will be located
szShortcut = szDesktopPath & szBookName & szLinkExt
' Make it happen
Set oShortcut = oWsh.CreateShortCut(szShortcut)
' Link it to this file
With oShortcut
.TargetPath = szBookFullName
.IconLocation = "C:\Personal\icons" & szIconName 'szPath & szIconName
.Save
End With
' Explicitly clear memory
Set oWsh = Nothing
Set oShortcut = Nothing
' Let the user know it was created ok
szMsg = "Shortcut was created successfully"
szStyle = 0
szTitle = "Success!"
MsgBox szMsg, szStyle, szTitle
Exit Sub
' or if it wasn't
ErrHandle:
szMsg = "Shortcut could not be created"
szStyle = 48
szTitle = "Error!"
MsgBox szMsg, szStyle, szTitle
End Sub
Bob Phillips
07-21-2011, 02:12 PM
You should have changed this
szPath = ThisWorkbook.Path
to
szPath = "C:\Personal\icons"
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.