আমি কেবল স্কটস দ্বারা সরবরাহিত কোডটিতে যুক্ত করেছি যাতে "^" বা "_" অক্ষর পূর্বের ব্যবহার করতে পারা যায়। মনে রাখবেন যে আপনি যদি এই অক্ষরগুলি ব্যবহার করেন তবে নিম্নলিখিত সমস্ত অক্ষরগুলি সাব / সুপার-স্ক্রিপ্টযুক্ত হবে। উদাহরণস্বরূপ, Q_in (m ^ 3 / s) সঠিকভাবে প্রদর্শিত হবে না, আপনাকে এর জন্য স্কটসের সিনট্যাক্সটি ব্যবহার করতে হবে: Q <in> (m {3} / s)। এখানে কোড স্কটস সিনট্যাক্সের জন্য কাজ করবে তবে "_" এবং "^" বিকল্পগুলি যেমন Q_in বা Q_supply গ্যাস যেখানে "সরবরাহকারী গ্যাস" সাবস্ক্রিপশন রয়েছে তা অন্তর্ভুক্ত রয়েছে।
যারা ম্যাক্রোর সাথে অপরিচিত তাদের জন্য: আপনার যদি এক্সেলের কোনও "বিকাশকারী" ট্যাব না থাকে তবে আপনাকে এটি সক্ষম করতে হবে এবং ম্যাক্রো-সক্ষম ওয়ার্কশিট হিসাবে ওয়ার্কশিট সংরক্ষণ করতে হবে। অফিস বোতাম (উপরের বাম সার্কুলার বোতাম)> নীচের ডানদিকে "এক্সেল বিকল্পগুলি" ক্লিক করুন> "জনপ্রিয়" ট্যাবটি দেখুন "ফিতাতে বিকাশকারী ট্যাব দেখান"
তারপরে আপনাকে এই ম্যাক্রো যুক্ত করতে হবে: "Alt + F11" তারপরে "Inোকান"> "মডিউল" এবং নীচের কোডটি আটকে দিন। আপনি স্প্রেডশিট দেখার সময় "Alt + F8" টিপুন বা "বিকাশকারী" ট্যাবে "ম্যাক্রোস" বোতামে ক্লিক করে একটি কীবোর্ড শর্টকাট সেট করতে পারেন। এই ম্যাক্রোটি (সুপার_সুব_মড) নির্বাচন করুন / হাইলাইট করুন এবং "বিকল্পগুলি ..." এ ক্লিক করুন যেখানে আপনি বক্সে "j" টাইপ করে "Ctrl" যেমন "Ctrl" দিয়ে শুরু করে একটি শর্টকাট সেট করতে পারেন।
পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে করা হয় না কারণ আপনার সঠিক বাক্য গঠন রয়েছে। "_" "^" "{" {পাঠ্য} "" <টেক্সট> "সিনট্যাক্সের সাথে লিখে ম্যাক্রো চালানোর পরে আপনাকে অবশ্যই পৃথক বা একাধিক ঘর নির্বাচন করতে হবে।
Sub Super_Sub_mod()
'
' Keyboard Shortcut: set in "options" of macro window (alt+F8 in spreadsheet view)
'
' If the characters are preceded by an underscore "_" then they will be subscripted
' If the characters are preceded by "^" then they will be superscripted
'
Dim NumSub
Dim NumSuper
Dim SubL
Dim SubR
Dim SuperL
Dim SuperR
Dim CheckSub, CheckSuper As Boolean
Dim CounterSub, CounterSuper As Integer
Dim aCell, CurrSelection As Range
For Each c In Selection
c.Select
CheckSub = True
CounterSub = 0
CheckSuper = True
CounterSuper = 0
aCell = ActiveCell
'
'Subscripts
'all following "_"
If Len(aCell) = 0 Then Exit Sub
If IsError(Application.Find("_", ActiveCell, 1)) = False Then
NumSub = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "_", ""))
Do
Do While CounterSub <= 1000
SubL = Application.Find("_", ActiveCell, 1)
SubR = Len(ActiveCell)
ActiveCell.Characters(SubL, 1).Delete
ActiveCell.Characters(SubL, SubR - SubL).Font.subscript = True
CounterSub = CounterSub + 1
If CounterSub = NumSub Then
CheckSub = False
Exit Do
End If
Loop
Loop Until CheckSub = False
End If
'select region "<text>"
If IsError(Application.Find("<", ActiveCell, 1)) = False Then
NumSub = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "<", ""))
Do
Do While CounterSub <= 1000
SubL = Application.Find("<", ActiveCell, 1)
SubR = Application.Find(">", ActiveCell, 1)
ActiveCell.Characters(SubL, 1).Delete
ActiveCell.Characters(SubR - 1, 1).Delete
ActiveCell.Characters(SubL, SubR - SubL - 1).Font.subscript = True
CounterSub = CounterSub + 1
If CounterSub = NumSub Then
CheckSub = False
Exit Do
End If
Loop
Loop Until CheckSub = False
End If
'
'Superscripts
'all following "_"
If IsError(Application.Find("^", ActiveCell, 1)) = False Then
NumSuper = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "^", ""))
Do
Do While CounterSuper <= 1000
SuperL = Application.Find("^", ActiveCell, 1)
ActiveCell.Characters(SuperL, 1).Delete
ActiveCell.Characters(SuperL, SuperR - SuperL).Font.Superscript = True
CounterSuper = CounterSuper + 1
If CounterSuper = NumSuper Then
CheckSuper = False
Exit Do
End If
Loop
Loop Until CheckSuper = False
End If
'select region "{text}"
If IsError(Application.Find("{", ActiveCell, 1)) = False Then
NumSuper = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "{", ""))
Do
Do While CounterSuper <= 1000
SuperL = Application.Find("{", ActiveCell, 1)
SuperR = Application.Find("}", ActiveCell, 1)
ActiveCell.Characters(SuperL, 1).Delete
ActiveCell.Characters(SuperR - 1, 1).Delete
ActiveCell.Characters(SuperL, SuperR - SuperL - 1).Font.Superscript = True
CounterSuper = CounterSuper + 1
If CounterSuper = NumSuper Then
CheckSuper = False
Exit Do
End If
Loop
Loop Until CheckSuper = False
End If
Next
End Sub