மைக்ரோசாஃப்ட் வேர்டுக்கான VBA இல் பத்தி மேலாண்மை மாஸ்டரிங்
VBA ஸ்கிரிப்டிங் மூலம் மைக்ரோசாஃப்ட் வேர்டில் உள்ள அட்டவணைகளுடன் பணிபுரிவது ஒரு சிக்கலான புதிரைத் தீர்ப்பது போல் உணரலாம். 📄 நீங்கள் எழுதும் ஒவ்வொரு செயல்பாடும் உங்களை தீர்வுக்கு நெருக்கமாகக் கொண்டுவருகிறது, ஆனால் சில சமயங்களில், பிடிவாதமான பத்தியை அகற்றுவது போன்ற சிறிய தடைகள் அதன் தடங்களில் முன்னேற்றத்தை நிறுத்தலாம்.
அட்டவணை வரிசையில் பல-நிலை பட்டியல் உருப்படிகளை மாற்ற முயற்சிக்கும்போது இதுபோன்ற ஒரு சவால் எழுகிறது. உருப்படிகளை மறுவரிசைப்படுத்துவதில் நீங்கள் வெற்றிபெறலாம், ஆனால் வரிசையின் முடிவில் தேவையற்ற, கூடுதல் பத்தி நீடித்திருப்பதைக் கண்டறியலாம். இந்தச் சிக்கல் உங்கள் டேபிளின் நேர்த்தியான கட்டமைப்பை சீர்குலைத்து, பதில்களைத் தேடும்.
Office 365க்கான ஸ்கிரிப்ட்டில் பணிபுரியும் போது இந்தச் சரியான சூழ்நிலையை நான் எதிர்கொண்டேன். நான் எப்படி அகற்ற முயற்சித்தாலும், கடைசி வரி ஒத்துழைக்க மறுக்கும் வரை ஸ்கிரிப்ட் நினைத்தபடியே செயல்பட்டது. பத்தி உரையை அழிப்பது முதல் நீக்குதல் முறைகளைப் பயன்படுத்துவது வரை, சிக்கல் நீடித்தது. அதைச் சரிசெய்வதற்கான எனது முதல் முயற்சியானது, பிடிவாதமான காபி கறையை அகற்ற முயற்சிப்பது போல் உணர்ந்தேன்—வீணற்றது. ☕
இந்த வழிகாட்டியில், VBA ஐப் பயன்படுத்தி மைக்ரோசாஃப்ட் வேர்ட் அட்டவணை வரிசையில் கடைசி பத்தியை எவ்வாறு திறம்பட நீக்குவது என்பதை நான் உங்களுக்குக் காண்பிப்பேன். சரியான அணுகுமுறையுடன், இந்த பொதுவான பிரச்சனை தீர்க்கப்படும், உங்கள் ஸ்கிரிப்ட் செயல்படும் மற்றும் உங்கள் அட்டவணையை சரியாக வடிவமைக்கும். உள்ளே நுழைவோம்!
| கட்டளை | பயன்பாட்டின் உதாரணம் |
|---|---|
| Range.ListFormat.ListLevelNumber | இது ஒரு பத்தியின் பட்டியல் அளவை மீட்டெடுக்கிறது, பல நிலை பட்டியலின் ஒரு பகுதியாக வடிவமைக்கப்பட்ட பத்திகளை ஸ்கிரிப்ட் அடையாளம் காண அனுமதிக்கிறது. |
| curRow.Range.Paragraphs | ஒரு அட்டவணையில் ஒரு குறிப்பிட்ட வரிசையில் உள்ள அனைத்து பத்திகளையும் அணுகவும். வரிசையாக உள்ளடக்கத்தை மீண்டும் மீண்டும் செய்ய பயனுள்ளதாக இருக்கும். |
| ReDim | ஒரு வரிசையின் அளவை மாறும் வகையில் மாற்றப் பயன்படுகிறது. இந்த ஸ்கிரிப்ட்டில், சேகரிக்கப்பட்ட பட்டியல் உருப்படிகளின் எண்ணிக்கையுடன் பொருந்த வரிசையை இது அனுமதிக்கிறது. |
| Randomize | சீரற்ற எண்களின் வெவ்வேறு வரிசைகளை உருவாக்க ரேண்டம் எண் ஜெனரேட்டரைத் துவக்குகிறது, ஒவ்வொரு முறையும் மாற்றப்பட்ட வெளியீடுகள் மாறுபடுவதை உறுதி செய்கிறது. |
| Int((upper - lower + 1) * Rnd + lower) | கொடுக்கப்பட்ட வரம்பில் சீரற்ற முழு எண்களை உருவாக்குவதற்கான சூத்திரம். பட்டியல் உருப்படிகளை தோராயமாக மாற்ற இது பயன்படுகிறது. |
| curRow.Range.InsertAfter | அட்டவணை வரிசையில் தற்போதைய வரம்பிற்குப் பிறகு நேரடியாக உரை அல்லது உள்ளடக்கத்தைச் செருகுகிறது, மாற்றப்பட்ட பட்டியல் உருப்படிகளை மீண்டும் சேர்க்க உதவுகிறது. |
| para.Range.Delete | குறிப்பிட்ட வரம்பு பொருளை நீக்குகிறது, இது இந்த ஸ்கிரிப்ட்டில் வரிசையிலிருந்து கடைசி பத்தியை அகற்றுவதை உறுதி செய்கிறது. |
| MsgBox | கருத்தை வழங்க அல்லது பயனரைத் தூண்டும் செய்தி பெட்டியைக் காட்டுகிறது. இங்கே, இது கர்சரை சரியாக நிலைநிறுத்த பயனரை எச்சரிக்கிறது. |
| Selection.Tables.Count | தற்போதைய தேர்வில் உள்ள அட்டவணைகளின் எண்ணிக்கையைக் கணக்கிடுகிறது. பயனரின் கர்சர் அட்டவணையில் உள்ளதா என்பதைச் சரிபார்க்கப் பயன்படுகிறது. |
| Set tbl = Selection.Tables(1) | தற்போதைய தேர்வில் முதல் அட்டவணையை மாறி tbl க்கு ஒதுக்குகிறது, இது அந்த அட்டவணையை மேலும் கையாள அனுமதிக்கிறது. |
செயல்முறையைத் திறக்கிறது: வேர்ட் டேபிள் வரிசைகளை நிர்வகிப்பதற்கான VBA
மைக்ரோசாஃப்ட் வேர்டில் அட்டவணைகளை நிர்வகிப்பதில் VBA ஸ்கிரிப்ட்கள் பொதுவான சிக்கலைச் சமாளிக்கின்றன: பிடிவாதத்தை எவ்வாறு அகற்றுவது கடைசி பத்தி நிலை 2 பல பட்டியல் உருப்படிகளை மாற்றியமைக்கும் போது ஒரு வரிசையில். முக்கிய தர்க்கம் ஒரு அட்டவணை வரிசையில் உள்ள பத்திகள் மூலம் திரும்பத் திரும்பச் சுழல்கிறது, சரியான பட்டியல் மட்டத்தில் உள்ளவற்றைக் கண்டறிதல் மற்றும் நீக்குதல், மறுசீரமைப்பு மற்றும் மறுஉருவாக்கம் போன்ற செயல்பாடுகளைச் செய்கிறது. பயனரின் கர்சர் அட்டவணையின் உள்ளே இருப்பதை உறுதி செய்வதன் மூலம் ஸ்கிரிப்ட் தொடங்குகிறது மற்றும் கையாளுதலுக்கான இலக்கு அட்டவணை மற்றும் வரிசையை துவக்குகிறது. ஸ்கிரிப்ட் செயல்படும் சூழலைச் சரிபார்ப்பதன் மூலம் இந்தப் படி பிழைகளைத் தவிர்க்கிறது. 📄
ஸ்கிரிப்ட் பின்னர் வரிசையின் பத்திகளை ஸ்கேன் செய்யும் லூப்பைப் பயன்படுத்தி நிலை 2 பட்டியல் உருப்படிகளை எண்ணி சேகரிக்கிறது. ஒவ்வொரு தகுதிப் பத்தியின் உரையும், இதைப் பயன்படுத்தி மாறும் மறுஅளவிடப்பட்ட வரிசையில் சேமிக்கப்படுகிறது ரெடிம் கட்டளை, நெகிழ்வான தரவு சேமிப்பிற்கான சக்திவாய்ந்த கருவி. இந்த மட்டு அணுகுமுறை மேலும் செயலாக்கத்தை எளிதாக்குவது மட்டுமல்லாமல், செயல்பாடுகள் தொடர்புடைய உள்ளடக்கத்துடன் மட்டுமே இருப்பதை உறுதி செய்கிறது. எடுத்துக்காட்டாக, அட்டவணை வரிசையில் பட்டியல் உருப்படிகளுடன் குறிப்புகள் இருந்தால், ஸ்கிரிப்ட் தொடர்பில்லாத தரவைப் புறக்கணிக்கும். இந்த விவரம் ஒரு சுத்தமான ஆவணக் கட்டமைப்பைப் பராமரிப்பதற்கு ஏற்றதாக அமைகிறது.
சேகரிக்கப்பட்ட பட்டியல் உருப்படிகளின் வரிசையை சீரற்றதாக மாற்ற, ஸ்கிரிப்ட் ஒரு கலவையைப் பயன்படுத்துகிறது ரேண்டமாஸ் அறிக்கை மற்றும் சீரற்ற குறியீடுகளை உருவாக்குவதற்கான தனிப்பயன் சூத்திரம். இது பட்டியல் உருப்படிகளை மாறும் வகையில் மாற்றுவதற்கு அனுமதிக்கிறது, ஒவ்வொரு செயலாக்கமும் தனித்துவமான முடிவுகளை அளிக்கிறது. மாற்றப்பட்டதும், உருப்படிகள் மீண்டும் அட்டவணை வரிசையில் மீண்டும் செருகப்படும் curRow.Range.InsertAfter. இந்தச் செயல்பாடு வரிசைக்கு உள்ளடக்கத்தை சேர்க்கிறது, ஆவணக் கட்டமைப்புகளை நேரடியாகக் கையாள VBA எவ்வாறு பயன்படுத்தப்படலாம் என்பதை விளக்குகிறது. ஒரு அறிக்கையில் செய்ய வேண்டிய பட்டியலை மறுசீரமைக்கிறீர்கள் என்று கற்பனை செய்து பாருங்கள் - இது விரைவானது மற்றும் திறமையானது! 🎲
இறுதிப் படியானது நீடித்த கடைசி பத்தி சிக்கலைக் குறிக்கிறது. குறிப்பாக கடைசி பத்தியை குறிவைத்து curRow.range.Paragraphs, ஸ்கிரிப்ட் அதை அணுகி நீக்குகிறது, டேபிள் வரிசையில் தேவையற்ற வெற்று இடம் இல்லை என்பதை உறுதி செய்கிறது. மெருகூட்டப்பட்ட ஆவண அமைப்பை சீர்குலைக்கும் எஞ்சியிருக்கும் தரவைக் கையாள்வதில் நிஜ உலக ஏமாற்றத்தை இந்தத் தீர்வு பிரதிபலிக்கிறது. எடுத்துக்காட்டாக, நீங்கள் ஒரு தொழில்முறை அறிக்கை அல்லது டெம்ப்ளேட்டை உருவாக்கினால், இந்த கூடுதல் பத்திகள் தொழில்சார்ந்ததாகத் தோன்றலாம். ஸ்கிரிப்ட் முடிவு சுத்தமாகவும், வழங்கக்கூடியதாகவும் இருப்பதை உறுதிசெய்கிறது, இது போன்ற நுணுக்கமான வடிவமைப்பு சவால்களை தடையின்றி கையாளும் VBA இன் ஆற்றலை எடுத்துக்காட்டுகிறது.
மைக்ரோசாஃப்ட் வேர்ட் VBA இல் கூடுதல் பத்திகளை அகற்றுவதைக் கையாளுதல்
இந்த தீர்வு ஒரு அட்டவணை வரிசையில் உள்ள கடைசி பத்தியை திறம்பட கையாளவும் அகற்றவும் VBA அணுகுமுறையை நிரூபிக்கிறது.
Sub RemoveLastParagraph()Dim tbl As TableDim curRow As RowDim para As Paragraph' Ensure the cursor is inside a tableIf Not Selection Is Nothing And Selection.Tables.Count > 0 ThenSet tbl = Selection.Tables(1)Set curRow = Selection.Rows(1)ElseMsgBox "Please place the cursor inside a table."Exit SubEnd If' Get the last paragraph in the current rowSet para = curRow.Range.Paragraphs(curRow.Range.Paragraphs.Count)' Remove the last paragraph's text and paragraph itselfpara.Range.Text = ""para.Range.DeleteEnd Sub
ஒரு அட்டவணை வரிசையில் பட்டியல் உருப்படிகளை மாற்றுதல் மற்றும் மீண்டும் செருகுதல்
இந்த தீர்வு நிலை-2 பட்டியல் உருப்படிகளை கலக்கவும் மீண்டும் செருகவும் செயல்பாட்டை சேர்க்கிறது, கடைசி பத்தியின் சரியான நிர்வாகத்தை உறுதி செய்கிறது.
Sub ShuffleAndRemoveLastParagraph()Dim tbl As TableDim curRow As RowDim para As ParagraphDim paras() As StringDim cnt As Integer, i As Integer, j As IntegerDim temp As String' Ensure the cursor is inside a tableIf Not Selection Is Nothing And Selection.Tables.Count > 0 ThenSet tbl = Selection.Tables(1)Set curRow = Selection.Rows(1)ElseMsgBox "Please place the cursor inside a table."Exit SubEnd If' Collect level-2 list itemscnt = 0For Each para In curRow.Range.ParagraphsIf para.Range.ListFormat.ListLevelNumber = 2 Thencnt = cnt + 1End IfNext paraReDim paras(1 To cnt)cnt = 0For Each para In curRow.Range.ParagraphsIf para.Range.ListFormat.ListLevelNumber = 2 Thencnt = cnt + 1paras(cnt) = para.Range.Textpara.Range.Text = ""End IfNext para' Shuffle itemsRandomizeFor i = 1 To cnt - 1j = Int((cnt - i + 1) * Rnd + i)temp = paras(i)paras(i) = paras(j)paras(j) = tempNext i' Reinsert shuffled itemsFor i = 1 To cntcurRow.Range.InsertAfter paras(i)Next i' Remove the last paragraphSet para = curRow.Range.Paragraphs(curRow.Range.Paragraphs.Count)para.Range.Text = ""para.Range.DeleteEnd Sub
கடைசி பத்தியை அகற்றுவதற்கான அலகு சோதனை
ஸ்கிரிப்ட் செயல்பாட்டிற்குப் பிறகு கடைசி பத்தி வெற்றிகரமாக அகற்றப்பட்டதை இந்தச் சோதனை உறுதிப்படுத்துகிறது.
Sub TestRemoveLastParagraph()Dim tbl As TableDim curRow As RowDim para As Paragraph' Test setup: Add a table with sample dataSet tbl = ActiveDocument.Tables.Add(Selection.Range, 2, 2)tbl.Cell(1, 1).Range.Text = "Item 1"tbl.Cell(1, 2).Range.Text = "Item 2"tbl.Cell(2, 1).Range.Text = "Last Paragraph"' Run the removal functionSet curRow = tbl.Rows(2)Call RemoveLastParagraph' Validate resultIf curRow.Range.Paragraphs.Count = 0 ThenMsgBox "Test Passed!"ElseMsgBox "Test Failed!"End IfEnd Sub
ஆழமான டைவ்: வேர்ட் VBA அட்டவணையில் பத்திகளை நிர்வகித்தல்
மைக்ரோசாஃப்ட் வேர்ட் VBA உடன் பணிபுரிவதில் அடிக்கடி கவனிக்கப்படாத ஒரு அம்சம் அட்டவணையில் உள்ள பத்தி வரம்புகளின் பங்கைப் புரிந்துகொள்வது. அட்டவணை வரிசையில் உள்ளடக்கத்தைச் சேர்க்கும்போது அல்லது கலக்கும்போது, பத்திகள் எவ்வாறு தொடர்பு கொள்கின்றன என்பதை நிர்வகிப்பது தந்திரமானதாக இருக்கும். உதாரணமாக, ஒரு பத்தி ஒரு பட்டியலின் ஒரு பகுதியாக இருந்தால், அது பட்டியல் நிலைகள், எண்ணிடுதல் மற்றும் வடிவமைத்தல் போன்ற மெட்டாடேட்டாவைக் கொண்டுள்ளது. போன்ற பண்புகளை மேம்படுத்துவதன் மூலம் பட்டியல் நிலை எண், நிலை-2 பட்டியல் உருப்படிகளுடன் நாங்கள் பார்த்தது போல, செயலாக்கத்திற்கான குறிப்பிட்ட கூறுகளை நீங்கள் தனிமைப்படுத்தலாம். துல்லியமான வடிவமைப்புத் தேவைகளுக்கு ஏற்றவாறு மாறும் மற்றும் பதிலளிக்கக்கூடிய ஸ்கிரிப்ட்களை உருவாக்க இந்த சிறுமணிக் கட்டுப்பாடுகள் VBA டெவலப்பர்களுக்கு அதிகாரம் அளிக்கின்றன. 📋
மற்றொரு முக்கியமான அம்சம், ஒரு வரிசையின் வரம்புக்கும் அதன் தனிப்பட்ட பத்திகளுக்கும் இடையே உள்ள வேறுபாடு ஆகும். வரம்பு வரிசையில் உள்ள அனைத்து உள்ளடக்கத்தையும் உள்ளடக்கியது, ஆனால் பத்திகள் அதை நிர்வகிக்கக்கூடிய பிரிவுகளாகப் பிரிக்கின்றன. உள்ளடக்கத்தை மாற்றும் போது இது மிகவும் முக்கியமானது, ஏனெனில் பத்திகளைக் கருத்தில் கொள்ளாமல் வரம்பைக் குறிப்பிடுவது எதிர்பாராத மாற்றங்களுக்கு வழிவகுக்கும். டெவலப்பர்கள் அடிக்கடி பயன்படுத்துகின்றனர் curRow.range.Paragraphs வரிசையின் தொடர்பற்ற பிரிவுகளை பாதிக்காமல், பத்திகள் மூலம் மீண்டும் கூறவும் மற்றும் துல்லியமான திருத்தங்களை செய்யவும். தொழில்முறை அறிக்கைகள் அல்லது டெம்ப்ளேட்களில் நிலையான ஆவண வடிவமைப்பை பராமரிக்க இது மிகவும் பயனுள்ளதாக இருக்கும்.
கடைசியாக, வெற்றுப் பத்திகள் போன்ற எட்ஜ் கேஸ்களைக் கையாள்வதில் கவனமாக கவனம் தேவை. VBA இல், போன்ற கட்டளைகள் பாரா.ரேஞ்ச்.நீக்கு தவறாகப் பயன்படுத்தினால் சில நேரங்களில் தோல்வியடையும், வெற்று கட்டமைப்புகளை விட்டுச் செல்கிறது. ஒரு நடைமுறை தீர்வானது, பத்தியின் உரையை நீக்குவதற்கு முன், எஞ்சிய தரவு எதுவும் ஆவண ஓட்டத்தை சீர்குலைக்காமல் இருப்பதை உறுதி செய்வதாகும். எடுத்துக்காட்டாக, மாற்றியமைக்கப்பட்ட பணிப் பட்டியலில், கடைசி வரிசை சுத்தமாக இருப்பதை உறுதிசெய்து, மெருகூட்டப்பட்ட இறுதித் தயாரிப்பை வழங்குவதற்கு தொழில்முறை முக்கியமானது. இந்த சிறிய ஆனால் குறிப்பிடத்தக்க சரிசெய்தல் ஆவண ஆட்டோமேஷனுக்கான VBA இன் பல்துறைத்திறனை எடுத்துக்காட்டுகிறது. ✨
VBA இல் வேர்ட் டேபிள் வரிசைகளை நிர்வகிப்பது பற்றிய அத்தியாவசிய கேள்விகள்
- அட்டவணை வரிசையில் குறிப்பிட்ட பத்திகளை எவ்வாறு அடையாளம் காண்பது?
- பயன்படுத்தவும் curRow.Range.Paragraphs ஒரு வரிசையில் உள்ள அனைத்து பத்திகளையும் அணுக. இதனுடன் இணைக்கவும் ListFormat.ListLevelNumber குறிப்பிட்ட பட்டியல் நிலைகளை குறிவைக்க.
- பட்டியல் உருப்படிகளை மாற்றுவதற்கான சிறந்த வழி எது?
- பட்டியல் உருப்படிகளை ஒரு வரிசையில் சேமித்து, அவற்றை ஒரு சீரற்ற குறியீட்டு சூத்திரத்துடன் மாற்றி, அவற்றைப் பயன்படுத்தி மீண்டும் செருகவும் curRow.Range.InsertAfter.
- ஏன் செய்கிறது para.Range.Delete சில நேரங்களில் தோல்வி?
- பத்தி காலியாக இல்லாவிட்டால் இந்தக் கட்டளை எஞ்சிய கட்டமைப்புகளை விட்டுச் செல்லக்கூடும். உடன் உரையை அழிக்கவும் para.Range.Text = "" முதலில் முழு நீக்கத்தை உறுதி செய்ய வேண்டும்.
- எனது ஸ்கிரிப்ட் டேபிளுக்குள் மட்டுமே செயல்படுவதை உறுதி செய்வது எப்படி?
- உடன் சரிபார்க்கவும் Selection.Tables.Count வரிசை-குறிப்பிட்ட கட்டளைகளை இயக்கும் முன் கர்சர் அட்டவணையில் இருப்பதை உறுதிசெய்ய.
- மற்ற வரிசை உள்ளடக்க வகைகளை நான் கையாள முடியுமா?
- ஆம், பயன்படுத்தவும் curRow.Range பொதுவான உள்ளடக்க மாற்றங்களுக்கு அல்லது புக்மார்க்குகள் மற்றும் புலங்கள் போன்ற குறிப்பிட்ட கூறுகளை அணுகவும்.
வேர்ட் டேபிள் மேனேஜ்மென்ட்டை நெறிப்படுத்துவதற்கான இறுதி எண்ணங்கள்
VBA உடன் வேர்ட் டேபிள்களில் உள்ள பத்திகள் மற்றும் பட்டியலிடப்பட்ட உருப்படிகளை எவ்வாறு கையாள்வது என்பதைப் புரிந்துகொள்வது, வடிவமைப்பு பணிகளை தானியக்கமாக்குவதற்கான கேம்-சேஞ்சராகும். அகற்றுவதில் இருந்து கடைசி பத்தி பட்டியல் நிலைகளைக் கையாள, இந்தத் தீர்வுகள் செயல்பாடு மற்றும் விளக்கக்காட்சி இரண்டையும் மேம்படுத்துகின்றன. 🚀
நீங்கள் தொழில்முறை ஆவணங்களை உருவாக்கினாலும் அல்லது மீண்டும் மீண்டும் திருத்தங்களை எளிதாக்கினாலும், இந்த நுட்பங்கள் சுத்தமான, மீண்டும் பயன்படுத்தக்கூடிய அணுகுமுறையை வழங்குகின்றன. VBA இன் கருவிகள் மற்றும் பண்புகளை கவனமாகப் பயன்படுத்துவதன் மூலம், ஒவ்வொரு முறையும் மெருகூட்டப்பட்ட, பிழையற்ற முடிவுகளை உருவாக்க ஸ்கிரிப்ட்களைத் தனிப்பயனாக்கலாம். ✍️
VBA அட்டவணை மேலாண்மைக்கான ஆதாரங்கள் மற்றும் குறிப்புகள்
- உள்ளடக்கம் மற்றும் எடுத்துக்காட்டுகள் அதிகாரப்பூர்வ Microsoft Word VBA ஆவணத்தால் ஈர்க்கப்பட்டன. இல் மேலும் அறிக Microsoft Word VBA குறிப்பு .
- பத்தி கையாளுதல் பற்றிய கூடுதல் நுண்ணறிவு சமூக மன்றங்களில் இருந்து பெறப்பட்டது. விவாதங்களைப் பார்க்கவும் ஸ்டாக் ஓவர்ஃப்ளோ - வேர்ட் VBA .
- அட்டவணை ஆட்டோமேஷன் மற்றும் VBA ஸ்கிரிப்டிங்கிற்கான சிறந்த நடைமுறைகள் நிரலாக்கப் பயிற்சிகளில் இருந்து குறிப்பிடப்பட்டுள்ளன. VBA எக்ஸ்பிரஸ் .