સામગ્રીઓનું કોષ્ટક
અમે વપરાશકર્તા વ્યાખ્યાયિત કાર્યો વિશે ટ્યુટોરિયલ્સની શ્રેણી ચાલુ રાખીએ છીએ. અમારા અગાઉના લેખોમાં, અમે કસ્ટમ ફંક્શન્સથી પરિચિત થયા છીએ અને તેમને કેવી રીતે બનાવવું અને તેનો ઉપયોગ કરવો તે શીખ્યા. આ માર્ગદર્શિકામાં આપણે આ ફંક્શનનો ઉપયોગ કરવાની વિશિષ્ટતાઓ જોઈશું અને UDF અને VBA મેક્રો વચ્ચેનો તફાવત જોઈશું.
આ ટ્યુટોરીયલમાં, આપણે નીચેના શીખીશું:
અમે આશા રાખીએ છીએ કે આ લેખ UDF વિશેના તમારા જ્ઞાનમાં વધારો કરશે અને તમારી એક્સેલ વર્કબુકમાં તેનો વધુ અસરકારક રીતે ઉપયોગ કરવામાં મદદ કરશે.
શું UDF અને મેક્રો એક જ વસ્તુ છે?
વપરાશકર્તા નિર્ધારિત કાર્યો અને VBA બંને મેક્રો VBA એડિટરનો ઉપયોગ કરીને બનાવવામાં આવે છે. તેમની વચ્ચે શું તફાવત છે અને શું પ્રાધાન્ય આપવું?
સૌથી મહત્વપૂર્ણ તફાવત એ છે કે ફંક્શન ગણતરી કરે છે, અને મેક્રો કેટલીક ક્રિયા કરે છે. નિયમિત એક્સેલ ફંક્શનની જેમ વપરાશકર્તા વ્યાખ્યાયિત કાર્ય, કોષમાં લખાયેલ હોવું આવશ્યક છે. તેના અમલના પરિણામે, સેલ અમુક મૂલ્ય આપે છે. તે જ સમયે, અન્ય કોષોના મૂલ્યો તેમજ વર્તમાન કોષના કેટલાક ગુણધર્મો (ખાસ કરીને, ફોર્મેટિંગ) બદલવું અશક્ય છે. જો કે, તમે શરતી ફોર્મેટિંગ ફોર્મ્યુલામાં કસ્ટમ ફંક્શનનો ઉપયોગ કરી શકો છો.
UDF અને VBA મેક્રો અલગ અલગ રીતે કામ કરે છે. ઉદાહરણ તરીકે, જ્યારે તમે વિઝ્યુઅલ બેઝિક એડિટરમાં UDF બનાવો છો, ત્યારે તમે સ્ટેટમેન્ટ Function સાથે શરૂ કરો છો અને End Function સાથે સમાપ્ત કરો છો. જ્યારે તમે મેક્રો રેકોર્ડ કરો છો, ત્યારે તમે એ સાથે પ્રારંભ કરો છોવિધાન સબ અને અંત સબ સાથે સમાપ્ત થાય છે.
તમામ વિઝ્યુઅલ બેઝિક ઓપરેટર્સનો ઉપયોગ UDF બનાવવા માટે કરી શકાતો નથી. આ કારણોસર, મેક્રો એ વધુ સર્વતોમુખી સોલ્યુશન છે.
એક મેક્રોને વપરાશકર્તા દ્વારા નિર્ધારિત કાર્યથી વિપરીત કોઈપણ દલીલો પસાર કરવાની જરૂર નથી (કે તે કોઈપણ દલીલો સ્વીકારી શકતી નથી).
મુદ્દો એ છે કે મેક્રોના કેટલાક આદેશો સેલ એડ્રેસ અથવા ફોર્મેટિંગ તત્વો (ઉદાહરણ તરીકે, રંગ) નો ઉપયોગ કરી શકે છે. જો તમે કોષોને ખસેડો છો, પંક્તિઓ અને કૉલમ્સ ઉમેરો અથવા દૂર કરો છો, કોષોનું ફોર્મેટ બદલો છો, તો તમે તમારા મેક્રોને સરળતાથી "તોડી" શકો છો. આ ખાસ કરીને શક્ય છે જો તમે તમારી ફાઇલ એવા સહકર્મીઓ સાથે શેર કરો કે જેઓ જાણતા નથી કે તમારા મેક્રો કેવી રીતે કામ કરે છે.
ઉદાહરણ તરીકે, તમારી પાસે સંપૂર્ણ રીતે કાર્યરત મેક્રો સાથેની ફાઇલ છે. આ સૂત્ર સેલ A1 થી A4 ની ટકાવારીની ગણતરી કરે છે. મેક્રો આ કોષોનો રંગ બદલીને પીળો કરે છે. સક્રિય કોષમાં ટકાવારી ફોર્મેટ સેટ કરેલ છે.
જો તમે અથવા અન્ય કોઈ નવી પંક્તિ દાખલ કરવાનું નક્કી કરો છો, તો મેક્રો A4 સેલમાં મૂલ્ય શોધવાનું ચાલુ રાખશે ( તમારા UDF માં 4,1 પેરામીટર, નિષ્ફળ થાય છે અને ભૂલ પરત કરે છે:
આ કિસ્સામાં, શૂન્ય દ્વારા વિભાજનને કારણે ભૂલ આવી છે (નવા ઉમેરેલામાં કોઈ મૂલ્ય નથી પંક્તિ). જો મેક્રો કાર્ય કરે છે, તો ચાલો કહીએ, સારાંશ, તો પછી તમને ખોટું પરિણામ મળશે. પરંતુ તમે તેના વિશે જાણશો નહીં.
મેક્રોથી વિપરીત, વપરાશકર્તા વ્યાખ્યાયિત કાર્યો આવી અપ્રિય પરિસ્થિતિનું કારણ બની શકતા નથી.
નીચે તમે પ્રદર્શન જુઓ છોUDF નો ઉપયોગ કરીને સમાન ગણતરીઓ. અહીં તમે વર્કશીટમાં ગમે ત્યાં ઇનપુટ કોષોનો ઉલ્લેખ કરી શકો છો અને તેને બદલતી વખતે તમને કોઈ અણધારી સમસ્યાઓનો સામનો કરવો પડશે નહીં.
મેં C3 માં નીચેનું સૂત્ર લખ્યું છે:
=UDF_vs_Macro(A1,A4)
પછી મેં એક ખાલી પંક્તિ દાખલ કરી, અને ફોર્મ્યુલા બદલાઈ ગયું જે તમે ઉપરના સ્ક્રીનશોટમાં જોઈ શકો છો.
હવે આપણે ઇનપુટ સેલ અથવા ફંક્શન સાથેના સેલને ગમે ત્યાં ખસેડી શકીએ છીએ. પરિણામ હંમેશા સાચુ રહેશે.
UDF નો ઉપયોગ કરવાનો વધારાનો ફાયદો એ છે કે જ્યારે ઇનપુટ સેલમાં મૂલ્ય બદલાય છે ત્યારે તેઓ આપમેળે અપડેટ થાય છે. મેક્રોનો ઉપયોગ કરતી વખતે, તમારે હંમેશા ખાતરી કરવી જોઈએ કે તમામ ડેટા અપ ટૂ ડેટ છે.
આ ઉદાહરણને ધ્યાનમાં રાખીને, હું જ્યાં પણ શક્ય હોય ત્યાં UDF નો ઉપયોગ કરવાનું પસંદ કરીશ અને અન્ય બિન-ગણતરીની પ્રવૃત્તિઓ માટે જ મેક્રોનો ઉપયોગ કરવાનું પસંદ કરીશ.
UDF નો ઉપયોગ કરવાની મર્યાદાઓ અને ગેરફાયદા
મેં ઉપર UDF ના ફાયદાઓનો ઉલ્લેખ કર્યો છે. ટૂંકી વાર્તા, તે એવી ગણતરીઓ કરી શકે છે જે પ્રમાણભૂત એક્સેલ ફંક્શન્સ સાથે શક્ય નથી. વધુમાં, તે લાંબા અને જટિલ સૂત્રોને સાચવી અને ઉપયોગ કરી શકે છે, તેમને એક જ કાર્યમાં ફેરવી શકે છે. અને તમારે વારંવાર જટિલ સૂત્રો લખવાની જરૂર રહેશે નહીં.
હવે UDF ની ખામીઓ વિશે વધુ વિગતવાર વાત કરીએ:
- UDF બનાવવા માટે VBA નો ઉપયોગ જરૂરી છે. તેની આસપાસ કોઈ રસ્તો નથી. આનો અર્થ એ છે કે વપરાશકર્તા એક્સેલ મેક્રોની જેમ UDF રેકોર્ડ કરી શકતા નથી. તમારે જાતે UDF બનાવવું પડશે. જો કે, તમે નકલ કરી શકો છો અનેતમારા ફંક્શનમાં અગાઉ રેકોર્ડ કરેલા મેક્રો કોડના ભાગોને પેસ્ટ કરો. તમારે ફક્ત કસ્ટમ ફંક્શન્સની મર્યાદાઓથી વાકેફ રહેવાની જરૂર છે.
- UDF ની બીજી ખામી એ છે કે કોઈપણ અન્ય એક્સેલ ફંક્શનની જેમ તે સેલમાં માત્ર એક મૂલ્ય અથવા મૂલ્યોની શ્રેણી પરત કરી શકે છે. તે ફક્ત ગણતરીઓ કરે છે, વધુ કંઈ નથી.
- જો તમે તમારી કાર્યપુસ્તિકા તમારા સહકર્મીઓ સાથે શેર કરવા માંગતા હો, તો તમારા UDF ને એ જ ફાઈલમાં સાચવવાની ખાતરી કરો. નહિંતર, તમારા કસ્ટમ ફંક્શન્સ તેમના માટે કામ કરશે નહીં.
- VBA એડિટર સાથે બનાવેલ કસ્ટમ ફંક્શન્સ નિયમિત ફંક્શન્સ કરતાં ધીમા હોય છે. આ ખાસ કરીને મોટા કોષ્ટકોમાં નોંધનીય છે. કમનસીબે, VBA એ અત્યાર સુધી ખૂબ જ ધીમી પ્રોગ્રામિંગ ભાષા છે. તેથી, જો તમારી પાસે ઘણો ડેટા હોય, તો જ્યારે પણ શક્ય હોય ત્યારે માનક ફંક્શનનો ઉપયોગ કરવાનો પ્રયાસ કરો અથવા LAMBDA ફંક્શનનો ઉપયોગ કરીને UDF બનાવો.
કસ્ટમ ફંક્શન મર્યાદાઓ:
- UDF છે ગણતરીઓ કરવા અને મૂલ્ય પરત કરવા માટે રચાયેલ છે. તેઓનો ઉપયોગ મેક્રોની જગ્યાએ કરી શકાતો નથી.
- તેઓ કોઈપણ અન્ય કોષોની સામગ્રીને બદલી શકતા નથી (માત્ર સક્રિય કોષ).
- ફંક્શન નામોએ અમુક નિયમોનું પાલન કરવું આવશ્યક છે. ઉદાહરણ તરીકે, તમે મૂળ એક્સેલ ફંક્શન નામ અથવા AB123 જેવા સેલ એડ્રેસ સાથે મેળ ખાતા નામનો ઉપયોગ કરી શકતા નથી.
- તમારા કસ્ટમ ફંક્શનમાં નામમાં સ્પેસ હોઈ શકતી નથી, પરંતુ તેમાં અંડરસ્કોર અક્ષરનો સમાવેશ થઈ શકે છે. જો કે, પ્રિફર્ડ પદ્ધતિ એ છે કે દરેક નવાની શરૂઆતમાં મોટા અક્ષરોનો ઉપયોગ કરવોશબ્દ (ઉદાહરણ તરીકે, GetMaxBetween).
- UDF કોષોને વર્કશીટના અન્ય વિસ્તારોમાં કોપી અને પેસ્ટ કરી શકતું નથી.
- તેઓ સક્રિય વર્કશીટ બદલી શકતા નથી.
- UDF' સક્રિય કોષમાં ફોર્મેટિંગ બદલો નહીં. જો તમે વિવિધ મૂલ્યો દર્શાવતી વખતે કોષનું ફોર્મેટિંગ બદલવા માંગતા હો, તો તમારે શરતી ફોર્મેટિંગનો ઉપયોગ કરવો જોઈએ.
- તેઓ વધારાની પુસ્તકો ખોલી શકતા નથી.
- તેનો ઉપયોગ એપ્લીકેશનનો ઉપયોગ કરીને મેક્રો ચલાવવા માટે કરી શકાતો નથી.OnTime .
- મેક્રો રેકોર્ડરનો ઉપયોગ કરીને વપરાશકર્તા-વ્યાખ્યાયિત કાર્ય બનાવી શકાતું નથી.
- ફંક્શન્સ વિકાસકર્તા > માં દેખાતા નથી. મેક્રો સંવાદ.
- તમારા કાર્યો સંવાદ બૉક્સમાં દેખાશે ( શામેલ > ફંક્શન ) અને ફંક્શન્સની સૂચિમાં જો તેઓને સાર્વજનિક<7 તરીકે જાહેર કરવામાં આવે તો જ> (આ ડિફૉલ્ટ છે, સિવાય કે અન્યથા નોંધવામાં આવે).
- ખાનગી તરીકે જાહેર કરાયેલ કોઈપણ ફંક્શન સુવિધા સૂચિમાં દેખાશે નહીં.
એક તદ્દન ધીમી કામગીરી , તેમજ ઉપયોગમાં લેવાતા કેટલાક પ્રતિબંધો, તમને વિચારવા માટે પ્રેરિત કરી શકે છે: "આ વૈવિધ્યપૂર્ણ કાર્યોનો ઉપયોગ શું છે?"
તેઓ કામમાં આવી શકે છે, અને જો આપણે તેમના પર લાદવામાં આવેલા અવરોધોને ધ્યાનમાં રાખીએ તો તે કરી શકે છે. જો તમે UDF ને યોગ્ય રીતે કેવી રીતે બનાવવું અને તેનો ઉપયોગ કરવો તે શીખો, તો તમે તમારા કાર્યોની લાઇબ્રેરી લખી શકો છો. આ એક્સેલમાં ડેટા સાથે કામ કરવાની તમારી ક્ષમતાને મોટા પ્રમાણમાં વિસ્તૃત કરશે.
મારા માટે, કસ્ટમ ફંક્શન્સ ઉત્તમ સમય બચાવનાર છે. અને તમારુ શું? શું તમે પહેલેથી જ તમારું પોતાનું UDF બનાવવાનો પ્રયાસ કર્યો છે? શું આ તમને પસંદ આવ્યુંમૂળભૂત એક્સેલ કાર્યો કરતાં વધુ સારી? ચાલો ટિપ્પણીઓમાં તેની ચર્ચા કરીએ :)