Для этого:
- Создание обработчика событий для события SelectionChanged на рабочем листе.
- Создать функцию анализа для значения ячейки.
- Создать подпрограмму, которая запускает Acrobat с параметром номера страницы.
См. Следующий пример кода. Константы должны быть изменены в соответствии с вашей системой. Этот код необходимо вставить в редактор макросов VBA рабочего листа.
Private Const MyPathColumn As Integer = 3
Private Const PathToAcrobatExe As String = _
"C:\Program Files\Adobe\Reader 8.0\Reader\Acrord32.exe"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo errHnd
If Target.Cells.Count = 1 Then
If Target.Column = MyPathColumn Then
If Len(Target.text) > 0 Then
Dim filePath As String
Dim pageNumber As Integer
Call ParsePath(Target.text, filePath, pageNumber)
Call RunPdf(filePath, pageNumber)
End If
End If
End If
Exit Sub
errHnd:
Call MsgBox("Error Opening File", vbCritical)
End Sub
Private Function getShellCommand(filePath As String, _
pageNumber As Integer) As String
getShellCommand = PathToAcrobatExe & " /A ""page=" _
& CStr(pageNumber) & """ """ _
& filePath & """"
End Function
Private Sub RunPdf(filePath As String, pageNumber As Integer)
Call Shell(getShellCommand(filePath, pageNumber), _
vbMaximizedFocus)
End Sub
Private Sub ParsePath(text As String, ByRef filePath As String, _
ByRef pageNumber As Integer)
Dim parts() As String
parts = Split(text, ";")
filePath = parts(0)
pageNumber = CInt(parts(1))
End Sub