যখন একাধিক অ্যাড-ইনগুলি ফিতাটি সংশোধন করার চেষ্টা করেছিল তখন আমি রই-কি ব্রায়ান্টের সমাধান নিয়ে সমস্যার সম্মুখীন হয়েছিল। আমার ওয়ার্ক-কম্পিউটারে অ্যাডমিন অ্যাক্সেসও নেই, যা ইনস্টল করার বিষয়টি অস্বীকার করে Custom UI Editor
। সুতরাং, যদি তুমি আমাকে যেমন একই নৌকা করছি, এখানে একটি বিকল্প এর উদাহরণ পটি শুধুমাত্র এক্সেল ব্যবহার কাস্টমাইজ করতে। দ্রষ্টব্য, আমার সমাধানটি মাইক্রোসফ্ট গাইড থেকে প্রাপ্ত ।
- এক্সেল ফাইল / ফাইলগুলি তৈরি করুন যার ফিতা আপনি কাস্টমাইজ করতে চান। আমার ক্ষেত্রে, আমি দুটি
.xlam
ফাইল তৈরি করেছি Chart Tools.xlam
এবং Priveleged UDFs.xlam
একাধিক অ্যাড-ইনগুলি কীভাবে রিবনের সাথে ইন্টারেক্ট করতে পারে তা দেখানোর জন্য।
- আপনার সদ্য তৈরি করা প্রতিটি ফাইলের জন্য যে কোনও ফোল্ডারের নাম সহ একটি ফোল্ডার তৈরি করুন ।
- আপনার তৈরি প্রতিটি ফোল্ডারের ভিতরে একটি
customUI
এবং _rels
ফোল্ডার যুক্ত করুন।
- প্রতিটি
customUI
ফোল্ডারের ভিতরে একটি customUI.xml
ফাইল তৈরি করুন। customUI.xml
ফাইল বিবরণ কিভাবে এক্সেল পটি সাথে ইন্টারঅ্যাক্ট ফাইল। মাইক্রোসফ্ট গাইডের পার্ট 2customUI.xml
ফাইলের উপাদানগুলিকে coversেকে দেয় ।
আমার customUI.xml
ফাইলটি এর Chart Tools.xlam
মতো দেখতে
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="sao">
<ribbon>
<tabs>
<tab idQ="x:chartToolsTab" label="Chart Tools">
<group id="relativeChartMovementGroup" label="Relative Chart Movement" >
<button id="moveChartWithRelativeLinksButton" label="Copy and Move" imageMso="ResultsPaneStartFindAndReplace" onAction="MoveChartWithRelativeLinksCallBack" visible="true" size="normal"/>
<button id="moveChartToManySheetsWithRelativeLinksButton" label="Copy and Distribute" imageMso="OutlineDemoteToBodyText" onAction="MoveChartToManySheetsWithRelativeLinksCallBack" visible="true" size="normal"/>
</group >
<group id="chartDeletionGroup" label="Chart Deletion">
<button id="deleteAllChartsInWorkbookSharingAnAddressButton" label="Delete Charts" imageMso="CancelRequest" onAction="DeleteAllChartsInWorkbookSharingAnAddressCallBack" visible="true" size="normal"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
আমার customUI.xml
ফাইলটি এর Priveleged UDFs.xlam
মতো দেখতে
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="sao">
<ribbon>
<tabs>
<tab idQ="x:privelgedUDFsTab" label="Privelged UDFs">
<group id="privelgedUDFsGroup" label="Toggle" >
<button id="initialisePrivelegedUDFsButton" label="Activate" imageMso="TagMarkComplete" onAction="InitialisePrivelegedUDFsCallBack" visible="true" size="normal"/>
<button id="deInitialisePrivelegedUDFsButton" label="De-Activate" imageMso="CancelRequest" onAction="DeInitialisePrivelegedUDFsCallBack" visible="true" size="normal"/>
</group >
</tab>
</tabs>
</ribbon>
</customUI>
- জন্য প্রতিটি আপনি যে ফাইলটি ধাপ 1 এ তৈরি, প্রত্যয় একটি
.zip
তাদের ফাইলের নাম রয়েছে। আমার ক্ষেত্রে, আমি নতুন নামকরণ Chart Tools.xlam
করা Chart Tools.xlam.zip
, এবং Privelged UDFs.xlam
করতে Priveleged UDFs.xlam.zip
।
- প্রতিটি
.zip
ফাইল খুলুন এবং _rels
ফোল্ডারে নেভিগেট করুন । আপনি পদক্ষেপ 3 এ তৈরি করা ফোল্ডারে .rels
ফাইলটি অনুলিপি _rels
করুন একটি পাঠ্য সম্পাদক দিয়ে প্রতিটি .rels
ফাইল সম্পাদনা করুন । থেকে মাইক্রোসফট নির্দেশিকা
চূড়ান্ত <Relationship>
উপাদান এবং সমাপ্ত
<Relationships>
উপাদানগুলির মধ্যে, একটি লাইন যুক্ত করুন যা নথির ফাইল এবং কাস্টমাইজেশন ফাইলের মধ্যে সম্পর্ক তৈরি করে। আপনি সঠিকভাবে ফোল্ডার এবং ফাইলের নাম নির্দিষ্ট করেছেন তা নিশ্চিত করুন।
<Relationship Type="http://schemas.microsoft.com/office/2006/
relationships/ui/extensibility" Target="/customUI/customUI.xml"
Id="customUIRelID" />
আমার .rels
ফাইলটি এর Chart Tools.xlam
মতো দেখতে
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
<Relationship Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="chartToolsCustomUIRel" />
</Relationships>
আমার .rels
ফাইলটি এর Priveleged UDFs
মতো দেখতে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
<Relationship Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="privelegedUDFsCustomUIRel" />
</Relationships>
- পূর্ববর্তী ধাপে আপনি যে ফাইল / ফাইলগুলি সংশোধন করেছেন তার সাথে
.rels
প্রতিটি .zip
ফাইলের ফাইলগুলি প্রতিস্থাপন করুন .rels
।
.customUI
আপনার তৈরি করা ফোল্ডারটি অনুলিপি .zip
/ ফাইলের হোম ডিরেক্টরিতে পেস্ট করুন ।
.zip
আপনার তৈরি এক্সেল ফাইলগুলি থেকে ফাইল এক্সটেনশন সরান ।
- আপনি যদি
.xlam
ফাইল তৈরি করে থাকেন তবে এক্সেলে ফিরে এসে এগুলি আপনার এক্সেল অ্যাড-ইনগুলিতে যুক্ত করুন।
- প্রযোজ্য হলে, আপনার প্রতিটি অ্যাড- ইনগুলিতে কলব্যাক তৈরি করুন। চতুর্থ ধাপে,
onAction
আমার বোতামগুলিতে কীওয়ার্ড রয়েছে। onAction
শব্দ নির্দেশ করে যে, যখন ধারণকারী উপাদান সূত্রপাত হয়, এক্সেল আবেদন উপ-রুটিন সরাসরি পর উদ্ধৃতি চিহ্ন মধ্যে encased আরম্ভ হবে onAction
শব্দ। এটি কলব্যাক হিসাবে পরিচিত । আমার .xlam
ফাইলগুলিতে আমার কাছে একটি মডিউল বলা হয়েছে CallBacks
যেখানে আমি আমার কলব্যাক উপ-রুটিনগুলি অন্তর্ভুক্ত করেছি।
আমার CallBacks
মডিউলের Chart Tools.xlam
মতো দেখতে
Option Explicit
Public Sub MoveChartWithRelativeLinksCallBack(ByRef control As IRibbonControl)
MoveChartWithRelativeLinks
End Sub
Public Sub MoveChartToManySheetsWithRelativeLinksCallBack(ByRef control As IRibbonControl)
MoveChartToManySheetsWithRelativeLinks
End Sub
Public Sub DeleteAllChartsInWorkbookSharingAnAddressCallBack(ByRef control As IRibbonControl)
DeleteAllChartsInWorkbookSharingAnAddress
End Sub
আমার CallBacks
মডিউলের Priveleged UDFs.xlam
মতো দেখতে
বিকল্প স্পষ্ট
Public Sub InitialisePrivelegedUDFsCallBack(ByRef control As IRibbonControl)
ThisWorkbook.InitialisePrivelegedUDFs
End Sub
Public Sub DeInitialisePrivelegedUDFsCallBack(ByRef control As IRibbonControl)
ThisWorkbook.DeInitialisePrivelegedUDFs
End Sub
বিভিন্ন উপাদানের আলাদা কলব্যাক উপ-রুটিন স্বাক্ষর রয়েছে have বোতামগুলির জন্য, প্রয়োজনীয় সাব-রুটিন প্যারামিটারটি ByRef control As IRibbonControl
। যদি আপনি প্রয়োজনীয় কলব্যাক স্বাক্ষরের সাথে সম্মতি না পান তবে আপনার ভিবিএ প্রকল্প / প্রকল্পগুলি সংকলনের সময় আপনি একটি ত্রুটি পাবেন। মাইক্রোসফ্ট গাইডের অংশ 3 সমস্ত কলব্যাক স্বাক্ষরগুলি সংজ্ঞায়িত করে।
আমার সমাপ্ত উদাহরণটি দেখতে দেখতে এখানে
কিছু সমাপ্তির টিপস
- আপনি ভাগ রিবন উপাদান অ্যাড-ইনগুলি চান, ব্যবহার
idQ
এবং xlmns:
শব্দ। আমার উদাহরণে Chart Tools.xlam
এবং Priveleged UDFs.xlam
উভয়ের idQ
সমান x:chartToolsTab
এবং সমান উপাদানগুলির অ্যাক্সেস রয়েছে x:privelgedUDFsTab
। এটি কাজ করার জন্য, x:
প্রয়োজনীয় প্রয়োজন, এবং, আমি আমার customUI.xml
ফাইলের প্রথম লাইনে এর নাম স্থানটি সংজ্ঞায়িত করেছি <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="sao">
,। অধ্যায় দুটি উপায়ে সাবলীল UI 'তে কাস্টমাইজ করতে মধ্যে মাইক্রোসফট নির্দেশিকা আরো কিছু বিবরণ দেয়।
- আপনি যদি এক্সেলের সাথে প্রেরিত রিবন উপাদানগুলিতে অ্যাক্সেস করতে অ্যাড-ইনগুলি চান তবে
isMSO
কীওয়ার্ডটি ব্যবহার করুন । অধ্যায় দুটি উপায়ে সাবলীল UI 'তে কাস্টমাইজ করতে মধ্যে মাইক্রোসফট নির্দেশিকা আরো কিছু বিবরণ দেয়।