যখন একাধিক অ্যাড-ইনগুলি ফিতাটি সংশোধন করার চেষ্টা করেছিল তখন আমি রই-কি ব্রায়ান্টের সমাধান নিয়ে সমস্যার সম্মুখীন হয়েছিল। আমার ওয়ার্ক-কম্পিউটারে অ্যাডমিন অ্যাক্সেসও নেই, যা ইনস্টল করার বিষয়টি অস্বীকার করে 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 'তে কাস্টমাইজ করতে মধ্যে মাইক্রোসফট নির্দেশিকা আরো কিছু বিবরণ দেয়।