Desde que você esteja com o botão direito de Shift pressionado, por que não apenas Abrir como somente leitura?
edit:comomencionadoabaixo,nãofunciona(?!?).
Voltarparaminhasugestãooriginal.AutohotkeypodegravarvocêfazendoissocomomóduloScriptWriter,quevocêpodeajustar.Vocêprovavelmenteterminarácomalgocomo:
IfWinActive,ahk_classXLMAIN^B::;hotkeyisCTRL+BbutcanbechangedtoanythingExcelFileName:="C:\path\to\file.xlsx" ; this needs to be replaced with a variable
Send, {LWINDOWN}r{LWINUP} ;opens Run
WinWaitActive, Run,
Send, excel{SPACE}/r{SPACE}ExcelFileName{Enter}
Se você me disser mais sobre como seus arquivos são armazenados (quaisquer convenções de nomenclatura? etc), posso ajudá-lo a encontrar o caminho para a tecla de atalho. Sem isso tudo o que eu posso fazer é um desagradável VBA - > AHK kludge de dentro do arquivo do Excel que você quer, como
Sub GetPath()
Dim CompletePath As String
CompletePath = ActiveWorkbook.FullName
MsgBox CompletePath
End Sub
que você poderia então despejar no script AHK como ExcelFileName
.
edit 2:
Eu acho que com o arquivo do Excel desejado destacado Send {Ctrl Down}c{Ctrl Up}
irá copiar o arquivo caminho para a Área de Transferência, que você poderia então passar como ExcelFileName := %clipboard%
.
Tente isso. Destaque seu arquivo e pressione CTRL + B.
^B:: ; hotkey is CTRL + B but can be changed to anything
Send {Ctrl Down}c{Ctrl Up} ; copies path to Clipboard (unverified)
ExcelFileName := %clipboard% ; plaintext
Send, {LWINDOWN}r{LWINUP} ; opens Run
WinWaitActive, Run,
Send, excel{SPACE}/r{SPACE}ExcelFileName{Enter}