Доступ к тексту в буфере обмена в vba/vbs

Попросили помочь со скриптами vbs. Благодаря криворукости разработчиков специфическому поведению SAP, решением проблемы было использование буфера обмена. С чтением содержимого всё просто, а вот с записью уже не так тривиально. Причём, сторонний софт туда не скопировать и не скомпилировать - огорожено. Так что пользуют "васик".


Вобщем, нарыл вот такое. Кому надо, пользуйтесь:


Функция:

Function ClipBoard(input)
If IsNull(input) Then
ClipBoard = CreateObject("HTMLFile").parentWindow.clipboardData.getData("Text")
If IsNull(ClipBoard) Then ClipBoard = ""
Else
CreateObject("WScript.Shell").Run "mshta.exe javascript:eval(""document.parentWindow.clipboardData.setData('text','" & Replace(Replace(Replace(input, "'", "\\u0027"), """","\\u0022"),Chr(13),"\\r\\n") & "');window.close()"")", 0,True
End If
End Function

Использование:


Получение текста:

result = ClipBoard(null)

Установка текста:

ClipBoard("новый текст")

Если установка не нужна, можно функцию не использовать, хватит простой строки:

result = CreateObject("HTMLFile").parentWindow.clipboardData.getData("Text")

Для установки через setData такой способ не подходит (М$ пофиксили возможность зачем-то), посему приходится извращаться с помощью HTA.

MS, Libreoffice & Google docs

719 постов15K подписчика

Добавить пост

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
Отошла, бл*, от компа, отдохнуть от sap чуток...
раскрыть ветку (1)
Автор поста оценил этот комментарий

Сочувствую...

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку