es mi 1ª(creo) consulta en este grupo y quizás debería ponerla en el de VBA,
pero como voy a hacer referencia a una solución encontrada aquí he pensado
que quizás sea lo adecuado
se trata de cambiar/asignar un icono a un acceso directo del escritorio
creado con una propuesta de SoftJaen (gracias) en este grupo (
http://tinyurl.com/32xegy , por cierto, también gracias al Guille, aunque no
he conseguido adaptar sus propuestas).
se trata de una vez (o antes) creado el acceso directo vía código a un libro
de excel desde el mismo, o desde otro libro (todavía no lo tengo claro)
poder asignarle un icono personalizado
bueno, si podéis echarme una mano os lo agradezco
un saludo y hasta pronto
Ivan
PD: aunque sea mi 1ª consulta, son muchas las ayudas que he conseguido ya en
este foro. Gracias a todos.
Hola Ivan,
no sé cómo modificar el icono con la función fCreateShellLink, pero sí mediante 'Windows Script Host', y verás que es sumamente sencillo.
Para que puedas explorar su jerarquía de objetos fácilmente te recomiendo que la añadas en Referencias, es "Windows Script Host Object Model" (wshom.ocx). La siguiente función (modifícala a tus necesidades/gustos) espera recibir la ruta del libro del que quieres establecer un acceso directo en el escritorio (o modificar el acceso directo si la ruta corresponde a uno existente), el nombre para el acceso directo, y la ruta del icono, opcionalmente el índice del recurso:
'********************
Public Sub AccesoDirecto(ByVal strRutaLibro As String, _
ByVal strNombreAcceso As String, _
ByVal strRutaIcono As String, _
Optional IndiceIcono As Variant)
Dim objWSH As New IWshRuntimeLibrary.WshShell
Dim objLink As IWshRuntimeLibrary.WshShortcut
Dim strRutaEscritorio As String
'Aseguramos la extensión del acceso directo
If LCase$(Right$(strNombreAcceso, 4)) <> ".lnk" Then _
strNombreAcceso = strNombreAcceso & ".lnk"
strNombreAcceso = "\" & strNombreAcceso
'Obtenemos la ruta del Escritorio
strRutaEscritorio = objWSH.SpecialFolders("Desktop")
'Obtenemos la referencia del acceso directo. Si el acceso no existe
' se crea una referencia a un nuevo acceso directo, y si existe,
' en el objeto WshShortcut obtendrás las propiedades del existente
Set objLink = objWSH.CreateShortcut(strRutaEscritorio & strNombreAcceso)
'Establecemos la ruta del fichero al que apuntará el acceso directo
objLink.TargetPath = strRutaLibro
'Si se especificó el índice del icono que se quiere, lo añadimos a la ruta
If IsMissing(IndiceIcono) = False Then strRutaIcono = strRutaIcono & "," & IndiceIcono
'Asignamos el icono que deberá mostrar el acceso directo
If Trim$(strRutaIcono) <> "" Then objLink.IconLocation = strRutaIcono
'y guardamos los cambios
objLink.Save
End Sub
'********************
Si en la ruta del icono especificas ficheros que contengas varios iconos, como Dlls o Exes, ten en cuenta que los recursos están basados en índice cero, por ejemplo "Excel.exe" tiene el icono de la aplicación en el índice 0, libro de trabajo en el 1, plantilla en el 4, complemento en 6, etc...
--
Saludos
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/microsoft.public.es.vb
( i ) Temperancia en el foro:
http://support.microsoft.com/default.aspx?scid=fh;ES-ES;newsreglas
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Por lo que veo, va mas o menos por la vía del link del Guille, pero en su
caso creo que me hice un 'taco' con los textbox (supongo que a ciertas horas
conviene pararse un poco). Lo dicho, funciona perfectamente.
un saludo y hasta pronto
Ivan
PD: en nuestra ultima 'charla' no te respondí para no resultar 'cansino',
pero en cuanto a esto -> "Tampoco ....", desde mi punto de vista no es del
todo cierto. Te puedo asegurar que yo tengo impreso algo que empieza a
parecerse a un 'manual' con todas tus ayudas y códigos. Y por aquí sigo,
dándole vueltas. Gracias de nuevo.
De nada Iván, y tranquilo que nunca cansa el hecho de saber si las ayudas han servido o no, pues marca la diferencia entre saber si "se invirtió" o "se perdió" el tiempo.
En cuanto al tema de los "manuales", tú mismo lo has dicho, no te dejes engañar por las 'apariencias'...
Nos vemos.