VBA GetObject | எக்செல் விபிஏவில் GetObject செயல்பாட்டை எவ்வாறு பயன்படுத்துவது?
எக்செல் VBA GETOBJECT செயல்பாடு
எக்செல் கோப்பிலிருந்து ஆக்டிவ்எக்ஸ் பொருளை அணுக எம்எஸ் எக்செல் இல் விபிஏவில் கெட்ஆப்ஜெக்ட் செயல்பாட்டைப் பயன்படுத்தலாம், பின்னர் பொருளை ஒரு பொருள் மாறிக்கு ஒதுக்கலாம். MS Word, MS Outlook, MS PowerPoint மற்றும் Internet Explorer போன்ற எந்த மைக்ரோசாஃப்ட் பயன்பாட்டையும் கட்டுப்படுத்த OLE (பொருள் இணைத்தல் மற்றும் உட்பொதித்தல்) அல்லது COM (கூட்டு பொருள் தொகுதி) தொழில்நுட்பத்தைப் பயன்படுத்த, நாம் VBA GETOBJECT செயல்பாட்டைப் பயன்படுத்தலாம்.
பொருளை உருவாக்க CreateObject செயல்பாட்டைப் பயன்படுத்துகிறோம், மேலும் GETOBJECT செயல்பாடு பொருளைக் குறிக்கும்.
GETOBJECT செயல்பாட்டிற்கான தொடரியல்
GET OBJECT செயல்பாடு இந்த பெயரிடப்பட்ட வாதங்களைக் கொண்டுள்ளது:
- பாதை பெயர்: மீட்டெடுக்க முழு பாதையையும், பொருளைக் கொண்ட கோப்பின் பெயரையும் குறிப்பிட வேண்டும். இது ஒரு விருப்ப வாதமாகும், உண்மையில், GetObject செயல்பாட்டில் உள்ள இரண்டு வாதங்களும் விருப்பமானவை, ஆனால் ‘பாதை பெயர்’ விடுபட்டால், இரண்டாவது வாதம் ‘வகுப்பு’ தேவைப்படுகிறது.
- வர்க்கம்: இது முன்னர் குறிப்பிட்டபடி ஒரு விருப்ப வாதமாகும். இது பொருளின் வகுப்பைக் குறிக்கும் ஒரு சரத்தை ஏற்றுக்கொள்கிறது.
‘வகுப்பு’ வாதத்தைக் குறிப்பிட, ‘appname.objecttype’ தொடரியல் பயன்படுத்துகிறோம்.
- பெயர்: பயன்பாட்டு பெயரை நாம் குறிப்பிட வேண்டும், இது பொருளை வழங்கும்.
- பொருள் வகை: உருவாக்க பொருளின் வர்க்க வகையை நாங்கள் குறிப்பிடுகிறோம்.
எக்செல் VBA GETOBJECT செயல்பாட்டின் எடுத்துக்காட்டு
இந்த VBA GetObject வார்ப்புருவை இங்கே பதிவிறக்கம் செய்யலாம் - VBA GetObject Templateஎங்களிடம் 3 அட்டவணைகள் கொண்ட ஒரு சொல் ஆவணம் உள்ளது என்று வைத்துக்கொள்வோம்.
விபிஏ குறியீட்டை எழுத விரும்புகிறோம், இது ஆவணத்தில் உள்ள அனைத்து அட்டவணைகளையும் எக்செல் தாளுக்கு இறக்குமதி செய்யும். இதைச் செய்ய, நாம் VBA இல் CreateObject மற்றும் GetObject செயல்பாட்டைப் பயன்படுத்த வேண்டும்.
படிகள் இருக்கும்:
- ஒரு எக்செல் கோப்பை உருவாக்கி, கோப்பை .xlsm எக்செல் நீட்டிப்பு (எக்செல் மேக்ரோ-இயக்கப்பட்ட பணிப்புத்தகம்) மூலம் சேமிக்கவும், ஏனெனில் நாங்கள் VBA குறியீட்டை (ஒரு மேக்ரோ) இயக்க வேண்டும்.
- குறுக்குவழி விசையுடன் (Alt + F11) காட்சி அடிப்படை எடிட்டரைத் திறக்கவும் அல்லது எக்செல் உள்ள ‘டெவலப்பர்’ தாவலில் உள்ள ‘கோட்’ குழுவில் ‘விஷுவல் பேசிக்’ கட்டளையைப் பயன்படுத்தவும்.
- விபிஏ எடிட்டரின் இடது பக்கத்தில் உள்ள ‘திஸ்வொர்க்’ மீது இருமுறை கிளிக் செய்து, அதன் பின்னர் திரையின் மேற்புறத்தில் காட்டப்பட்டுள்ள பட்டியலிலிருந்து ‘பணிப்புத்தகம்’ தேர்வு செய்யவும்.
- பட்டியலிலிருந்து ‘திற’ என்பதைத் தேர்வுசெய்க.
- இப்போது இந்த இரண்டு வரிகளுக்கு இடையில் குறியீட்டை எழுத வேண்டும்.
- முதலில், பொருள்களை (எம்.எஸ். வேர்ட் ஆவணம் மற்றும் எம்.எஸ். வேர்ட் அப்ளிகேஷன் ஆப்ஜெக்ட்) வைத்திருப்பதற்கான மாறிகள் மற்றும் அட்டவணையை பிரித்தெடுக்க வேண்டிய இடத்திலிருந்து ஆவணத்தின் பெயரை வைத்திருக்க ஒரு ‘சரம் மாறி’ ஆகியவற்றை அறிவிப்போம்.
- பிழை கையாளுதலுக்காக, நாங்கள் ஒரு அறிக்கையைச் சேர்ப்போம், இந்த அறிக்கை VBA நிரலை பிழையைப் புறக்கணித்து, அடுத்த வரியின் குறியீட்டைக் கொண்டு மீண்டும் செயல்படுத்துமாறு கூறுகிறது. “பிழை மீண்டும் தொடங்கு” அறிக்கை இயக்க நேர பிழைகளை சரிசெய்யாது, ஆனால் பிழையை ஏற்படுத்திய வரியைத் தொடர்ந்து வரியிலிருந்து நிரல் செயலாக்கம் தொடரும் என்று அர்த்தம்.
- இப்போது நாம் பயன்படுத்துவோம் GetObject செயல்பாடு சொல் பயன்பாட்டு பொருளின் தற்போதைய நிகழ்வை அணுக.
- ஒரு வேளை, எம்.எஸ். வேர்ட் அப்ளிகேஷனின் தற்போதைய நிகழ்வு இல்லை அல்லது ஆக்டிவ்எக்ஸ் கூறு ஒரு பொருளை உருவாக்கவோ அல்லது இந்த பொருளைத் திரும்பப் பெறவோ முடியாது, பின்னர் பிழை 429. இதற்காக, குறியீட்டில் இரண்டு வரிகளுக்கு கீழே சேர்ப்போம். பிழையைக் கையாண்ட பிறகு, எம்.எஸ். வேர்ட் அப்ளிகேஷன் பொருளின் ஒரு உதாரணத்தை நாம் உருவாக்க வேண்டும் CreateObject செயல்பாடு.
- MS வேர்ட் பயன்பாட்டைக் காண, நாம் காணக்கூடிய சொத்தை மாற்றுவோம் ‘WdApp’ பொருள் உண்மை.
- எக்செல் தாளில் அட்டவணையை இறக்குமதி செய்ய விரும்பும் சொல் ஆவணத்தின் இருப்பிடம் மற்றும் கோப்பு பெயரை நாம் கண்டுபிடித்து அதையே ஒதுக்க வேண்டும் “StrDocName” பெயர் மற்றும் இருப்பிடத்தைக் கண்டுபிடிக்க, நாம் பார்க்கலாம் பண்புகள் கோப்பின்.
திறக்க ‘பண்புகள்’ உரையாடல் பெட்டி, கோப்பைத் தேர்ந்தெடுத்து அழுத்தவும் ‘Alt + Enter’.
- குறிப்பிட்ட இடத்தில் கோப்பு இல்லை என்றால், குறியீடு “கோப்பு குறிகள் விவரங்கள் கோப்புறை பாதையில் காணப்படவில்லை” என்று செய்தியை அளிக்கிறது. தலைப்பு “மன்னிக்கவும், அந்த ஆவணத்தின் பெயர் இல்லை.”
- இப்போது நாம் MS Word பயன்பாட்டை செயல்படுத்த வேண்டும் மற்றும் மாறியை ஒதுக்க வேண்டும் ‘Wddoc’ கோப்பு பெயரை சேமித்து வைத்திருக்கும் சொல் ஆவணத்துடன் ‘StrDocName’.
- கோப்பு ஏற்கனவே திறக்கப்படவில்லை என்றால், நாங்கள் ஆவணத்தைத் திறந்து பயன்பாட்டை செயல்படுத்த வேண்டும்.
- சொல் ஆவணத்தை செயல்படுத்திய பிறகு, ஆவணத்தில் உள்ள அட்டவணையை அணுக வேண்டும். இதைச் செய்ய, நாங்கள் சில மாறிகள் உருவாக்குவோம்.
Tble என்பது முழு எண் மாறி, இது ஆவணத்தில் அட்டவணைகளின் எண்ணிக்கையை சேமிக்கும்.
rowWd நீண்ட மாறி, இது ஒரு குறிப்பிட்ட அட்டவணையில் வரிசைகளின் எண்ணிக்கையை சேமிக்கும்.
colWd நீண்ட மாறி, இது ஒரு குறிப்பிட்ட அட்டவணையில் நெடுவரிசைகளின் எண்ணிக்கையை சேமிக்கும்.
- ஆவணத்தில் உள்ள அட்டவணைகளின் எண்ணிக்கையை நாம் கணக்கிட வேண்டும், ஆவணத்தில் அட்டவணை இல்லை என்றால் பயனருக்கு ஒரு செய்தி பெட்டியைக் காண்பிப்போம் "வேர்ட் ஆவணத்தில் அட்டவணைகள் எதுவும் இல்லை".
- ஆவணத்தில் அட்டவணையை அணுகவும், எக்செல் தாளில் உள்ளடக்கத்தை எழுதவும், பல அட்டவணைகள் நேரங்களுக்கு 'ஃபார்' வி.பி.ஏ லூப்பை இயக்குவோம், மேலும் இந்த வி.பி.ஏ லூப்பிற்குள், ஒவ்வொரு வரிசையையும் அணுகுவதற்கான 'லூப்ஸ்' சுழற்சிகளை நாங்கள் இயக்குவோம். வரிசையில் உள்ள ஒவ்வொரு நெடுவரிசையும்.
- ஆவணத்தை சேமித்து, பயன்பாட்டை விட்டு வெளியேற நாங்கள் விரும்பவில்லை என்பதால். கணினியின் நினைவகத்தையும் நாம் வெளியிட வேண்டும். இதைச் செய்ய, பின்வரும் குறியீட்டை எழுதுவோம்.
இப்போது நாம் எக்செல் கோப்பைத் திறக்கும் போதெல்லாம், நிரல் சொல் ஆவணத்திலிருந்து அட்டவணை உள்ளடக்கத்துடன் புதுப்பிக்கப்படும்.
குறியீடு:
தனியார் துணை பணிப்புத்தகம்_ஒப்பன் () ரெம் GETOBJECT டிம் WdApp ஆல் உருவாக்கப்பட்ட பொருளை அணுகுவதற்கான பொருள்களை அறிவிக்கிறது, wddoc ஆப்ஜெக்ட் ரெம் என சொல் ஆவணத்தை அணுக ஒரு சரம் மாறியை அறிவிக்கிறது மங்கலான strDocName சரம் ரெம் பிழை கையாளுதலில் பிழை மீண்டும் கையாளுதல் ஏற்கனவே திறக்கப்பட்டுள்ளது WdApp = GetObject (, "Word.Application") என்றால் Err.Number = 429 என்றால் Err.Clear Rem MS Word ஏற்கனவே திறக்கப்படாவிட்டால் ஒரு சொல் பயன்பாட்டு பொருளை உருவாக்குதல் WdApp = CreateObject ("Word.Application") முடிவு WdApp.Visible = True strDocName = "C: ers பயனர்கள் \ CBA7_01 \ டெஸ்க்டாப் \ குறிப்புகள் விவரங்கள். Docx" ரெம் தொடர்புடைய ஆவணத்திற்கான தொடர்புடைய கோப்பகத்தை சரிபார்க்கிறது ரெம் காணப்படவில்லை எனில் பயனருக்கு தகவல் அளித்து நிரலை மூடினால் Dir (strDocName) = " "பின்னர் MsgBox" கோப்பு "& strDocName & vbCrLf &" கோப்புறை பாதையில் காணப்படவில்லை "& vbCrLf &" C: ers பயனர்கள் \ CBA7_01 \. ", _VbExclamation," மன்னிக்கவும், அந்த ஆவணத்தின் பெயர் இல்லை. " WdApp.Activate அமை என்றால் wddoc = WdApp.Documents (strDocName) wddoc எதுவும் இல்லை என்றால் wddoc = WdApp.Documents.Open ("C: ers பயனர்கள் \ CBA7_01 \ Desktop \ Marks Details.docxA) wddd சொல் ஆவணத்தில் அட்டவணையை அணுகுவதற்கான மாறிகளை வரையறுத்தல் டிம் டபிள் என்டீஜர் டிம் ரோட் டபிள்யூ டி டி லாங் டிம் கோல்வாட் இன்டீஜர் டிம் எக்ஸ் லாங், ய் லாங் எக்ஸ் = 1 ஒய் = 1 உடன் wddoc Tble = wddoc.Tables.Count என்றால் Tble = 0 MsgBox "வேர்ட் ஆவணத்தில் அட்டவணைகள் இல்லை", vbExclamation, "இறக்குமதி செய்ய அட்டவணைகள் இல்லை" துணை முடிவிலிருந்து வெளியேறவும் ரெம் அட்டவணைகள் மற்றும் அவற்றின் வரிசைகளை அணுக லூப்பிங் செயல்முறையைத் தொடங்கினால், நெடுவரிசைகள் i = 1 உடன் சமாளிக்க. அட்டவணைகள் (i) rowWd க்கு = 1 க்கு .Rows.Count for colWd = 1 To .Columns.Count Cells (x, y) = பணித்தாள் செயல்பாடு. ரெம் அடுத்த வரிசையில் சென்று 1 நெடுவரிசையில் இருந்து தொடங்குங்கள் 1 y = 1 x = x + 1 அடுத்த வரிசைWd அடுத்த முடிவுடன் ரெம் உடன் நாம் சொல் ஆவணத்தை சேமிக்க தேவையில்லை wddoc.Clove Savechanges: = தவறான ரெம் நாங்கள் MS Word பயன்பாட்டை விட்டு வெளியேறுகிறோம் Wd App.Quit Rem 2 பொருள் மாறிகளுக்கு ஒதுக்கப்பட்ட கணினி நினைவகத்தை இறுதியாக வெளியிடுகிறோம் wddoc = ஒன்றுமில்லை WdApp = ஒன்றுமில்லை முடிவு துணை
நினைவில் கொள்ள வேண்டிய விஷயங்கள்
- CreateObject இயங்கும் எண்ணைப் பொருட்படுத்தாமல், சில ஒற்றை-நிகழ்வு பொருள் உள்ளது, இதற்காக பொருளின் ஒரே ஒரு நிகழ்வு மட்டுமே உருவாக்கப்படுகிறது. GetObject செயல்பாடு எல்லா நேரங்களிலும் பூஜ்ஜிய நீளத்தின் சரத்துடன் அழைக்கப்படும் அதே நிகழ்வைத் தருகிறது மற்றும் ‘பாதை பெயர்’ வாதம் குறிப்பிடப்படாவிட்டால் பிழை வரும்.
- VBA உடன் உருவாக்கப்பட்ட வகுப்பிற்கான குறிப்பை அணுக GetObject ஐப் பயன்படுத்த முடியாது.
- ஒரு வேளை, எம்.எஸ். வேர்ட் அப்ளிகேஷனின் செயலில் எந்த நிகழ்வும் இல்லை, அல்லது ஏற்கனவே ஏற்றப்பட்ட ஒரு கோப்பைக் கொண்டு தொடங்கப்பட்ட பொருளை நாங்கள் விரும்பவில்லை, பின்னர் முதலில் கிரியேட் ஆப்ஜெக்ட் செயல்பாட்டைப் பயன்படுத்தி பொருளை உருவாக்கலாம், பின்னர் பொருளை அணுக GetObject செயல்பாட்டைப் பயன்படுத்துகிறோம்.