ورڈ میں بیرونی فائل کی فہرست سے تلاش و تبدیل میں مدد درکار ہے

زہیر عبّاس

محفلین
مجھے ایک ایسا میکرو درکار ہے جو کسی ورڈ کی فائل میں موجود الفاظ کو ایک دوسری ورڈ کی فائل میں تلاش کرے اور دوسری ورڈ کی فائل میں موجود الفاظ کے سامنے موجود لفظ سے اس کو بدل دے۔ مثلاً اگر کہیں Einstein لکھا ہوا ہے تو یہ اس بیرونی فائل میں Einstein کو تلاش کرے اور اس کے آگے موجود لفظ سے بدل دے۔ فرض کریں کہ اس کے آگے موجود لفظ "آئن سٹائن" ہے تو یہ انگریزی کے لفظ Einstein کو اردو کے لفظ آئن سٹائن سے بدل دے۔

یہاں پر ایک میکرو دیا ہوا ہے جو فائل میں سے الفاظ تلاش کرکے ان کو ہائی لائٹ کر دیتا ہے۔ مجھے ہائی لائٹ کے بجائے اس لفظ کے برابر والا لفظ تبدیل کروانا ہے ۔ کیا کوئی اس سلسلے میں مدد کر سکتا ہے؟
 

اسد

محفلین
میں مدد تو نہیں کر سکتا کیونکہ VBA پر کام نہیں کیا۔ لیکن میں سمجھ نہیں سکا کہ کس لفظ کو کس دوسرے لفظ سے بدلنا ہے۔ اگر آپ فائلوں کو نام دے کر ان کے متن کی مثالیں دیں اور پھر سوال پوچھیں تو شاید آپ کو بہتر جواب مل سکے گا۔
 

زہیر عبّاس

محفلین
تجویز دینے کا شکریہ اسد!
میں اپنی بات کو آپ کے دیئے ہوئے مشورے کی روشنی میں بیان کرنے کی کوشش کرتا ہوں۔
فرض کیجئے کہ میرے پاس ایک مائیکروسافٹ ورڈ کی فائل موجود ہے جس کا متن کچھ اس طرح سے ہے۔ اس فائل کو نام دے دیتا ہوں فائل نمبر ایک:
Bada, J.; Glavin, DP; McDonald, GD; Becker, L (1998). "A Search for Endogenous Amino Acids in Martian Meteorite AL84001". Science279 (5349): 362–365.

اب میرے پاس ایک دوسری فائل ہے جس کو میں نام دے دیتا ہوں فائل نمبر دو ۔ اس فائل کی صورت کچھ یوں ہوگی:

Bada=بادا
J.= جے
Glavin = گلوین
D= ڈی
P = پی

McDonald= مکڈونلڈ
G=، جی

Becker= بیکر،
L= ایل


اب جب میں ورڈ میں فائل نمبر ایک کو کھولوں اور میکرو چلاؤں تو مجھے اس میں موجود یہ لائن
Bada, J.; Glavin, DP; McDonald, GD; Becker, L
کچھ اس طرح تبدیل ہو کر مل سکے۔
بادا، جے؛ گلوین، ڈی پی؛ مکڈونلڈ، جی ڈی؛ بیکر، ایل

امید ہے کہ میں اپنی بات کو سمجھا پایا ہوں گا۔

 

زہیر عبّاس

محفلین
دیے گئے میکرو میں
Replacement.Text = "^&"
^& کی جگہ اپنا ٹیکسٹ لکھ لیں۔ اور اگر بولڈ نہیں کرنا تو جہاں Bold = true ہے، اس کو فالس کر دیں۔

بہت شکریہ جناب!
مزید معلوم یہ کرنا ہے کہ کیا ^& خود فائل سے نہیں اٹھ سکتا کیا؟ کیونکہ اس طرح تو مجھے ہر بار ٹیکسٹ خود سے لکھنا پڑے گا۔ میں چاہتا ہوں کہ ایک فہرست بنا لوں تاکہ اس میں بار بار استعمال ہونے والے انگریزی ناموں کی نقل صوتی (ٹرانسلٹریشن) ان کے اصل ناموں کے ساتھ لکھ لوں اور جب میں یہ میکرو چلاؤں تو انگریزی نام کے آگے والا نام اس کی جگہ اٹھ کر آجائے جیسا کہ میں نے اوپر بیان کیا ہے یعنی کچھ اس طرح
Bada=بادا
J.= جے
Glavin = گلوین
D= ڈی
P = پی

McDonald= مکڈونلڈ
G=، جی

Becker= بیکر،
L= ایل

برائے کرم اگر میں نے کوئی بیوقوفانہ بات کردی ہو تو در گزر کردیجئے گا کیونکہ میں پروگرامنگ کی الف بے سے بھی واقف نہیں ہوں۔
 
بہتر ہے کہ آپ ورڈ لسٹ کے لئے ایکسل فائل استعمال کریں۔
اس کے لئے یہاں دیا گیا میکرو غالباً آپ کا مسئلہ حل کر دے گا۔
David Zemens کا جواب دیکھیں
http://stackoverflow.com/questions/23408568/find-and-replace-multiple-words-in-word-from-excel-list
اہم نکتہ یہ ہے کہ آپ نے پہلے کالم میں لفظ اور دوسرے کالم میں اس کا متبادل لکھنا ہے۔
یعنی A کالم میں لفظ اور B کالم میں متبادل
 
بہت شکریہ جناب!
مزید معلوم یہ کرنا ہے کہ کیا ^& خود فائل سے نہیں اٹھ سکتا کیا؟ کیونکہ اس طرح تو مجھے ہر بار ٹیکسٹ خود سے لکھنا پڑے گا۔ میں چاہتا ہوں کہ ایک فہرست بنا لوں تاکہ اس میں بار بار استعمال ہونے والے انگریزی ناموں کی نقل صوتی (ٹرانسلٹریشن) ان کے اصل ناموں کے ساتھ لکھ لوں اور جب میں یہ میکرو چلاؤں تو انگریزی نام کے آگے والا نام اس کی جگہ اٹھ کر آجائے جیسا کہ میں نے اوپر بیان کیا ہے یعنی کچھ اس طرح


برائے کرم اگر میں نے کوئی بیوقوفانہ بات کردی ہو تو در گزر کردیجئے گا کیونکہ میں پروگرامنگ کی الف بے سے بھی واقف نہیں ہوں۔
میرا اگلا جواب ملاحظہ کر لیں۔
بیوقوفانہ بات کیسی، میں نے خود آپ کے سوال سے یہ چیز سیکھی ہے۔ :)
 

زہیر عبّاس

محفلین
بہت شکریہ! اصل میں پہلی مرتبہ کسی میکرو کو چلانے کی کوشش کررہا ہوں لہٰذا انٹرنیٹ پر تلاش جاری ہے کہ میکرو لکھا کیسے جاتا ہے۔ اگر لکھ لیا گیا اور صحیح طور سے کام کرگیا تو بھی یہاں بتا دوں گا ورنہ پھر سے آپ لوگوں کی مدد درکار ہوگی۔
 

زہیر عبّاس

محفلین
گریگری کے میکسی کی سائٹ پر VBA Find & Replace ٹمپلیٹ موجود ہے، اسے استعمال کر کے دیکھیں۔ ورڈلسٹ ایکسل یا ورڈ میں ہو سکتی ہے۔
یہ ٹیمپلیٹ میں نے ڈاؤنلوڈ کرکے چلایا تو search and replace میں VBA replace کا بٹن تو آگیا
Macro 1 by Zonnee, on Flickr
تاہم جب اس کو چلاتا ہوں تو یہ error دیتا ہے
Macro 2 by Zonnee, on Flickr
میں نے میکرو سیٹنگ میں جاکر اس کو enable بھی کروا دیا
Macro 3 by Zonnee, on Flickr>
تب بھی نہیں چلا پھر مزید templates and add ins میں بھی اس کو add کروا دیا
Macro 4 by Zonnee, on Flickr
تاہم پھر بھی نہیں چل سکا.

کوئی حل ہو تو بتائیں۔
 
جی، میکرو میں ایرر تھے، میں نے وقت ملنے پر ابھی ٹھیک کر دیا ہے۔

کوڈ:
Sub Main()
Dim xl As Object 'Excel.Application
Dim wb As Object 'Excel.Workbook
Dim ws As Object 'Excel.Worksheet
Dim rng As Object 'Excel.Range
Dim cl As Object  'Excel.Range
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open("D:\list.xlsx") '## Modify as needed
Set ws = wb.Sheets(1) '##Modify as needed
Set rng = ws.Range("a1:a2")
For Each cl In rng
    Call Macro5(cl.Value, cl.Offset(0, 1).Value)
Next
End Sub

Sub Macro5(findText$, replaceText$)
'
' Macro5 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = findText
        .Replacement.Text = replaceText
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.Execute
End Sub

ایکسل فائل کے کالم اے میں الفاظ رکھیں اور کالم بی میں ان کے متبادل۔
a1:a2 میں a2 کی جگہ آخری لفظ کا کالم نمبر لکھیں۔
 

زہیر عبّاس

محفلین
محمد تابش صدیقی صاحب زبردست !
یہ میکرو میں نے استعمال کیا کام کررہا ہے۔ ابھی میں نے صرف ایک ہی لفظ سے تجربہ کیا ہے۔ بہت بہت شکریہ ۔۔۔۔ میرا ایک بڑا مسئلہ اس سے حل ہوتا نظر آرہا ہے۔
اب صرف اتنا بتا دیں کہ VB میں جائے بغیر اس میکرو کو کیسے چلا سکتا ہوں۔
 

متلاشی

محفلین
محمد تابش صدیقی صاحب زبردست !
یہ میکرو میں نے استعمال کیا کام کررہا ہے۔ ابھی میں نے صرف ایک ہی لفظ سے تجربہ کیا ہے۔ بہت بہت شکریہ ۔۔۔۔ میرا ایک بڑا مسئلہ اس سے حل ہوتا نظر آرہا ہے۔
اب صرف اتنا بتا دیں کہ VB میں جائے بغیر اس میکرو کو کیسے چلا سکتا ہوں۔
آپ میکروز کو شارٹ کٹ کی اسائن کر سکتے ہیں اس کے علاوہ کسی ٹول بار پر رکھ کر سنگل کلک کے ساتھ چلا سکتے ہیں
 

زہیر عبّاس

محفلین
اب ایک مسئلہ اور آرہا ہے جس ایکسل فائل میں ورڈ کی لسٹ ڈالی ہے وہ میکرو اور ورڈ کی فائل کو بند کرنے کے بعد بھی read only ہی کھل رہی ہے۔ یعنی مزید الفاظ کم از کم اس فائل میں سیو نہیں ہو پا رہے اس کے لئے مجھے ایک نئی فائل بنانی پڑ رہی ہے اور پھر اس کو پاتھ میکرو میں define کرنا پڑرہا ہے۔ اس کا کوئی حل نکل سکتا ہے؟
 
اب ایک مسئلہ اور آرہا ہے جس ایکسل فائل میں ورڈ کی لسٹ ڈالی ہے وہ میکرو اور ورڈ کی فائل کو بند کرنے کے بعد بھی read only ہی کھل رہی ہے۔ یعنی مزید الفاظ کم از کم اس فائل میں سیو نہیں ہو پا رہے اس کے لئے مجھے ایک نئی فائل بنانی پڑ رہی ہے اور پھر اس کو پاتھ میکرو میں define کرنا پڑرہا ہے۔ اس کا کوئی حل نکل سکتا ہے؟
فائل کی پراپرٹیز میں جا کر ریڈ اونلی کو ان چیک کر دیں۔
 

زہیر عبّاس

محفلین
فائل کی پراپرٹیز تو ٹھیک ہیں۔
بہرحال اب دوبارہ کھول رہا ہوں تو ٹھیک کھل رہی ہے معلوم نہیں کیا مسئلہ ہوگیا تھا۔
 
Top