এক্সেল 2010 ম্যাক্রোর সাবস্ক্রিপ্ট / সুপারস্ক্রিপ্ট হটকি?


3

পটভূমি

এক্সেল ২০১০-তে, কিছু হাস্যকর কারণে, কোনও পাঠ্য কক্ষের মধ্যে সাবস্ক্রিপশন / সুপারস্ক্রিপ্টিং পাঠের জন্য কোনও বিল্ট-ইন হটকি (বা সরঞ্জামদণ্ডে একটি বোতাম এমনকি) নেই।

তবে আপনি পাঠ্যটি হাইলাইট করতে পারেন , নির্বাচনটি ডান-ক্লিক করতে পারেন, ক্লিক করতে পারেন formatএবং তারপরে [x] subscriptবা [x] superscriptচেকবক্সটি চেক করতে পারেন।

প্রশ্ন

সাবস্ক্রিপ্ট এবং সুপারস্ক্রিপ্ট কীগুলিতে দুটি কীবোর্ড হটকি ম্যাপ করার জন্য কি কোনও ধরণের এক্সেল ম্যাক্রো বা ওয়ার্কআরাউন্ডস রয়েছে?

(এটি কেবল দুটি লাইনের কোডের মতো হওয়া উচিত - একটি ইভেন্ট হ্যান্ডলারের জন্য এবং একটি আসল পদ্ধতি কলের জন্য ... আমি নিজেই লিখতে পারি তবে আমার ভিবিএ সবচেয়ে মরিচা, সর্বোপরি, এবং আমি সম্ভবত যথেষ্ট আত্মবিশ্বাসী সার্চ ইঞ্জিনের মাধ্যমে একটি খুঁজে পেতে আমার অক্ষমতা থাকা সত্ত্বেও ইতিমধ্যে এক ধরণের সমাধান)

যেকোন ধরনের সাহায্যের জন্য তোমাকে ধন্যবাদ!


এমএস ওয়ার্ডের আসলে এটির জন্য একটি শর্টকাট কী আছে ... আমি জানি না কেন তারা এটি ভেবেছিল না যে এটি এক্সেলে কার্যকর হবে। (যার মধ্যে লোকেরা ভেরিয়েবলের নাম ইত্যাদির জন্য সাবস্ক্রিপ্ট / সুপারস্ক্রিপ্টগুলি ব্যবহার করে)
অ্যাডাম

উত্তর:


5

আমি সাধারণত যে ওয়েবসাইটগুলি এগুলি পাই সেগুলি আমি সংরক্ষণ করি তবে বহু বছর আগে ফোরামের কাছ থেকে আমি এই কোডটির বেশিরভাগ অংশ নিয়েছি ... আমি এই ম্যাক্রোটিকে হটকিতে সেট করার পরামর্শ দিচ্ছি। উপরের মন্তব্যগুলি স্ব-ব্যাখ্যামূলক হওয়া উচিত

    Sub Super_Sub()
'
' Keyboard Shortcut: Ctrl+Shift+D
'
' If the characters are surrounded by "<" & ">" then they will be subscripted
' If the characters are surrounded 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
'
NumSub = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "<", ""))
    NumSuper = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "{", ""))
'
If Len(aCell) = 0 Then Exit Sub
If IsError(Application.Find("<", ActiveCell, 1)) = False Then
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
'
'
If IsError(Application.Find("{", ActiveCell, 1)) = False Then
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

1
কিছুটা বিশদভাবে জানাতে ... যদি ঘরে "T <e> st {i {ng M <a> c {r} o" লেখাটি থাকে এবং তারপরে ঘরটি নির্বাচিত হওয়ার সময় ম্যাক্রোটি চালিত হয়, এটি "e" এবং "এ" সাবস্ক্রিপশন হবে, যখন "আই" এবং "আর" সুপারিশ করা হবে
ম্যাটিবি

একটি যুক্ত বোনাস হিসাবে ... বা হতে পারে অকেজো প্র্যাটিলিং ... এক্সেল থেকে পাওয়া অন্য একটি ক্রিয়াকলাপ যা ওয়ার্ডে বিদ্যমান ... সাব প্রোফাইলে_ক্যাস () '' এটি কোষের বড় আকারের কোনও নির্বাচনের মধ্যে পাঠ্যের প্রথম অক্ষর তৈরি করবে। 'নির্বাচন x.Value = Application.Proper (x.Value) পরবর্তী শেষ উপ প্রতিটি x এর জন্য
MattyB

2

আমি কেবল স্কটস দ্বারা সরবরাহিত কোডটিতে যুক্ত করেছি যাতে "^" বা "_" অক্ষর পূর্বের ব্যবহার করতে পারা যায়। মনে রাখবেন যে আপনি যদি এই অক্ষরগুলি ব্যবহার করেন তবে নিম্নলিখিত সমস্ত অক্ষরগুলি সাব / সুপার-স্ক্রিপ্টযুক্ত হবে। উদাহরণস্বরূপ, 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

0

ধরে নিচ্ছেন যে আপনি পাঠ্যটি ঘরের মধ্যে হাইলাইট করতে চান, এবং কেবলমাত্র নির্বাচিত পাঠ্য নয়, আপনি যা চান হটকি এবং নিম্নলিখিত ভিবিএ সহ একটি ম্যাক্রো তৈরি করুন:

ActiveCell.Font.Superscript = True

0

এখানে এমন কিছু কোড রয়েছে যা আপনি সুপার-বা সাব-স্ক্রিপ্ট করতে চান এমন কোনও অক্ষরের আগে "^" বা "_" এর জন্য কাজ করবে। এটি কেবল "^" বা "_" অনুসরণ করে একটি একক অক্ষরকে সুপারস্ক্রিপ্ট বা সাবস্ক্রিপ্ট করবে, যা আমি উভয় পক্ষকে বন্ধনীর চেয়ে কম সময় ব্যয়কারী বলে মনে করেছি। ভেবেছিলাম ভাগ করে নিই! :)

Sub sscript()
'
' sscript Macro
'
' Keyboard Shortcut: Ctrl+Shift+G
'
' If the characters are surrounded by "<" & ">" then they will be subscripted
' If the characters are surrounded 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
'
NumSub = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "_", ""))
    NumSuper = Len(aCell) - Len(Application.WorksheetFunction.Substitute(aCell, "^", ""))
'
If Len(aCell) = 0 Then Exit Sub
If IsError(Application.Find("_", ActiveCell, 1)) = False Then
Do
    Do While CounterSub <= 1000
        SubL = InStr(1, ActiveCell, "_", vbTextCompare)
        SubR = InStr(1, ActiveCell, "_", vbTextCompare) + 1
        ActiveCell.Characters(SubL, 1).Delete
        ActiveCell.Characters(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
'
'
If IsError(Application.Find("^", ActiveCell, 1)) = False Then
Do
    Do While CounterSuper <= 1000
        SuperL = InStr(1, ActiveCell, "^", vbTextCompare)
        SuperR = InStr(1, ActiveCell, "^", vbTextCompare) + 1
        ActiveCell.Characters(SuperL, 1).Delete
        ActiveCell.Characters(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

-1

আপনি "কক্ষ সম্পাদনা মোড" (CFR একটি ম্যাক্রো যখন চালানো যাবে না। Http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/3333e18b-cef3-4d78-b47a-6916a1b2d84c/ )। এছাড়াও, এর মতো কিছু করার জন্য কোনও ফিতা বোতাম নেই। আপনার একমাত্র সুযোগটি এই ইউটিলিটি বলে মনে হচ্ছে: http://www.panuworld.net/utils/excel/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.