System Specific VBA codes

System Specific VBA codes

32 to 64 bit conversion

#If Win64 Then

    Private Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As LongByVal bInheritHandle As Long, ByVal dwProcessId As LongAs Long
    Private Declare PtrSafe Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As LongAs Long

#Else

    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal        bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

#End If

यह VBA code जाँचता है कि आपका system 64-bit (Win64) है या 32-bit, और फिर उसके अनुसार Windows API function घोषित करता है।

  • #If Win64 Then line का अर्थ है: यदि 64-bit Excel पर चल रहा है, तो PtrSafe declarations का उपयोग करें, जो code को 64-bit system के साथ compatible बनाती हैं।
  • OpenProcess और GetExitCodeProcess function kernel32.dll से आते हैं, जो एक core Windows file है।
  • OpenProcess आपके VBA code को किसी अन्य चल रही process तक पहुँचने या उसे नियंत्रित करने देता है।
  • GetExitCodeProcess जाँचता है कि वह process अभी भी चल running है या finished हो गई है।

यह सुनिश्चित करता है कि एक ही VBA code 32-bit और 64-bit दोनों Windows पर सुरक्षित रूप से काम करे।


Get System User Details

Sub GetSystemInfo()
    MsgBox "User Name: " & Environ("USERNAME") & vbCrLf & _
           "Computer Name: " & Environ("COMPUTERNAME")
End Sub

यह VBA code आपके Windows user name और computer name वाला एक message box show करता है।

  • Sub GetSystemInfo(), GetSystemInfo नामक एक procedure शुरू करता है।
  • Environ("USERNAME"), Windows में वर्तमान में logged in person का नाम प्राप्त करता है।
  • Environ("COMPUTERNAME"), computer का name प्राप्त करता है।
  • vbCrLf, दोनों सूचनाओं के बीच एक नई line जोड़ता है।
  • MsgBox, result को एक pop-up message box में display करता है।

जब आप इस macro को चलाएँगे, तो यह कुछ इस तरह दिखाई देगा:
User Name: JohnDoe
Computer Name: OFFICE-PC
यह यह पहचानने के लिए उपयोगी है कि कौन और कौन सा कंप्यूटर VBA code चला रहा है।


System Date & Time

Sub SystemDateTime()
    MsgBox "Today: " & Date & vbCrLf & "Time: " & Time
End Sub

यह VBA code आपके computer से वर्तमान date और time को एक message box में display करता है।

  • Sub SystemDateTime(), SystemDateTime नामक एक macro शुरू करता है।
  • Date, system clock से आज की तारीख देता है।
  • Time, वर्तमान समय देता है।
  • vbCrLf दो lines के बीच एक line break जोड़ता है।
  • MsgBox, दोनों values को एक pop-up window में एक साथ दिखाता है।

जब आप macro चलाएँगे, तो आपको कुछ इस तरह दिखाई देगा:
Today: 05-11-2025
Time:  10:15:30 AM
यह सरल script Excel या किसी भी VBA-supported application में वर्तमान system date और time दिखाने या जाँचने के लिए उपयोगी है।


Check If Folder Exists

Sub CheckFolder()
    If Dir("C:\TestFolder\", vbDirectory) <> "" Then
        MsgBox "Folder Found"
    Else
        MsgBox "Folder Missing"
    End If
End Sub

यह VBA code जाँचता है कि आपके computer पर “C:\TestFolder” नाम का कोई folder मौजूद है या नहीं।

  • Sub CheckFolder(), CheckFolder macro शुरू करता है।
  • Dir("C:\TestFolder\", vbDirectory) folder path ढूँढता है।
  • अगर यह folder ढूँढ लेता है, तो यह उसका नाम लौटाता है (not empty)।
  • IF condition इस result की जाँच करती है:
  • अगर empty नहीं है (<> ""), तो इसका मतलब है कि folder मौजूद है, इसलिए यह "Folder Found" दिखाता है।
  • अगर empty है, तो folder मौजूद नहीं है, इसलिए यह "Folder Missing" दिखाता है।
  • MsgBox परिणाम को एक pop-up में display करता है।

यह confirm करने का एक आसान तरीका है कि कोई specific folder उपलब्ध है या नहीं।


Create Folder Programmatically

Sub CreateFolder()
    MkDir "C:\TestFolder"
End Sub

यह VBA code आपके computer की C drive पर "TestFolder" नाम का एक नया folder बनाता है।

  • Sub CreateFolder(), CreateFolder macro शुरू करता है।
  • MkDir (Make Directory) एक VBA command है जिसका उपयोग folder बनाने के लिए किया जाता है।
  • "C:\TestFolder" वह पूरा path है जहाँ folder बनाया जाएगा।
  • जब आप इस macro को चलाते हैं, तो VBA जाँचता है कि क्या वह folder मौजूद है; यदि नहीं, तो वह उसे तुरंत बना देता है।

यदि folder पहले से मौजूद है, तो आपको एक error मिलेगी जब तक कि आप पहले Dir function का उपयोग करके जाँच न करें।
यह सरल code files या reports को store करने के लिए automatic रूप से folder बनाने के लिए उपयोगी है।


Open Any Website From VBA

Sub OpenWebsite()
    Shell "cmd /c start https://www.google.com", vbHide
End Sub

यह VBA code आपके default web browser में एक website (इस मामले में, Google) खोलता है।

  • Sub OpenWebsite()OpenWebsite macro शुरू करता है।
  • Shell, VBA के अंदर से एक Windows command चलाता है।
  • "cmd /c start https://www.google.com" Windows को command prompt का उपयोग करके URL खोलने के लिए कहता है।
  • vbHide command prompt window को छिपा देता है ताकि वह screen पर दिखाई न दे।
  • जब आप इस macro को चलाते हैं, तो आपका default browser (जैसे Chrome या Edge) automatic रूप से Google homepage खोल देगा।

आप Excel या Word VBA से सीधे अलग-अलग page खोलने के लिए web address को किसी अन्य site URL से बदल सकते हैं।


Detect Office Version Installed

Sub OfficeVersion()
    MsgBox "Office Version: " & Application.Version
End Sub

यह VBA code आपके द्वारा उपयोग किए जा रहे Microsoft Office version को display करता है।

  • Sub OfficeVersion()OfficeVersion नामक एक macro प्रारंभ करता है।
  • Application.Version वर्तमान में चल रहे Office application (जैसे Excel, Word, आदि) का version number प्राप्त करता है।
  • MsgBox उस version number को एक pop-up message box में display करता है।

उदाहरण के लिए, यदि आप Office 365 या Excel 2021 का उपयोग कर रहे हैं, तो यह "Office version: 16.0" जैसा कुछ show कर सकता है।
यह code तब उपयोगी होता है जब आपको यह जांचना हो कि आपका VBA code Office के किस version पर चल रहा है, विशेष रूप से compatibility testing या troubleshooting के लिए।


Run External EXE from VBA

Sub RunNotepad()
    Shell "notepad.exe", vbNormalFocus
End Sub

यह VBA code Notepad खोलता है, जो Windows का basic text editor है।

  • Sub RunNotepad(), RunNotepad macro शुरू करता है।
  • Shell एक VBA command है जिसका उपयोग external program या system command चलाने के लिए किया जाता है।
  • "notepad.exe" Windows को Notepad application शुरू करने के लिए कहता है।
  • vbNormalFocus Notepad को एक normal window में खोलता है और उसे सामने (active) लाता है।

जब आप इस macro को चलाते हैं, तो Notepad अपने आप खुल जाएगा, text type करने या edit करने के लिए तैयार।
आप अपने VBA code से अन्य application आसानी से खोलने के लिए "notepad.exe" को किसी अन्य program के नाम या file path से बदल सकते हैं।


Get Screen Resolution

Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Sub ScreenOutput()
    MsgBox "Width: " & GetSystemMetrics(0) & vbCrLf & _
           "Height: " & GetSystemMetrics(1)
End Sub

यह VBA code आपके computer screen की width और height pixels में दिखाता है।

  • PtrSafe function घोषित करें GetSystemMetrics Lib "user32" VBA को user32.dll में stored Windows API function से जोड़ता है, जो system से संबंधित विवरण प्रदान करता है।
  • PtrSafe 64-bit Office के साथ compatibility सुनिश्चित करता है।
  • GetSystemMetrics(0) screen की width लौटाता है, और GetSystemMetrics(1) screen की height लौटाता है।
  • Sub ScreenOutput() में, एक MsgBox दोनों values को एक line break (vbCrLf) के साथ प्रदर्शित करता है।

जब आप इस macro को चलाएँगे, तो आपको इस तरह का message दिखाई देगा:
Width: 1920
Height: 1080
यह VBA में screen layout या form size निर्धारण कार्यों के लिए उपयोगी है।


Check If User Is Admin (Windows Group)

Sub CheckAdmin()
    If Environ("USERDOMAIN") <> "" Then
        MsgBox "Possibly an Admin User!"
    Else
        MsgBox "Standard User"
    End If
End Sub

यह VBA code जाँचता है कि क्या वर्तमान Windows user administrator हो सकता है।

  • Sub CheckAdmin(), CheckAdmin macro शुरू करता है।
  • Environ("USERDOMAIN") logged-in user से link किया गया Windows domain नाम प्राप्त करता है।
  • यदि value empty नहीं है (<> ""), तो यह value लेता है कि user किसी domain का हिस्सा है, जिसका अर्थ अक्सर एक admin या network account होता है, इसलिए यह "Possibly an Admin User!" दिखाता है।
  • यदि यह empty है, तो यह "Standard User" दिखाता है, जिसका अर्थ संभवतः एक local या limited account है।

यह सरल जाँच macro चलाने वाले user के type की पहचान करने में मदद करती है, हालाँकि यह admin verification की गारंटी नहीं देता है।


Play Windows Beep Sound

Sub BeepSound()
    Beep
End Sub

यह VBA code computer के internal speaker का उपयोग करके एक साधारण beep sound बजाता है।

  • Sub BeepSound(), BeepSound macro शुरू करता है।
  • Beep command system को एक छोटी default sound emit करने के लिए प्रेरित करता है।
  • इसके लिए किसी बाहरी file या parameter की आवश्यकता नहीं होती है - यह केवल built-in Windows sound का उपयोग करता है।

जब आप इस macro को चलाते हैं, तो आपको एक quick beep सुनाई देगी, जिसका उपयोग आपके VBA program में alert या notification के रूप में किया जा सकता है।
उदाहरण के लिए, आप इसे किसी लंबी प्रक्रिया के बाद या किसी error के होने पर user का ध्यान आकर्षित करने के लिए बिना message box दिखाए रख सकते हैं।


SystemInfo Command Dump

Sub GetFullSystemInfo()
    Shell "cmd.exe /c systeminfo > C:\SysInfo.txt", vbHide
    MsgBox "System info saved to C:\SysInfo.txt"
End Sub

यह VBA code Windows से detailed system जानकारी एकत्र करता है और उसे एक test file में save करता है।

  • Sub GetFullSystemInfo(), GetFullSystemInfo macro प्रारंभ करता है।
  • Shell "cmd.exe /c systeminfo > C:\SysInfo.txt", vbHide computer details (जैसे OS, RAM और processor) एकत्र करने के लिए command prompt में systeminfo command चलाता है।
  • > symbol output को drive C: पर SysInfo.txt नामक file में save करता है।
  • जब तक कार्य चुपचाप चलता रहता है, vbHide command window को छिपा देता है।
  • अंत में, एक MsgBox आपको सूचित करता है कि system जानकारी सफलतापूर्वक save कर ली गई है।

File को बाद में review के लिए Notepad में खोला जा सकता है।


System Monitor Trick

Sub RunningProcesses()
    Shell "cmd.exe /c tasklist > C:\Processes.txt", vbHide
    MsgBox "Saved at C:\Processes.txt"
End Sub

यह VBA code आपके computer पर वर्तमान में चल रही सभी processes को list करता है और उन्हें एक text file में save करता है।

  • Sub RunningProcesses(), RunningProcesses macro प्रारंभ करता है।
  • Shell "cmd.exe /c tasklist > C:\Processes.txt", vbHide command prompt का उपयोग करके Windows tasklist command चलाता है।
  • > symbol output (process details) को C drive पर Processes.txt नामक file पर redirect करता है।
  • vbHide Command  Prompt window को चलते समय छिपाए रखता है।
  • पूरा होने पर, एक MsgBox एक message show करता है जिसमें बताया जाता है कि file save कर ली गई है।

आप सभी चल रहे applications और background processes को देखने के लिए Notepad में C:\Processes.txt खोल सकते हैं।

एक टिप्पणी भेजें

Please do not enter any spam link in the comment box.

और नया पुराने