1

Тема: Переменные среды в гиперссылках

Всем привет.
Объясните, пожалуйста, понимает ли MS Office (и в частности Word) переменные среды при создании гиперссылок.
К примеру если мне нужно создать ссылку на
C:\Users\[пользователь]\AppData\Roaming\[папка],
но с использованием переменной среды (например, чтобы она корректно открывалась для любого пользователя), тогда адрес должен выглядеть так:
%APPDATA%\[папка]
Проводник Windows и даже интернет-браузер такую запись отлично понимают, а вот ни Word, ни Excel ни в какую... сколько ни пробовал, не получается. Возможно ли вообще создать такую гиперссылку? Если да, то какой должен быть синтаксис?

2

Re: Переменные среды в гиперссылках

Добрый день!
Мне кажется, не все переменные среды Windows можно использовать в макросах (например, я не нашел возможности использовать переменную TIME), но большинство - можно.
Используется функция Environ или Environ$:

Sub Test()
    MsgBox Environ$("APPDATA")
End Sub

О применении переменных среды (окружения) в Word можно, в частности, прочитать здесь: http://wordexpert.ru/forum/viewtopic.php?id=2591

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

3

Re: Переменные среды в гиперссылках

Да, насчёт использования переменных среды в макросах я уже докопался, но в адресе гиперссылки не пропишешь функцию Environ(), чтобы она расшифровывала все переменные.
Либо нужен какой-то хитрый синтаксис, либо это вообще невозможно.

4

Re: Переменные среды в гиперссылках

Приведите, пожалуйста, пример, как Вы формируете гиперссылку.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

5

Re: Переменные среды в гиперссылках

Например вот так.

Post's attachments

Снимок.JPG 61.46 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

6

Re: Переменные среды в гиперссылках

Макросом можно сделать так:

Sub Hyperlink1()
    Dim URL1 As String
    Dim URL_Label1 As String
    URL1 = Environ$("USERPROFILE") & "/Documents/test.txt"  'адрес ссылки в папке Мои документы
    URL_Label1 = "Текст гиперссылки"   'текст ссылки
    ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
        URL1, SubAddress:="", ScreenTip:="", TextToDisplay:=URL_Label1
End Sub

В папке Мои документы должен существовать файл test.txt.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

7

Re: Переменные среды в гиперссылках

Макросом понятно, можно даже сделать обновление всех ссылок при открытии документа в зависимости от пользователя. Но это из разряда танцев с бубном. Должен же быть более изящный способ.

8

Re: Переменные среды в гиперссылках

У меня при формировании гиперссылки по умолчанию указывается путь

C:\Users\<имя_пользователя>\Downloads\

[Увы, это неверно!]


Вам же нужно указать путь

C:\Users\<имя_пользователя>\AppData\Roaming\AppData\Roaming\Microsoft\Outlook

Один из способов задания нужного Вам пути:

../AppData/Roaming/Microsoft/Outlook

Только я не понимаю - зачем?
Вы же можете указать путь полностью без переменной среды, просто скопировав его.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

9

Re: Переменные среды в гиперссылках

Вот это уже ближе к теме, хоть какое-то решение, спасибо))

А на вопрос зачем я ответил в самом первом посте - если путь содержит специфические данные (например как в данном случае имя пользователя), то при явном задании адреса эта ссылка на разных компьютерах открываться не будет.

10

Re: Переменные среды в гиперссылках

Прошу прощения - я был не прав.
Относительный путь "отсчитывает" от текущей папки (в которой соранен файл, а не от папки по умолчанию).
Будем думать.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.