MS Excel + многопользовательская работа = плохой вариант
Рекомендую посмотреть в сторону мигрирации на Google Spreadsheet.
Или менять архитектуру решения.
Если итоговые данные нужно только смотреть - можно периодически выкладывать куда-нибудь итоговые данные.
Перехватить запрос на выполнение скриншота можно, на фрилансе можно заказать подобную поделку.
Но лучше для безделья используйте свой ноутбук, а на рабочем ПК лучше не экспериментировать.
lunomania, язык - js с некоторыми специфическими особенностми. Гуглить можно (например) nак:
Apps Script get sheet by name
На фрилансе можно "поделку" также заказать.
Константин Теплоухов, при использовании System.Collections.Concurrent Вам не нужно заниматься арбитражом.
В текущей ситуации - если архитектура проекта позволяет, можно воспользоваться старыми добрыми локерами.
Но потом всё-равно - надо закопать )
Если не секрет - для чего Вы задействовали использование Project ID?
Второй вопрос - пользователю нужен копируемый Spreadsheet или он выступает просто как носитель крипта?
Возможно есть смысл пересмотреть архитектуру решения, но пока мало данных для выводов.
Чтобы иметь возможность изменять Spreadsheet через Google API, сначала необходимо пройти oauth2 аутентфикацию. После этого, подписывая запросы можно сделать что нужно. https://developers.google.com/discovery/v1/using#a...
Второй вариант (попроще) - сделайте поубликацию своего скипта как WEB или API приложения. В этом случае Вы отправяляете POST или GET запросы, а скрипт уже дёргает данные в Spreadsheet. Вопрос аутентификации останется уже на Вашей совести.
h8nor, как человек, который 20 лет последовательно шёл по пути: VBA -> VB6 -> VB.NET -> C# могу сказать, что VB языки имеют массу сходств. Переубеждать Вас не буду, на вкус и цвет , как говорят - фломастеры разные.
Если Вы часть текста выделяете тегом <b>, то parentNode у текста внутри тегов будет элемент <b>. И уже у него нужно будет изменять innerHTML или textContent