सॉफ्टवेयर के संदर्भ में मैक्रो (macro ; यूनानी μάκρο = बड़ा या दूर) किसी नियम या पैटर्न का द्योतक है जो बताता है कि किसी इनपुट-श्रेणी (सेक्वेंस) के संगत आउटपुट श्रेणी क्या रहेगी। प्रायः इनपुट श्रेणी और आउटपुट श्रेणी दोनो ही वर्णों की श्रेणी या शब्दसमूह होते हैं। (जैसे इन्पुट श्रेणी = LDA और आउटपुट श्रेणी = Load accumulator आदि)। 'मैक्रो' शब्द कम्प्यूटर की प्रगति के आरम्भिक दिनों में मैक्रो-असेम्बुलरों के साथ अस्तित्व में आया।

जेडिट का मैक्रो एडिटर्

आजकल अधिकांश अप्लिकेशन सॉफ्टवेयरों (जैसे ओपेनआफिस, नोटपैड++ आदि) में मैक्रो रेकार्ड करने, उसे चलाने एवं सम्पादित करने आदि की सुविधा होती है। कुंजीपटल और माउस के मैक्रो भी होते हैं जो कुछ कुंजियों को दबाने मात्र से बहुत सारे काम क्रम से कर देते हैं जिनके लिये बहुत सी कुंजियाँ दबानी पड़तीं। मैक्रो का समुचित उपयोग करके पुनरावृत्त (रिपिटेटिव) कार्यों में श्रम से बचा जा सकता है और गलती की सम्भावना भी समाप्त हो जाती है।

उदाहरण

नीचे ओपेन आफिस के राइटर में स्थित किसी डॉक्युमेंट का फांट यूनिकोड से कृतिदेव १० में बदलने के लिये निर्मित एक मैक्रो का कुछ भाग दिखाया गया है -

ओपेनआफिस का यूनिकोड को कृतिदेव में बदलने का मेरा आरम्भिक मैक्रो कुछ इस प्रकार है-

ओपेनआफिस का यूनिकोड को कृतिदेव में बदलने का मेरा आरम्भिक मैक्रो कुछ इस प्रकार है-

REM ***** BASIC *****


sub Unicode_to_Kritidev_trial
rem ----------------------------------------------------------------------
rem define variables
dim document  as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document  = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------

dim args2(18) as new com.sun.star.beans.PropertyValue
args2(0).Name = "SearchItem.StyleFamily"
args2(0).Value = 2
args2(1).Name = "SearchItem.CellType"
args2(1).Value = 0
args2(2).Name = "SearchItem.RowDirection"
args2(2).Value = true
args2(3).Name = "SearchItem.AllTables"
args2(3).Value = false
args2(4).Name = "SearchItem.Backward"
args2(4).Value = false
args2(5).Name = "SearchItem.Pattern"
args2(5).Value = false
args2(6).Name = "SearchItem.Content"
args2(6).Value = false
args2(7).Name = "SearchItem.AsianOptions"
args2(7).Value = true
args2(8).Name = "SearchItem.AlgorithmType"
args2(8).Value = 0
args2(9).Name = "SearchItem.SearchFlags"
args2(9).Value = 65536
args2(10).Name = "SearchItem.SearchString"
args2(11).Name = "SearchItem.ReplaceString"
args2(12).Name = "SearchItem.Locale"
args2(12).Value = 255
args2(13).Name = "SearchItem.ChangedChars"
args2(13).Value = 2
args2(14).Name = "SearchItem.DeletedChars"
args2(14).Value = 2
args2(15).Name = "SearchItem.InsertedChars"
args2(15).Value = 2
args2(16).Name = "SearchItem.TransliterateFlags"
args2(16).Value = 1024
args2(17).Name = "SearchItem.Command"
args2(17).Value = 3
args2(18).Name = "Quiet"
args2(18).Value = true
args2(10).Value = "‘"
args2(11).Value = "^"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "\’"
args2(11).Value = "*"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "“"
args2(11).Value = "Þ"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "”"
args2(11).Value = "ß"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "("
args2(11).Value = "¼"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = ")"
args2(11).Value = "½"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())

args2(10).Value = "म"
args2(11).Value = "e"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "{"
args2(11).Value = "¿"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "}"
args2(11).Value = "À"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "="
args2(11).Value = "¾"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())


args2(10).Value = "।"
args2(11).Value = "A"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())

end sub