Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2022, 00:50   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Ping из VBA

Доброго времени суток!

Есть таблица, в которой содержится каталог IP адресов. Нужно их пингануть в двух вариантах:
1. С открытием отдельного окна cmd с запуском стандартной программы ping.
2. Пингануть без открытия окна, с возвратом успешности или нет. Для занесения результата (успешно/нет) в таблицу.

Если п.1 относительно понтяно как можно реализовать (но от профессионального совета не откажусь), то вот по п.2 вообще нет понимания "что и как".

Сможет кто подсказать куда рыть?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 07.06.2022, 02:08   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Function OkPing(adr$) As Boolean
  Dim shl, fn, ts, txt
  Set shl = CreateObject("WScript.Shell")
  fn = ThisWorkbook.Path & Application.PathSeparator & "2.txt"
  shl.Run "%comspec% /c ping -n 2 " & adr & " > " & fn
  Application.Wait (Now + TimeValue("0:00:03"))
  Set ts = CreateObject("ADODB.Stream")
  ts.Open:  ts.Type = 2:  ts.Charset = "cp866"
  On Error Resume Next
  ts.LoadFromFile fn:  txt = ts.readtext:  ts.Close
  If Err Then Exit Function
  OkPing = InStr(txt, "узел недоступен") = 0
End Function

Sub Test()
  MsgBox OkPing("192.168.0.9"), , "Прошли пинги:"
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.06.2022, 11:23   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Тут есть несколько вариантов функции:
https://excelvba.ru/code/Ping
EducatedFool вне форума Ответить с цитированием
Старый 08.06.2022, 09:14   #4
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Очень, очень интересно! Спасибо!
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 08.06.2022, 11:45   #5
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Я понаглею и спрошу. А как из VBA сделать tracert c получением результат для вывода в окно?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 08.06.2022, 12:16   #6
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Пока нашёл вот такое решение
Код:
Sub ActiveCellTracert()
    IPAdr = ActiveCell.Value
    Shell ("cmd /k tracert.exe " & IPAdr), vbNormalFocus
End Sub
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ping Drago56 C/C++ Сетевое программирование 2 02.02.2016 15:41
[ping] unbanned Работа с сетью в Delphi 6 09.07.2013 14:06
Ping Шамиль8284 Софт 1 27.05.2013 13:28
ping на c++ маришка001 Помощь студентам 3 30.10.2011 11:51
ping TaTT DoGG Общие вопросы .NET 2 06.10.2008 12:48