Содержание
- Получение полного имени пользователя Windows макросом VBA
- Комментарии
- Процедура Visual Basic для получения текущего имени пользователя
- Аннотация
- Дополнительная информация
- ПРИМЕР
- Excel как узнать имя пользователя
- Вопрос
- Все ответы
- Как узнать кем создан файл эксель
- Как узнать автора файла Excel?
- Как проверить автора Excel?
- Как посмотреть кто вносил изменения в документ Excel?
- Как убрать автора в Excel?
- Где посмотреть создателя файла?
- Как посмотреть дату создания файла Excel?
- Как убрать имя пользователя в Excel?
- Как посмотреть историю сохранения файла Excel?
- Как в Excel узнать дату изменения ячейки?
- Как удалить информацию из файла doc?
- Как изменить свойства файла Excel?
- Как изменить имя файла в Excel?
- Как посмотреть создателя файла Ворд?
- Как посмотреть дату создания файла в ворде?
- Как проверить метаданные файла?
- Как узнать кем создан файл эксель
Получение полного имени пользователя Windows макросом VBA
Чтобы получить полное имя пользователя в Windows, можно использовать функцию UserFullName:
Данная функция использует интерфейс WMI для получения необходимых данных.
Посмотреть список всех учётных записей пользователей на компьютере можно следующим кодом:
Результат работы этого кода:
FullName: ASP.NET Machine Account
FullName: Учетная запись помощника для удаленного рабочего стола
FullName: CN=Microsoft Corporation,L=Redmond,S=Washington, C=US
FullName:
FullName: VBA Developer
Если же вам нужно получить только логин (имя пользователя) Windows, то код будет заметно проще:
(все 3 способа равнозначны — возвращают один и тот же результат)
PS: При создании этого макроса была использована программа WMI Code Creator:
Комментарии
А разве Application.UserName ровно это и не возвращает?
Добрый день!
В этот код можно добавить адрес или IP?
Sub WMI_username()
Workbooks.Open «C:Users» & iName & «DesktopÁóôåðíûé ñêëàä.xlsx»
Dim iName As String
iName = Environ(«UserName»)
Workbooks.Open «C:UsersiNameDesktopÁóôåðíûé ñêëàä.xlsx»
Такая проблема, не могу получить адрес.
Выдает код ошибки 1004
При желании можно утяжелить код с помощью «Application.PathSeparator», дабы не зависеть от версий операционной системы.
Код, конечно, тестировался, — только на WindowsXP (да и в статье приведен результат работы кода)
Сейчас проверил — в WinXP код работает и с прямыми, и с обратными слешами.
Не знал, что в Win7 что-то поменяли в этом плане.
Исправил все слеши в коде.
Насчёт объявления переменных: видимо, у вас в настройках редактора VBA включена опция «Требовать объявление переменных»,
и, соответственно, первой строкой в модуле присутствует директива Option Explicit
Я же этот режим не использую — потому часто и не объявляю переменные в своих макросах.
Источник
Процедура Visual Basic для получения текущего имени пользователя
Аннотация
Можно сделать вызов Windows API (интерфейс прикладного программирования) для Microsoft Windows библиотек DLL (библиотека динамической компоновки) для получения имени текущего пользователя. Имя текущего пользователя можно получить с помощью функции GetUserNameA в ADVAPI32. DLL.
Дополнительная информация
Microsoft Excel не имеет встроенные функциональные возможности для доступа к имени пользователя текущего компьютера. Тем не менее можно использовать оператор Declare в Visual Basic для приложений макроса для вызова функции Microsoft Windows, которая возвращает имя текущего пользователя. Корпорация Майкрософт предоставляет примеры процедур Visual Basic для приложений только для иллюстрации и без гарантии или подразумеваемых, включая, помимо прочего, подразумеваемые гарантии товарности или пригодности для определенной цели. Visual Basic процедуры, описанные в этой статье предоставлены «как есть» и корпорация Майкрософт не гарантирует, что они могут использоваться во всех ситуациях. Хотя специалисты службы технической поддержки Майкрософт могут объяснить возможности конкретного макроса, они будут изменять примеры для расширения его функциональности, а также они помогут вам создавать макросы для удовлетворения конкретных потребностей. Если вопросам программирования может потребоваться обратитесь к одной из поставщиков решений корпорации Майкрософт. Поставщики решений предоставляют широкий спектр платных служб, включая создание пользовательских макросов. Дополнительные сведения о поставщиках решений Microsoft вызов сведений служба поддержки клиентов на (800) 426-9400.
ПРИМЕР
Введите следующий код в новый модуль:
Запустите макрос Get_User_Name. Обратите внимание, что имя текущего пользователя появится в окне сообщения.
Источник
Excel как узнать имя пользователя
Вопрос
в VBScript пытаюсь создать подключение к excel файлу. но эта книга лежит на сервере, иногда эта книга бывает занята другим пользователем. как я могу получить имя пользователя кто занял данную таблицу? уведомление во вложении. Имя пользователя как зарегистрирован в office
я могу читать данные о пользователях через aplication.userstatus. но для этого она должна быть открыта для редактирования нескольким пользователям. Как можно узнать кем занята книга для редактирования
Все ответы
во вложении изображении скриншоты что я хочу видеть
По данным вами ссылкам, результат един:
Да, я Жук, три пары лапок и фасеточные глаза :))
во вложении изображении скриншоты что я хочу видеть
The opinion expressed by me is not an official position of Microsoft
что будет если открыть файл и посмотреть пользователей которые открыли файл? я прочел что вы можете получить список пользюков, но только после того как откроете, а открыть вы не можете потому что файл занят, и именно на последнее я вам и дал предположительный ответ
и еще тут описан воркераунд по вашей теме. и еще одно похожее обсуждение
The opinion expressed by me is not an official position of Microsoft
$ и там можно как то узнать кто открыл файл для редактирования.Если верно, то подскажите где в этом файле я могу узнать имя пользователя
На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.
Да, я Жук, три пары лапок и фасеточные глаза :))
На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.
Да, я Жук, три пары лапок и фасеточные глаза :))
The opinion expressed by me is not an official position of Microsoft
Он открывает файл через устаревшие «Общие книги» размещённую в сети предприятия, но файл у него открывается в режиме «Только для чтения» и он не видит кто из пользователей открыл файл. Для решения этой задачи, он возможно пишет в VBA код выполняющий задачу:
«Если при попытке открыть файл, файл можно открыть только в режиме «Только для чтения», VBA выводит окно «Файл занят пользователем: Имярек», в противном случае открыть файл на редактирование.»
Допускаю, что ему необходим «UserName» или его аналог для VBA.
Да, я Жук, три пары лапок и фасеточные глаза :))
да мне нужно это. как можно реализовать?
Да, я Жук, три пары лапок и фасеточные глаза :))
Внимательно изучите статью «Общие книги», ссылку на которую я вам дал ранее. В ней пошагово в девять шагов, написано как создавать и работать с Общей книгой. Также внимательно изучите «Дополнительные сведения».
По вашему скриншоту, файл не является Общей книгой и открыт в монопольном режиме :
Дополните, что у вас имеется уже сейчас, и что может ваш макрос.
В дополнение, если бы вы внимательно прочитали статью и выполнили все рекомендации статьи, ссылку на которую вам дал ранее, то у вас был бы результат отображения всех пользователей открывших книгу на редактирование:
и не нужно было бы создавать макрос, так как Общая книга открывается для редактирования у всех открывающих Общую книгу:
При наличии Skype, вы также могли бы обмениваться мгновенными сообщениями с совместно работающими пользователями.
Да, я Жук, три пары лапок и фасеточные глаза :))
Источник
Как узнать кем создан файл эксель
Как узнать автора файла Excel?
Чтобы увидеть свойство Author (Автор) для документа или книги, щелкните Файл > Сведения, а затем найдите author (Автор) в области Related People (Связанные люди) справа.
Как проверить автора Excel?
Откройте в Проводнике Windows папку, содержащую файлы Excel. Выберите нужный файл. Кликните по нему правой кнопкой мыши и в контекстном меню нажмите Свойства (Properties). На вкладке Подробно (Details) можно найти заголовок, тему, автора документа, комментарии и другие данные.
Как посмотреть кто вносил изменения в документ Excel?
Просмотр журнала изменений
- На вкладке Рецензирование нажмите кнопку Отслеживание изменений и выберите команду Выделить исправления. …
- В группе Отслеживать исправления, внесенные установите флажок по времени и в списке время выберите вариант Все.
- Снимите флажки пользователем и в диапазоне.
Как убрать автора в Excel?
Чтобы удалить автора из сведений о документе, кликните по имени автора правой кнопкой мыши и в появившемся меню выберите Удалить пользователя (Remove Person). Ещё добавлять и удалять авторов можно при помощи Области сведений о документе.
Где посмотреть создателя файла?
Щелкните на файле правой кнопкой мыши и выберите в контекстном меню команду Свойства. В окне свойств перейдите на вкладку Безопасность и щелкните на кнопке Дополнительно. В диалоговом окне Дополнительные параметры безопасности перейдите на вкладку Владелец, в которой расположено поле Текущий владелец этого элемента.
Как посмотреть дату создания файла Excel?
Как посмотреть дату создания файла
…
Выполните следующие шаги:
- Перетащите файл в окно программы, или нажмите на кнопку «Add Files», для добавления файла с ПК. …
- В полях «Created Date» (дата создания), «Modified Date» (дата изменения), «Accessed Date» (дата доступа) установите подходящие значения для даты и времени.
Как убрать имя пользователя в Excel?
Нажмите на вкладку File (Файл), щелкните по Options (Параметры) и выберите вкладку General (Общие). Измените имя пользователя.
Как посмотреть историю сохранения файла Excel?
Восстановление предыдущих версий файла Office
- Откройте файл, с которым вы работали.
- Перейдите в папку «>».
- В области «Управление книгой»или «Управлениепрезентацией» выберите файл с меткой (при закрытии без сохранения).
- На панели в верхней части файла выберите «Восстановить», чтобы переписать сохраненные ранее версии.
Как в Excel узнать дату изменения ячейки?
Меню Сервис-Параметры-вычисления-Итерации. Галочку видите.
Как удалить информацию из файла doc?
Перейдите на вкладку файл и нажмите кнопку сведения, затем нажмите кнопку Проверить наличие проблем и выберите команду Проверить документ. Щелкните, чтобы снять флажок Свойства документа и личные сведения .
Как изменить свойства файла Excel?
Просмотр и изменение настраиваемых свойств текущего файла
- Откройте вкладку Файл.
- Выберите пункт Сведения.
- Щелкните Свойства вверху страницы и выберите Дополнительные свойства. Примечания: …
- Откройте вкладку Прочие. Введите имя пользовательского свойства в поле Название или выберите его в списке. …
- Нажмите кнопку ОК.
Как изменить имя файла в Excel?
Откройте проводник, открыв папку «Мой компьютер»или нажав клавиши Windows+E. Найдите файл, который вы хотите переименовать, выберите его и нажмите кнопку «Переименовать» на ленте (или нажмите клавишу F2 на клавиатуре). Введите новое имя файла и нажмите ввод.
Как посмотреть создателя файла Ворд?
Чтобы увидеть свойство Author (Автор) для документа или книги, щелкните Файл > Сведения, а затем найдите author (Автор) в области Related People (Связанные люди) справа.
Как посмотреть дату создания файла в ворде?
- Шаг 1. Перейдите к местоположению документа Word, для которого вы хотите проверить дату создания. Наведите указатель мыши на документ Word и щелкните его правой кнопкой мыши.
- Шаг 2. Выберите опцию «Свойства» во всплывающем меню. …
- Шаг 3. Нажмите вкладку «Подробности» в верхней части диалогового окна.
Как проверить метаданные файла?
Для полного просмотра метаданных данного файла, нажмите на него правой кнопкой мыши и выберите в контекстном меню пункт Свойства. Когда откроется окно, перейдите на вкладку Подробности. В этом месте вы найдете все поля Exif, которые можно изменять.
Как узнать кем создан файл эксель
По данным вами ссылкам, результат един:
Да, я Жук, три пары лапок и фасеточные глаза :))
- Изменено Жук MVP, Moderator 19 июня 2018 г. 11:37
во вложении изображении скриншоты что я хочу видеть
The opinion expressed by me is not an official position of Microsoft
- Изменено marat1905 19 июня 2018 г. 19:34
что будет если открыть файл и посмотреть пользователей которые открыли файл? я прочел что вы можете получить список пользюков, но только после того как откроете, а открыть вы не можете потому что файл занят, и именно на последнее я вам и дал предположительный ответ
и еще тут описан воркераунд по вашей теме. и еще одно похожее обсуждение
The opinion expressed by me is not an official position of Microsoft
- Изменено Vector BCO Moderator 19 июня 2018 г. 20:49
$ и там можно как то узнать кто открыл файл для редактирования.Если верно, то подскажите где в этом файле я могу узнать имя пользователя
На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.
Да, я Жук, три пары лапок и фасеточные глаза :))
Выполните и напишите ваш результат:
На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.
Да, я Жук, три пары лапок и фасеточные глаза :))
The opinion expressed by me is not an official position of Microsoft
Он открывает файл через устаревшие «Общие книги» размещённую в сети предприятия, но файл у него открывается в режиме «Только для чтения» и он не видит кто из пользователей открыл файл. Для решения этой задачи, он возможно пишет в VBA код выполняющий задачу:
«Если при попытке открыть файл, файл можно открыть только в режиме «Только для чтения», VBA выводит окно «Файл занят пользователем: Имярек», в противном случае открыть файл на редактирование.»
Допускаю, что ему необходим «UserName» или его аналог для VBA.
Да, я Жук, три пары лапок и фасеточные глаза :))
Да, я Жук, три пары лапок и фасеточные глаза :))
- Изменено marat1905 20 июня 2018 г. 11:02
Внимательно изучите статью «Общие книги», ссылку на которую я вам дал ранее. В ней пошагово в девять шагов, написано как создавать и работать с Общей книгой. Также внимательно изучите «Дополнительные сведения».
По вашему скриншоту, файл не является Общей книгой и открыт в монопольном режиме :
Дополните, что у вас имеется уже сейчас, и что может ваш макрос.
В дополнение, если бы вы внимательно прочитали статью и выполнили все рекомендации статьи, ссылку на которую вам дал ранее, то у вас был бы результат отображения всех пользователей открывших книгу на редактирование:
и не нужно было бы создавать макрос, так как Общая книга открывается для редактирования у всех открывающих Общую книгу:
При наличии Skype, вы также могли бы обмениваться мгновенными сообщениями с совместно работающими пользователями.
Источник
Получить имя учетной записи Microsoft office |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Получение полного имени пользователя Windows макросом VBA
Чтобы получить полное имя пользователя в Windows, можно использовать функцию UserFullName:
Sub ПримерИспользованияUserFullName() ПолноеИмяПользователяWindows = WMI_UserFullName MsgBox ПолноеИмяПользователяWindows End Sub
Данная функция использует интерфейс WMI для получения необходимых данных.
Function WMI_UserFullName() As String login$ = CreateObject("WScript.Network").UserName ' читаем логин текущего пользователя Set objWMIService = GetObject("winmgmts://./root/CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_UserAccount", , 48) For Each objItem In colItems ' перебираем все учётные записи If objItem.Name = login$ Then WMI_UserFullName = objItem.FullName Next End Function
Посмотреть список всех учётных записей пользователей на компьютере можно следующим кодом:
Sub WMI_username() Set objWMIService = GetObject("winmgmts://./root/CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_UserAccount", , 48) For Each objItem In colItems Debug.Print "FullName: " & objItem.FullName Next End Sub
Результат работы этого кода:
FullName: ASP.NET Machine Account
FullName: Учетная запись помощника для удаленного рабочего стола
FullName: CN=Microsoft Corporation,L=Redmond,S=Washington, C=US
FullName:
FullName: VBA Developer
Если же вам нужно получить только логин (имя пользователя) Windows, то код будет заметно проще:
(все 3 способа равнозначны — возвращают один и тот же результат)
Sub ПолучениеИмениПользователяWindows() ' первый способ (читаем из переменной окружения) username1 = Environ("USERNAME") Debug.Print "username 1: " & username1 ' второй способ (используем объект WScript.Network) username2 = CreateObject("WScript.Network").UserName Debug.Print "username 2: " & username2 ' третий способ (читаем значение из реестра Windows) key$ = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionRegisteredOwner" username3 = CreateObject("WScript.Shell").RegRead(key$) ' читаем из реестра Debug.Print "username 3: " & username3 End Sub
PS: При создании этого макроса была использована программа WMI Code Creator:
- 47202 просмотра
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
В большинстве онлайн-ресурсов, которые я могу найти, обычно показывают, как получить эту информацию в VBA. Есть ли прямой способ получить эту информацию в ячейке?
Например, так просто, как =ENVIRON('User')
(что не сработало)
6 ответов
Лучший ответ
Пример: чтобы просмотреть имя пользователя Windows в ячейке C5, вы можете использовать этот скрипт:
Range("C5").Value = ": " & Environ("USERNAME").
4
Jack
28 Сен 2012 в 06:29
Это отображает имя текущего пользователя:
Function Username() As String
Username = Application.Username
End Function
Свойство Application.Username
содержит имя, введенное при установке MS Office.
Введите эту формулу в ячейку:
=Username()
4
rolacher
20 Ноя 2017 в 22:08
Без макроса VBA вы можете использовать эти советы, чтобы получить имя пользователя из пути:
=MID(INFO("DIRECTORY"),10,LEN(INFO("DIRECTORY"))-LEN(MID(INFO("DIRECTORY"),FIND("",INFO("DIRECTORY"),10),1000))-LEN("C:Users"))
11
sangorys
10 Дек 2018 в 13:28
Если вы не хотите создавать UDF в VBA или не можете, это может быть альтернативой.
=Cell("Filename",A1)
это даст вам полное имя файла, из которого вы можете получить имя пользователя примерно так:
=Mid(A1,Find("",A1,4)+1;Find("";A1;Find("";A1;4))-2)
Эта формула запускается только из ранее сохраненной книги.
Вы должны начинать с 4-й позиции из-за первой косой черты от диска.
5
Rafa Barragan
22 Мар 2016 в 22:34
Самый простой способ — создать макрос VBA, который обертывает эту функцию, например:
Function UserNameWindows() As String
UserName = Environ("USERNAME")
End Function
Затем вызовите его из сотового:
=UserNameWindows()
Дополнительные сведения и другие способы см. В этой статье.
3
Lance Roberts
4 Авг 2011 в 02:51
Сообщение от IvanOK
чем txt не подходит? (ответ можно)
удобней будет в экселе, т.к. в .тхт при внесении длинных изменений строка двигается.
например:
Лист1 $D$8 123 Admin
Лист2 $D$8 12312312312312312312312313 Admin
и потом, если сразу .xls сохранять, то можно будет фильтровать, анализировать итд. ведь я полагаю, что записи об изменениях будут вносится в одни и те же столбцы!
подскажите пожалуйста, как переконвертировать в .xls файл *если б еще добавить критерий «дата изменения» цены б не было!
Сообщение от IvanOK
недолжно… значит что то не так сделали в коде
Type mismatch выдает в дебаггере VBA. но это при выделении групп ячеек, и внесении данных как массив (ctrl+enter).
видимо так и задумано, ведь он регистрирует только те изменения, которые были внесены в !одну! ячейку (если я правильно понял).
Добавлено через 7 минут
вообщем, файл .тхт перестает записывать внесенные изменения если будет баг в макросе, даже после дебага получается, если какой нибудь криворукий юзер собьет макрос, то это бесполезно ..
- Remove From My Forums
-
Вопрос
-
в VBScript пытаюсь создать подключение к excel файлу. но эта книга лежит на сервере, иногда эта книга бывает занята другим пользователем. как
я могу получить имя пользователя кто занял данную таблицу? уведомление во вложении. Имя пользователя как зарегистрирован в officeя могу читать данные о пользователях через aplication.userstatus. но для этого она должна быть открыта для редактирования нескольким пользователям.
Как можно узнать кем занята книга для редактирования
У меня когда-то была похожая задача на работе. Нужно было понять, кто открывает определенную книгу. Сделать это оказалось не так сложно.
Если вы работаете в корпоративной сети, то здесь должно быть просто. Привязываете следующую процедуру к событию открытия книги и ждете наполнения лог файла.
Код |
---|
open "somefile.txt" for append as #1 print #1, environ("username") + " " + cstr(date) close |
Должно выполняться несколько условий.
1. «somefile.txt» находится на сетевом диске и доступен для редактирования всеми пользователями искомого файла.
2. Имя пользователя будет опознаваться, если оно задано в аккаунте (в корпоративной сети обычно так и есть).
3. Файл должен открываться с включенными макросами.
При желании то же самое можно сделать, например, для закрытия файла.
Стоит отметить, что у каждого метода есть свои недостатки, я не стал писать код с разного рода исключениями и усложнениями, потому что часто написанного достаточно.
Удачи!
При разработке скриптов для тех или иных задач, иногда программе требуется получить информацию о пользователе из ActiveDirectrory, который в данный момент эту программму запустил.
Например, запустив xls файл под учетной записью Петрова, мы можем исправлять только те строки где ответственным стоит Петров.
Напишем функцию VBA которая выдает полное ФИО сотрудника, на чьем компьютере запущена программа
Dim objAD, objUser As Object
Public Function UserName()
Set objAD = CreateObject(«ADSystemInfo»)
Set objUser = GetObject(«LDAP://» & objAD.UserName)
UserName = objUser.DisplayName
End Function
Вместо аттрибута DisplayName в строке UserName = objUser.DisplayName мы можем написать любой другой, который нам надо получить. Электронный адрес, номер кабинета, должность и так далее. Аттрибутов достаточно много и более полный список представлен в материале Карточка сотрудника Active Directory через Excel