#, fuzzy msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" msgctxt "6fa24f31673c8834a02ff61dabad470e" msgid " Finding more information | 21" msgstr "" msgctxt "4a4e538c3272f1c8d7c4b2d37be38c1a" msgid "22 | " msgstr "" msgctxt "a5336ecf5bb8a826d6a570bb1fb22b32" msgid " | 3" msgstr "" msgctxt "e6fd308f375df202974bda63e1f98115" msgid "" "Documentation for LibreOffice is available at http://" "www.libreoffice.org/get-help/documentation" msgstr "" msgctxt "880fd96b9825da966b0976a61c77d969" msgid "0| " msgstr "" msgctxt "9c0feee79e0a6287522a08356bcd1a55" msgid "Chapter 13 Getting Started with Macros" msgstr "" msgctxt "980b61ebad016ccaa8c02ea3d685042c" msgid "Getting Started Guide" msgstr "" msgctxt "ce15ab862d93f654e47f8d78381a5f6a" msgid "Chapter 13 Getting Started with Macros" msgstr "" msgctxt "f29fc063f4ce95e38ded229b62220cf8" msgid "Using the Macro Recorder … and Beyond" msgstr "" msgctxt "6acd930ce5155cec088dc2a82e0643eb" msgid "Copyright" msgstr "" msgctxt "b173abbdfcaa7cf3d8e300d44274fa19" msgid "" "This document is Copyright © 2010–2016 by the " "LibreOffice Documentation Team. Contributors are listed below. " "You may distribute it and/or modify it under the terms of either the GNU " "General Public License (http://www.gnu.org/licenses/gpl.html), " "version 3 or later, or the Creative Commons Attribution License " "(http://creativecommons.org/licenses/by/4.0/), version " "4.0 or later." msgstr "" msgctxt "524719ddee5e22e44b60a33f49c03bf5" msgid "All trademarks within this guide belong to their legitimate owners." msgstr "" msgctxt "0e5aec0d83c7623253e7c518c6ab95ac" msgid "Contributors" msgstr "" msgctxt "f9399547bd3ad3d04fa55fa28c73693d" msgid "Andrew Pitonyak " msgstr "" msgctxt "261cac45121d03334184bb34ba006951" msgid "Peter Schofield" msgstr "" msgctxt "4757a748df3264cf9d7b594972fff443" msgid "Martin Fox" msgstr "" msgctxt "d7bb474a4e6fcc5afedafc84cf1f32d6" msgid "Ron Faile Jr." msgstr "" msgctxt "eff8e2bdaec5fc8f7db32c876cfdba10" msgid "Hazel Russman" msgstr "" msgctxt "b6578b8e11b346dfc07ee4d10ef35275" msgid "Feedback" msgstr "" msgctxt "235798d80b112b50e6084105d6b9cd24" msgid "" "Please direct any comments or suggestions about this document to the " "Documentation Team’s mailing list: documentation@global.libreoffice." "org" msgstr "" msgctxt "8bdfab753cf87911bbaaf46614c2f6ae" msgid "" "Note: Everything you send to a mailing list, including your " "email address and any other personal information that is written in the " "message, is publicly archived and cannot be deleted." msgstr "" msgctxt "b99459b8fe80d2408f5ebe6f12d40a4d" msgid "Acknowledgments" msgstr "" msgctxt "2f8ef75499de1433ac85793933ab88de" msgid "" "This chapter is based on Chapter 13 of Getting Started with OpenOffice." "org 3.3. The contributors to that chapter are:" msgstr "" msgctxt "08c9c3aa95337904800635a43106d331" msgid "Andrew Pitonyak" msgstr "" msgctxt "a19d66c8eb465f5ff14f60ff51f4f117" msgid "Jean Hollis Weber" msgstr "" msgctxt "58d8ab83c4a4c54984b7653bc7c5571e" msgid "Publication date and software version" msgstr "" msgctxt "f97a73b33134b9b0072fb715193efed8" msgid "" "Published 27 February 2016. Based on LibreOffice 5.0." msgstr "" msgctxt "bb7373b0e8110476d600984d235997da" msgid "Note for Mac users" msgstr "" msgctxt "b2af155d8da428946fb57ac3547bedc2" msgid "" "Some keystrokes and menu items are different on a Mac from those used in " "Windows and Linux. The table below gives some common substitutions for the " "instructions in this chapter. For a more detailed list, see the application " "Help." msgstr "" msgctxt "d8fb3ad7ceab891bec9b53c78d434ce5" msgid "Windows or Linux" msgstr "" msgctxt "f66613705067f67a2842feff2232c246" msgid "Mac equivalent" msgstr "" msgctxt "a62d22910732d5343689f5117999abfa" msgid "Effect" msgstr "" msgctxt "f0d66c2ce10a38561f6615a74f890ca4" msgid "Tools > Options menu selection" msgstr "" msgctxt "3138cbd8f125dc61bd8747fc8d9437c9" msgid "LibreOffice > Preferences" msgstr "" msgctxt "b48d29d52241ecd112f09d9a80d22e25" msgid "Access setup options" msgstr "" msgctxt "6e8c7ed76a681e9d0b5bb49d59b3311c" msgid "Right-click" msgstr "" msgctxt "d692c01d2cbfc108f2bbb106713d4336" msgid "" "Control+click or right-click depending on " "computer setup" msgstr "" msgctxt "83b5da1fe7b00fa96292e6ce392424b5" msgid "Opens a context menu" msgstr "" msgctxt "e3fb4ca3800ca2b69ad744d5c56c133e" msgid "Ctrl (Control)" msgstr "" msgctxt "4d42878bd77cb3b0b6b30f7885726da7" msgid " (Command)" msgstr "" msgctxt "72b08592e814768e7b62276ffdb71792" msgid "Used with other keys" msgstr "" msgctxt "95e689cc86842290403410e60fa80335" msgid "F5" msgstr "" msgctxt "06635bb8834a32723f2e1b32933d8187" msgid "Shift++F5" msgstr "" msgctxt "b61c233db1540abc3768c6b6b024d16e" msgid "Open the Navigator" msgstr "" msgctxt "afa91f311dc3578fb36afd6346f3d3f7" msgid "F11" msgstr "" msgctxt "e1d057f1d376f31be28460fe9bb50bf8" msgid "+T" msgstr "" msgctxt "b40a02774098d95864b00459c22a02f7" msgid "Open the Styles and Formatting window" msgstr "" msgctxt "c1df1da7a1ce305a3b60af9d5733ac1d" msgid "Contents" msgstr "" msgctxt "ef12f096e7afb93c98dfa67b265d169b" msgid "Copyright 2" msgstr "" msgctxt "4f79af9826d01e442fb3d0739a113736" msgid "Contributors 2" msgstr "" msgctxt "7f09d11eae19fb618875eafc8cdedf31" msgid "Feedback 2" msgstr "" msgctxt "6d6d25a8bcbcfbb63b253b17659571bc" msgid "Acknowledgments 2" msgstr "" msgctxt "5510c4931bd5772884626708fe5ea1d7" msgid "Publication date and software version 2" msgstr "" msgctxt "4591867c8b2e405fa0a40397858e4b6f" msgid "Note for Mac users 2" msgstr "" msgctxt "86a3ee9ca028d6ff61680afe3a247267" msgid "Introduction 4" msgstr "" msgctxt "bf9866339cdcd9787f2d2c1823f9a009" msgid "Your first macros 4" msgstr "" msgctxt "ac0ff72454c22202653ce48d2a2e9e49" msgid "Adding a macro 4" msgstr "" msgctxt "dc86b3f2d42e904933af1d1776dcd88e" msgid "Recording a macro 6" msgstr "" msgctxt "e3cd17c7bb3773115932aa0863977e71" msgid "Running a macro 7" msgstr "" msgctxt "8ea0b9eec971a444cbd5331a115d33e7" msgid "Viewing and editing macros 8" msgstr "" msgctxt "3023956d7613acc0bfad8cbf32d5b0f3" msgid "Commenting with REM 8" msgstr "" msgctxt "97abbb26906ff446dbca0b94d30c4154" msgid "Defining subroutines with SUB 8" msgstr "" msgctxt "56a7bf57bbc429e09f1bf9d4551f7aaf" msgid "Defining variables using Dim 9" msgstr "" msgctxt "934ecbf387058c8dbbe364c493d7caeb" msgid "Explaining macro code 9" msgstr "" msgctxt "4cae4cf54748c0b63a6d19dfa0c6e275" msgid "Creating a macro 10" msgstr "" msgctxt "7d8b69e8b1ef4bc24bcc9cdfac5aa5e0" msgid "A more complicated example of a macro 10" msgstr "" msgctxt "cd32722a81f8fb89ea07c55362d23084" msgid "Running a macro quickly 13" msgstr "" msgctxt "4cb6cf79256fd442942c295df777deb2" msgid "Macro recorder failures 14" msgstr "" msgctxt "19e225d9804042f2a71ede73fba6b374" msgid "Dispatch framework 14" msgstr "" msgctxt "7073c272caa410d090a8b16599d18854" msgid "How the macro recorder uses the dispatch framework 14" msgstr "" msgctxt "8458abc4e7208564f58c990b8528869d" msgid "Other options 14" msgstr "" msgctxt "7b425cfd1f2b124041e287c0f6e1cc4e" msgid "Macro organization 15" msgstr "" msgctxt "07f18616b3f30ed3ab68f5e6a24efd70" msgid "Where are macros stored? 16" msgstr "" msgctxt "45ac7687e55aa945a9197b441026864c" msgid "Importing macros 16" msgstr "" msgctxt "d1031bbd860d699a5e59705072dd53d9" msgid "Downloading macros to import 18" msgstr "" msgctxt "ca7f82efff98170eca12414dbe71e921" msgid "How to run a macro 18" msgstr "" msgctxt "dbfc7bbc9e8263ece63ced1238a27e01" msgid "Toolbars, menu items, and keyboard shortcuts 19" msgstr "" msgctxt "2de3882b43653f5910759bcdc583081e" msgid "Events 19" msgstr "" msgctxt "1001b710ae1605b25b80a5e587385b7a" msgid "Extensions 20" msgstr "" msgctxt "d139bd5ae65d8c9923e58a7ac5159467" msgid "Writing macros without the recorder 21" msgstr "" msgctxt "23312d574d70504900c19e1ca80b8338" msgid "Finding more information 21" msgstr "" msgctxt "7641f2c332534f35d98d6bbce549cd8e" msgid "Included material 22" msgstr "" msgctxt "7c68f60420d475f01385f2bf8b8cf712" msgid "Online resources 22" msgstr "" msgctxt "cbd4444f618c212239bae26ef4335efe" msgid "Printed and eBook materials 22" msgstr "" msgctxt "e50e5cab75d21a76a4a88d487f16606c" msgid "Introduction" msgstr "" msgctxt "7e48a7dd5086c2b6631c5e7c5c013fb4" msgid "" "A macro is a saved sequence of commands or keystrokes that are stored for " "later use. An example of a simple macro is one that “types” your address. " "The LibreOffice macro language is very flexible, allowing automation of both " "simple and complex tasks. Macros are very useful when you have to repeat the " "same task in the same way over and over again." msgstr "" msgctxt "96f1c69e73bcf5166dca29440e3b1abf" msgid "" "LibreOffice macros are usually written in a language called LibreOffice Basic, sometimes abbreviated to Basic. " "Although you can learn Basic and write macros, there is a steep learning " "curve to writing macros from scratch. The usual methods for a beginner are " "to use macros that someone else has written or use the built-in macro " "recorder, which records keystrokes and saves them for use." msgstr "" msgctxt "5294d7bd1e2f964df777873096444907" msgid "" "Most tasks in LibreOffice are accomplished by “dispatching a command” " "(sending a command), which is intercepted and used. The macro recorder works " "by recording the commands that are dispatched (see “Dispatch " "framework” on page 14)." msgstr "" msgctxt "61cdd8b831a878bb6a3653fec78f55cc" msgid "Your first macros" msgstr "" msgctxt "6e68682ba931c6e19a4fd997badc4f29" msgid "Adding a macro" msgstr "" msgctxt "4a7fb2c02dc08a8e6859a70dad27aa8e" msgid "" "The first step in learning macro programming is to find and use " "existing macros. This section assumes that you have a macro that you want to " "use, which may be in an email, on a web page, or even in a book. For this " "example, the macro in Listing 1 is used. You must create a library " "and module to contain your macro; see “” on page for more " "information." msgstr "" msgctxt "7cbe67b16396ef15d0278d61178ed0db" msgid "Listing 1: Simple macro that says hello" msgstr "" msgctxt "eee274d95a89fcd10c0b9222cb2000c1" msgid "Sub HelloMacro" msgstr "" msgctxt "a55b597d7e6be92b0b9710e8f5fe5cd1" msgid " Print \"Hello\"" msgstr "" msgctxt "677c8acac0621063a547847e3700d81b" msgid "End Sub" msgstr "" msgctxt "ebda530e54c0b7911c82fadcf813b5fd" msgid "Use the following steps to create a library to contain your macro:" msgstr "" msgctxt "4b2dea498ba8b86ec0760745b40dee00" msgid "" "Use Tools > Macros > Organize Macros > LibreOffice Basic to open " "the LibreOffice Basic Macro dialog (Figure 1)." msgstr "" msgctxt "9c21ea8b0e2ecdd51c466593908e0362" msgid "" "Click Organizer to open the Basic Macro Organizer dialog " "(Figure 2) and select the Libraries tab." msgstr "" msgctxt "757c2531284fc4112efb0715db328846" msgid "" "Set the Location to My Macros & Dialogs, which is the " "default location." msgstr "" msgctxt "481ba52cc66abde267534b27dadb9478" msgid "Click New to open the New Library dialog." msgstr "" msgctxt "6d3d5472514a4ddb2185d3fc47db41e3" msgid "Enter a library name, for example TestLibrary, and click OK." msgstr "" msgctxt "72427fe0c5198ab6d99ef19e5427764a" msgid "Select the Modules tab." msgstr "" msgctxt "61cdac5fce2cdcb46772533a7537f6b7" msgid "" "In the Module list, expand My Macros and select, for " "example TestLibrary. A module named Module1 already exists and can contain " "your macro. If you wish, you can click New to create another module " "in the library." msgstr "" msgctxt "392e8913eafc2ab21e5a60672b09ba85" msgid "" "Select Module1, or the new module that you created, and click Edit " "to open the Integrated Debugging Environment (IDE) (Figure 3). The IDE is a text editor included with LibreOffice that allows you to " "create and edit macros." msgstr "" msgctxt "3f117343a8924b64d8bbad063d7fe697" msgid "" "When a new module is created, it contains a comment and an empty macro named " "Main, which does nothing." msgstr "" msgctxt "b86a3d0bcbf178a323829332613eaec5" msgid "" "Add the new macro either before Sub Main or after End Sub. Listing 2 shows the new macro has been added before Sub Main." msgstr "" msgctxt "8740c92e2e15fef2fd717476c53cf5c0" msgid "" msgstr "" msgctxt "481bf3b2851846f1a530204b69da745c" msgid "Figure 1: LibreOffice Basic Macros dialog" msgstr "" msgctxt "e306f62d352b59d564bd65b744515dc8" msgid "" msgstr "" msgctxt "59da93935c2fbc92a68f7c43293ad4ef" msgid "Figure 2: LibreOffice Basic Macro Organizer dialog" msgstr "" msgctxt "d46224732b957ca21452a82e36352abb" msgid "" msgstr "" msgctxt "14a5e1ea974071484c840d09b398adf8" msgid "" "Click the Compile icon on the Macro " "toolbar to compile the macro." msgstr "" msgctxt "e0e201a9ca2691d9534d55f120a12eb9" msgid "" "Place the cursor in the HelloMacro subroutine and click the Run BASIC icon on the Macro toolbar, or press the F5 " "key, to run the HelloMacro in the module. A small dialog will open with the " "word “Hello” displayed. If the cursor is not in a subroutine or function, a " "dialog will open; select the macro to run." msgstr "" msgctxt "1462c47966f29868d0f36edc680d095e" msgid "Click OK to close this small dialog." msgstr "" msgctxt "5614416b0ba9dbb891b7c19bc2b82a0c" msgid "" "To select and run any macro in the module, click the Select Macro icon on the Standard toolbar or go to Tools > " "Macros > Organize Macros > LibreOffice Basic." msgstr "" msgctxt "58805ad55c3b3f4961d6d100aebc63b7" msgid "Select a macro and then click Run." msgstr "" msgctxt "410cd5125ed90562dc82fd7e29575f75" msgid "Figure 3: Integrated Debugging Environment dialog" msgstr "" msgctxt "c2e6ce436795611676e9afcd66e3ad51" msgid "" msgstr "" msgctxt "0f702c2648a22505f397693d176e2f87" msgid "Listing 2: Module1 after adding the new macro." msgstr "" msgctxt "4591a9744009ab0e4baf4e94b687d124" msgid "REM ***** BASIC *****" msgstr "" msgctxt "fd325a0686f78d46bb5e8d4984b0efe7" msgid "" msgstr "" msgctxt "018a6833dcc07ab8b33c9aa496958753" msgid "Sub Main" msgstr "" msgctxt "d82e2715c3c68b2009572fef5f25f9bf" msgid "End Sub" msgstr "" msgctxt "745d05f10ec7a415a25a4e311a8acae0" msgid "Recording a macro" msgstr "" msgctxt "64ab561408f507e9f0d10f6dc77cd0bc" msgid "" "If you have to repeatedly enter the same information, you can copy this " "information after it has been entered into your document for the first time, " "then paste the information into your document each time you want to use it. " "However, if something else is copied to the clipboard, the contents on the " "clipboard are changed. This means that you have to re-copy your repeated " "information. To overcome this problem, you can create a macro that enters " "your repeated information." msgstr "" msgctxt "3b0649c72650c313a357338dcdfb64ec" msgid "Note" msgstr "" msgctxt "27a57a3fccb50954ccdf922fe7a1d569" msgid "" "For some types of information that you want to repeatedly enter into a " "document, it may be more convenient to create an AutoText file. See the " "Writer Guide Chapter 3 Working with Text for more information." msgstr "" msgctxt "335eeec35d7c784b74133df18b5d22b0" msgid "" "Make sure macro recording is enabled by going to Tools > Options > " "LibreOffice > Advanced on the main menu bar and selecting the option " "Enable macro recording. By default, this feature is turned off when " "LibreOffice was installed on your computer." msgstr "" msgctxt "3ed55953f4853f675ff4757a4be1ede3" msgid "" "Go to Tools > Macros > Record Macro on the main menu bar " "to start recording a macro. A small dialog is displayed indicating that " "LibreOffice is recording a macro." msgstr "" msgctxt "3aad28fdbe617515b9f1db54ee37e0a1" msgid "" "Type the desired information or perform an appropriate series of operations. " "As an example, type your name." msgstr "" msgctxt "9ff41af505b07cf6fa889c57722497a8" msgid "" "Click Stop Recording on the small Recording dialog to stop " "recording and the LibreOffice Basic Macros dialog opens " "(Figure 1 on page 5)." msgstr "" msgctxt "41521d40521de7d7903763f1834dfb37" msgid "Open the library container My Macros." msgstr "" msgctxt "5e08b84f50fac6ec2b6c3f743a3e8dc7" msgid "" "Find the library named Standard in My Macros. Note that every " "library container has a library named Standard." msgstr "" msgctxt "0228fa14623748d1ea95d949df9b31f4" msgid "" "Select the Standard library and click New Module to create a new module to contain the macro. This opens the New Module dialog." msgstr "" msgctxt "5aa7169a23fa10bcbd8c5ec8349233be" msgid "" "Type a descriptive name for the new module, for example Recorded, " "and click OK to create the module. The LibreOffice Basic Macros " "dialog now displays the name of the new module in the Standard library." msgstr "" msgctxt "75bba7e274f926be492b1fb66007e123" msgid "" "In the Macro name text box, type a name for the macro you have just " "recorded, for example EnterMyName." msgstr "" msgctxt "5b30084a694cde1841f944a5fe377e0a" msgid "" "Click Save to save the macro and close the LibreOffice Basic Macros " "dialog." msgstr "" msgctxt "858a69f3280dae909991b0725fd5f2fe" msgid "" "If you followed all of the above steps, the Standard library now contains a " "module named Recorded and this module contains the EnterMyName macro." msgstr "" msgctxt "257bac38eb3e0b0d2f6bb0b5a2a82513" msgid "" "When LibreOffice creates a new module, it automatically adds the macro named " "Main." msgstr "" msgctxt "ca2bf766c5c37bfb82034a21e02502cf" msgid "Running a macro" msgstr "" msgctxt "58f9d5d3c823365a7a4f2cd4eed6cd1c" msgid "" "Go to Tools > Macros > Run Macro on the main menu bar to open the " "Macro Selector dialog (Figure 4)." msgstr "" msgctxt "b6d55e299e6e05b18ba2f10117fd30bc" msgid "" "For example, select your newly created macro EnterMyName and click Run." msgstr "" msgctxt "d555648eecf1881abf82b9521617cac5" msgid "" "Alternatively, go to Tools > Macros > Organize Macros > LibreOffice " "Basic on the main menu bar to open the LibreOffice Basic Macros dialog, " "select your macro and click Run." msgstr "" msgctxt "83fa06a6acbb068f0d685ee398be0200" msgid "Figure 4: Macro Selector dialog" msgstr "" msgctxt "baddd540a398e57eb39ae605dc11082d" msgid "" msgstr "" msgctxt "863c8e477e295afaf5efb8703f442688" msgid "" "Viewing and editing macros" msgstr "" msgctxt "5f02d0ab8e98b61bd98251aa8512ed1d" msgid "To view and/or edit the macro that you created:" msgstr "" msgctxt "76668f179e182e762e4aa46c69963544" msgid "" "Go to Tools > Macros > Organize Macros > LibreOffice Basic to open " "the LibreOffice Basic Macros dialog." msgstr "" msgctxt "f42f7e9db8b095e4c1ba2270b47f82ca" msgid "" "Select your new macro EnterMyName and click Edit to open the macro " "in the Basic IDE. The macro EnterMyName " "is shown in Listing 3." msgstr "" msgctxt "61a331c87fe45be5bf497a6b2c734e8e" msgid "" "The EnterMyName macro is not as complicated as it first appears. Learning a " "few things helps significantly in understanding macros. The discussion " "starts with features near the top of the macro listing and describes them." msgstr "" msgctxt "7a87ae8daac945c4ad7d6f1325c7423c" msgid "Listing 3: Generated “EnterMyname” macro" msgstr "" msgctxt "06bb3f072da296b8cbbc3f7ebd134e98" msgid "REM ***** BASIC *****" msgstr "" msgctxt "001ce424c68d9b17635de62d8fe17c15" msgid "End Sub" msgstr "" msgctxt "4da950a6a588b24d7e909c4f52a3aae9" msgid "sub EnterMyName" msgstr "" msgctxt "a677255bbbf0582b1c0678e7eb262eb5" msgid "" "rem -------------------------------------------------------------" msgstr "" msgctxt "362475b2d48a8d171e8af1507f2402bd" msgid "rem define variables" msgstr "" msgctxt "ef82d07d6d0502c15d31dcedd3d9d393" msgid "dim document as object" msgstr "" msgctxt "43422d6dd5c3fd99593312e591d2d154" msgid "dim dispatcher as object" msgstr "" msgctxt "2ff1d23cf07f39d2ee2193fc312a1233" msgid "rem get access to the document" msgstr "" msgctxt "1208f540f93af2d245c9e55d11a0f228" msgid "" "document = ThisComponent.CurrentController.Frame" msgstr "" msgctxt "f7225a11f82638ccb1591ef5bea11d0e" msgid "" "dispatcher = createUnoService(\"com." "sun.star.frame.DispatchHelper\")" msgstr "" msgctxt "84271de0983487202ca45a9bbea00485" msgid "" "dim args1(0) as " "new com.sun.star.beans.PropertyValue" msgstr "" msgctxt "c2dd38e2a68d52775b596e04741c5627" msgid "" "args1(0).Name = \"Text\"" msgstr "" msgctxt "34242d684374fe84f7b42b6f84837a45" msgid "" "args1(0).Value = " "\"Your name\"" msgstr "" msgctxt "f292b7afd2b7bb60ad3d3c0437a9ef0b" msgid "" "dispatcher.executeDispatch(document, \".uno:InsertText\", \"\", 0, args1())" msgstr "" msgctxt "76cfc017bbcbcb178b0fe462e302451c" msgid "end sub" msgstr "" msgctxt "b84d96e58457f827e9f69cafaa693569" msgid "" "Commenting with REM" msgstr "" msgctxt "76afb6de6cb84ae6ddd4258b4c70b904" msgid "" "All comments in macro coding begin with REM, which stands for remark. All " "text after REM and on the same line is ignored. As a short cut, the single " "quote character (') can also be used to start a comment." msgstr "" msgctxt "e6372564b5de108e554558d8516a04af" msgid "" "LibreOffice Basic is not case-sensitive for keywords, so REM, Rem, and rem " "can all start a comment. If you use symbolic constants defined by the " "Application Programming Interface (API), it is safer to assume that the " "names are case-sensitive. Symbolic constants are an advanced topic not " "covered by this user guide and are not required when using the macro " "recorder in LibreOffice." msgstr "" msgctxt "ea2d917c164057cf0fdf564cc2d5346e" msgid "" "Defining subroutines with SUB" msgstr "" msgctxt "0368bc7dcfb275859cd01dee9efa9529" msgid "" "Individual macros are stored in subroutines and these subroutines begin with " "the keyword SUB. The end of a subroutine is indicated by the words END SUB. " "The code starts by defining the subroutine named Main, which is empty and " "does nothing. The next subroutine, EnterMyName, contains the generated code " "for your macro." msgstr "" msgctxt "fb21e5d58a316999d4d01b72e2932214" msgid "" "LibreOffice always creates an empty subroutine named Main when it creates a " "module." msgstr "" msgctxt "6f6bc22554c7174c3fbb7cf12fee8111" msgid "" "There are advanced topics that are beyond the scope of this user " "guide, but knowing about them might be of interest:" msgstr "" msgctxt "a5892327cba48f33241da205165b7cd8" msgid "" "You can write a macro so that values can be passed to the subroutine. The " "values are called arguments. However, recorded macros in LibreOffice do not " "accept arguments." msgstr "" msgctxt "56182adf211334e1f72a1f6b93cdd6cb" msgid "" "Another kind of subroutine is called a function, which is a subroutine that " "returns a value. Functions are defined by the keyword FUNCTION at the " "beginning. However, recorded macros in LibreOffice always create " "subroutines, not functions." msgstr "" msgctxt "105ec0b62cdb21d1eedc949f52ed7564" msgid "" "Defining variables using Dim" msgstr "" msgctxt "084ceffbfdee0c32b2030777e45b19f1" msgid "" "You can write information on a piece of paper so that you can look at it " "later. A variable, like a piece of paper, contains information that can be " "changed and read. The Dim keyword originally stood for Dimension and was " "used to define the dimensions of an array. The dim statement used in the " "EnterMyName macro is similar to setting aside a piece of paper to be used to " "store a message or note." msgstr "" msgctxt "61f48a4ffd5c5cce1d7bb7637e7e8f26" msgid "" "In the EnterMyName macro, the variables document and " "dispatcher are defined as the type object. Other common " "variable types include string, integer, and date. " "A third variable, named args1, is an array of property values. A " "variable of type array allows a single variable to contain multiple " "values, similar to storing multiple pages in a single book. Values in an " "array are usually numbered starting from zero. The number in the parentheses " "indicates the highest usable number to access a storage location. In this " "example, there is only one value, and it is numbered zero." msgstr "" msgctxt "a2f30471651173fa3d50798ee6c14db6" msgid "Explaining macro code" msgstr "" msgctxt "ef835c91d9af76d61fe47ec6e3b7699f" msgid "" "The following is an explanation of the code used in the EnterMyName macro. " "You may not understand all the details, but the explanation of each line of " "code may give you some idea of how a macro works." msgstr "" msgctxt "0c0e372ece3eb5556f2a6bbcfde3c776" msgid "Defines the start of the macro" msgstr "" msgctxt "a05de3b46cbaf4d7b499bae2b35728af" msgid "Defined as a variable" msgstr "" msgctxt "5cd5060b2b132de431ff46b3fc72629b" msgid "" "document = ThisComponent.CurrentController.Frame" msgstr "" msgctxt "6c2ec09ce44ec1dff3518c0fd7f87622" msgid "ThisComponent refers to the current document." msgstr "" msgctxt "e598cd7083f91e2f38c934532b1c54cb" msgid "" "CurrentController is a property referring to a service that controls the " "document. For example, when you type, it is the current controller that " "takes note of what you type. CurrentController then dispatches the changes " "to the document frame." msgstr "" msgctxt "8ecc642c15edde94f526524c9ec53a75" msgid "" "Frame is a controller property that returns the main frame for a document. " "Therefore, the variable named document refers to a document’s frame, which " "receives dispatched commands." msgstr "" msgctxt "74b14dd5fe7d1ede0f1dd17c2463c753" msgid "" "Most tasks in LibreOffice are accomplished by dispatching a command. " "LibreOffice includes a dispatch helper service, which does " "most of the work when using dispatches in macros. The method " "CreateUnoService accepts the name of a service and it tries to create an " "instance of that service. On completion, the dispatcher variable contains a " "reference to a DispatchHelper." msgstr "" msgctxt "c435a5f49e8cb2dacdf9471524383f16" msgid "" "dim args1(0) as new com.sun.star.beans.PropertyValue" msgstr "" msgctxt "a4f881b2da30caf3f100c200658f6f08" msgid "" "Declares an array of properties. Each property has a name and a value. In " "other words, it is a name/value pair. The created array has one property at " "index zero." msgstr "" msgctxt "27aa101c00feecd13bd8831428fcd808" msgid "" "args1(0).Value = \"Your name\"" msgstr "" msgctxt "06fc6e5f50a1330c7803601bb25794bc" msgid "" "Gives the property the name “Text” and the value “Your name”, which is the " "text that is inserted when the macro is run." msgstr "" msgctxt "50d89b1e95ea2510fd8498d6454caa47" msgid "" "dispatcher.executeDispatch(document, \".uno:InsertText\", \"\", 0, args1())" msgstr "" msgctxt "a8bba542c42c7b1d93ff384961c6b4f9" msgid "" "This is where the magic happens. The dispatch helper sends a dispatch to the " "document frame (stored in the variable named document) with the command .uno:" "InsertText. The next two arguments, frame name and search flags, are beyond " "the scope of this document. The last argument is the array of property " "values to be used while executing the command InsertText." msgstr "" msgctxt "17d534f106d56b254093f8724202f0cd" msgid "end sub" msgstr "" msgctxt "795b0e3cba6a75ba12f3928b2c31ab9e" msgid "The last line of the code ends the subroutine." msgstr "" msgctxt "cdd4bfd7b98b0b6cb4088c47ee529178" msgid "Creating a macro" msgstr "" msgctxt "f281032cf7600dbeee7611ee7b882be4" msgid "" "When creating a macro, it is important to ask two questions before recording:" "" msgstr "" msgctxt "8a2f36c807c1ac8136b6ee91b6e32a77" msgid "Can the task be written as a simple set of commands?" msgstr "" msgctxt "1c31d205b7a01b93ef75c8974d157bb3" msgid "" "Can the steps be arranged so that the last command leaves the cursor ready " "for the next command or entering text or data into the document?" msgstr "" msgctxt "fb2cd45b2b6234c8f7b81e1b2d3ce69d" msgid "A more complicated example of a macro" msgstr "" msgctxt "83a196173fe78eda4df6c0862d8335df" msgid "" "A common task is to copy rows and columns of data from a web site and format " "them as a table in a text document as follows:" msgstr "" msgctxt "3f32af97f4af2283b0c3d7cc7d95d49d" msgid "Copy the data from the web site to the clipboard." msgstr "" msgctxt "1a99778bb66db18301ad0e5191b2e21d" msgid "" "To avoid strange formatting and fonts, paste the text into a Writer document " "as unformatted text." msgstr "" msgctxt "6ecf2556e7671222911de22611f477f1" msgid "" "Reformat the text with tabs between columns so that it can be converted into " "a table using Table > Convert > Text to Table on the main menu bar." msgstr "" msgctxt "a816639aa1a0e73111dbdf6773b6d6b9" msgid "" "With the two questions given above in mind, inspect the text to see if a " "macro can be recorded to format the text. An example of copied data showing " "the FontWeight constants group from the API web site (Figure 5). The first column in this example indicates a constant name and each " "name is followed by a space and a tab, and each line has two trailing spaces." "" msgstr "" msgctxt "2853d3c07145edbe3e39e5c53bbd56a3" msgid "" "The first column in the table should contain a numeric value, the second " "column the name, and the third column the description. This conversion is " "easily accomplished for every row except for DONTKNOW and NORMAL, which do " "not contain a numeric value, but the values are between 0 and 100 and can be " "entered manually." msgstr "" msgctxt "4d3a0c9737518bd15a299beb56ffdca0" msgid "DONTKNOW The font weight is not specified/known. " msgstr "" msgctxt "09fd4614e9ad664daaf334d475b620f5" msgid "THIN specifies a 50% font weight. " msgstr "" msgctxt "249b6360c28f4c224dfc94127d567a06" msgid "ULTRALIGHT specifies a 60% font weight. " msgstr "" msgctxt "2897fa9e03031ce1825da20b210a4629" msgid "LIGHT specifies a 75% font weight. " msgstr "" msgctxt "38e79ddfe91c738a02b6daa4da2dfaa4" msgid "SEMILIGHT specifies a 90% font weight. " msgstr "" msgctxt "507b0fb75256d3041c21b66e0e8fe052" msgid "NORMAL specifies a normal font weight. " msgstr "" msgctxt "3399056e3afe490d13f24d28ba2b1d06" msgid "SEMIBOLD specifies a 110% font weight. " msgstr "" msgctxt "0a3147ae88bc4b4554067397d6d46e69" msgid "BOLD specifies a 150% font weight. " msgstr "" msgctxt "23bf10531541dd5a479772db28aa6746" msgid "ULTRABOLD specifies a 175% font weight. " msgstr "" msgctxt "506619b42f4849bbc06585c475666b03" msgid "BLACK specifies a 200% font weight. " msgstr "" msgctxt "4e25308afc6eefe1d4d3bb927c8516cd" msgid "" "" msgstr "" msgctxt "7c6e18e3ec9fef4400ae8d01b45da466" msgid "Figure 5: Example of copied data" msgstr "" msgctxt "8f4a8e6ea8b33e55874c461fe64f1273" msgid "" "The data can be cleaned up in several ways, all of them easy to accomplish. " "The example given below uses keystrokes that assume the cursor is at the " "start of the line with the text THIN." msgstr "" msgctxt "770572612c12a0120d82059c25cc1ceb" msgid "" "Go to Tools > Macros > Record Macro on the main menu bar to start " "recording." msgstr "" msgctxt "bdac1ed9769dce1c24518905890b977e" msgid "" "Press Ctrl+Right Arrow to move the cursor to the start of " "“specifies”." msgstr "" msgctxt "e80ad13f74014693cbbabd02b67dd729" msgid "Press Backspace twice to remove the tab and the space." msgstr "" msgctxt "d55c342e11fffe07d84d6f23b6363c8c" msgid "" "Press Tab to add the tab without the space after the constant name." msgstr "" msgctxt "3782ea0ec2144bf204261fb64a6e8e2f" msgid "" "Press Delete to delete the lower case s and then press Shift+S to add an upper case S." msgstr "" msgctxt "752baea905b41225b0f612a673e1de43" msgid "" "Press Ctrl+Right Arrow twice to move the cursor to the start of the " "number." msgstr "" msgctxt "25bf19fdedfe25a077c02afc1074f1b8" msgid "" "Press Ctrl+Shift+Right Arrow to select and move the cursor before " "the % sign." msgstr "" msgctxt "89b55690218dece3d2d4f75944b1362c" msgid "Press Ctrl+C to copy the selected text to the clipboard." msgstr "" msgctxt "55356cb32eea6b47e5f892e096fa8b4e" msgid "Press End to move the cursor to the end of the line." msgstr "" msgctxt "1e8cc705480cd33f54687b01a9fc8083" msgid "Press Backspace twice to remove the two trailing spaces." msgstr "" msgctxt "eaeb3c6736be2d1a349346d1d26c4c5f" msgid "Press Home to move the cursor to the start of the line." msgstr "" msgctxt "257291719291797db30ff924446625af" msgid "" "Press Ctrl+V to paste the selected number to the start of the line." msgstr "" msgctxt "264d23414a2e698035049044faaa23a3" msgid "" "Pasting the value also pasted an extra space, so press Backspace to " "remove the extra space." msgstr "" msgctxt "4344fe56181151768b107222c438c186" msgid "Press Tab to insert a tab between the number and the name." msgstr "" msgctxt "8d6889112d9b7fce67ac45dcc0150edf" msgid "Press Home to move to the start of the line." msgstr "" msgctxt "e616fbaa70f84ff05e4175551c515842" msgid "Press down arrow to move to the next line." msgstr "" msgctxt "42a870fc92f6b198befd1310b3ac2b35" msgid "" "Stop recording the macro and save the macro, see “” on page ." msgstr "" msgctxt "4803fb17ac07605e6eda4a96dcba0493" msgid "" "It takes much longer to read and write the steps than to record the macro. " "Work slowly and think about the steps as you do them. With practice this " "becomes second nature." msgstr "" msgctxt "8fac8ecec3e173281b8ba11f078880a8" msgid "" "The generated macro code in Listing 4 has been modified to " "contain the step number in the comments to match the code to the step above." msgstr "" msgctxt "b082c29054d3815356e0cbf6662e3993" msgid "" "Listing 4: Copying numeric value to start of the column" msgstr "" msgctxt "968428cc485f1c0c0788d78a4eb6d737" msgid "sub CopyNumToCol1" msgstr "" msgctxt "694178b95b3826ee265a861586cee1e2" msgid "" "rem (3) Press Ctrl+Right Arrow to move the cursor to " "the start of “specifies”." msgstr "" msgctxt "5273a23f8e90d03210f048d95d19ffd7" msgid "" "dispatcher.executeDispatch(document, \".uno:GoToNextWord\", \"\", 0, Array())" msgstr "" msgctxt "31e24388a78ea87ebd6d695635fab823" msgid "" "rem (4) Press Backspace twice to remove the tab and " "the space." msgstr "" msgctxt "6dfc76e4baf904034c2421e2c507c5f9" msgid "" "dispatcher.executeDispatch(document, \".uno:SwBackspace\", \"\", 0, Array())" msgstr "" msgctxt "9262b1d8b01d6797ed153c8b911fc5e2" msgid "" "rem (5) Press Tab to add the tab without the space " "after the constant name." msgstr "" msgctxt "c2863f1e106717d1d351768634c39032" msgid "" "dim args4(0) as " "new com.sun.star.beans.PropertyValue" msgstr "" msgctxt "ac81fc485096017c8f974f854ffb8a43" msgid "" "args4(0).Name = \"Text\"" msgstr "" msgctxt "a42a5ac83c961b199e55e34a39a51132" msgid "" "args4(0).Value = " "CHR$(9)" msgstr "" msgctxt "d1a980f80d8eff06481da911d8277cb6" msgid "" "dispatcher.executeDispatch(document, \".uno:InsertText\", \"\", 0, args4())" msgstr "" msgctxt "72e5b0432fc383db7bf4ab8e906df102" msgid "" "rem (6) Press Delete to delete the lower case s ...." msgstr "" msgctxt "e299e33efcdc92069aa5bfcc49dd6630" msgid "" "dispatcher.executeDispatch(document, \".uno:Delete\", \"\", " "0, Array())" msgstr "" msgctxt "3d2d90139d95ffebb32cb6c1c124db84" msgid "" "rem (6) ... and then press Shift+S to add an upper " "case S." msgstr "" msgctxt "33c24aec820a6492a1d68f6b46081541" msgid "" "dim args6(0) as " "new com.sun.star.beans.PropertyValue" msgstr "" msgctxt "0e729371382f16b3b473a5eedc1f3715" msgid "" "args6(0).Name = \"Text\"" msgstr "" msgctxt "041cfa4eff366da5dac6fca79411406d" msgid "" "args6(0).Value = " "\"S\"" msgstr "" msgctxt "c5107135294e5dda05b185478c1c45fc" msgid "" "dispatcher.executeDispatch(document, \".uno:InsertText\", \"\", 0, args6())" msgstr "" msgctxt "724adbc195a0aa60930739bdde67dd3e" msgid "" "rem (7) Press Ctrl+Right Arrow twice to move the " "cursor to the number." msgstr "" msgctxt "ada6b0760f28df487f932fad5c50ff47" msgid "" "rem (8) Press Ctrl+Shift+Right Arrow to select the " "number." msgstr "" msgctxt "30c779185d3ed198468c5b6cc7b13f1e" msgid "" "dispatcher.executeDispatch(document, \".uno:WordRightSel\", \"\", 0, Array())" msgstr "" msgctxt "56ec9cbc3eff9b3da413484a2fa1f02f" msgid "" "rem (9) Press Ctrl+C to copy the selected text to the " "clipboard." msgstr "" msgctxt "8c40a47feccb95b699d3b0e97c20e1fa" msgid "" "dispatcher.executeDispatch(document, \".uno:Copy\", \"\", " "0, Array())" msgstr "" msgctxt "d6ecad38ac8097d736b66b35dd703072" msgid "" "rem (10) Press End to move the cursor to the end of " "the line." msgstr "" msgctxt "5cfe02616f23e1662dc32fa1a8816826" msgid "" "dispatcher.executeDispatch(document, \".uno:GoToEndOfLine\", \"\", 0, Array())" msgstr "" msgctxt "aff49116611d958d21ecbda3f68ce3e5" msgid "" "rem (11) Press Backspace twice to remove the two " "trailing spaces." msgstr "" msgctxt "5c42a77411c6314ea0158c75414a20f2" msgid "" "rem (12) Press Home to move the cursor to the start of " "the line." msgstr "" msgctxt "0dcd8939c5162fa5b0d0da9a02addad3" msgid "" "dispatcher.executeDispatch(document, \".uno:GoToStartOfLine\", \"\", 0, Array())" msgstr "" msgctxt "acc45ce2dafd3dc6b09218bcaaf9a678" msgid "" "rem (13) Press Ctrl+V to paste the selected number to " "the start of the line." msgstr "" msgctxt "8f5e07ca1f1835a99bfe525c142f0a8b" msgid "" "dispatcher.executeDispatch(document, \".uno:Paste\", \"\", " "0, Array())" msgstr "" msgctxt "1a81277ea77fa837c3a3cf4910daadf8" msgid "" "rem (14) Press Backspace to remove the extra space." msgstr "" msgctxt "002c9bfb3b5e7adb88adc0ef5181467f" msgid "" "rem (15) Press Tab to insert a tab between the number " "and the name." msgstr "" msgctxt "bbbfb2e5577d0f4ae362178ee4bf12d1" msgid "" "dim args17(0) as " "new com.sun.star.beans.PropertyValue" msgstr "" msgctxt "6ff70451de28d728abbc07da5b8c0a0e" msgid "" "args17(0).Name = \"Text\"" msgstr "" msgctxt "5c72e43b8ebc0b547e1c9031d2a94d90" msgid "" "args17(0).Value = " "CHR$(9)" msgstr "" msgctxt "124364126643a4c5acf9d107b9e456db" msgid "" "dispatcher.executeDispatch(document, \".uno:InsertText\", \"\", 0, args17())" msgstr "" msgctxt "23f31f8537b1a3af5a5a53f6e7efc06e" msgid "" "rem (16) Press Home to move to the start of the line." msgstr "" msgctxt "05df342ae45c17b13c1202b40731419b" msgid "" "rem (17) Press Down Arrow to move to the next line." msgstr "" msgctxt "0a299b41562d0dc9d5b9fb291cced0f5" msgid "" "dim args19(1) as " "new com.sun.star.beans.PropertyValue" msgstr "" msgctxt "f9160ac75df5714c92612da700c43f32" msgid "" "args19(0).Name = \"Count\"" msgstr "" msgctxt "84f4f1efeb5df0849e3b1b1636bdff7d" msgid "" "args19(0).Value = " "1" msgstr "" msgctxt "013ff2d07ba767852435e7a9e3cf8282" msgid "" "args19(1).Name = " "\"Select\"" msgstr "" msgctxt "cdbfa9f7dd9549859871002f8b448550" msgid "" "args19(1).Value = " "false" msgstr "" msgctxt "70284f1bc5eb7d2b3e927e5298fd5505" msgid "" "dispatcher.executeDispatch(document, \".uno:GoDown\", \"\", " "0, args19())" msgstr "" msgctxt "19dcf447355669c65383cec1b24ff023" msgid "" "Cursor movements are used for all operations (as opposed to searching). If " "run on the DONTKNOW line, the word weight is moved to the front of " "the line, and the first “The” is changed to “She”. This is not perfect, but " "you should not run the macro on the lines that did not have the proper " "format. You need to do these manually." msgstr "" msgctxt "b0ed3fb47e0ba556bbf8340408e78a7a" msgid "Running a macro quickly" msgstr "" msgctxt "9f826d164d17d12a3f2add1b1a6b2d59" msgid "" "It is tedious to repeatedly run the macro using Tools > Macros > Run " "Macro on the main menu bar when the macro can be run from the IDE (Figure 3 on page 6)." msgstr "" msgctxt "7ea1ce22ee0b82fd4b29470b115805db" msgid "" "Go to Tools > Macros > Organize Macros > LibreOffice Basic on the " "main menu bar to open the Basic Macro dialog (Figure 1 on " "page 5)." msgstr "" msgctxt "b214d6b696d01ec273460e667d41f83c" msgid "" "Select your macro and click Edit to open the macro in the IDE." msgstr "" msgctxt "7dbd08dd3f101e782fc9c0267d91cbe0" msgid "" "Click the Run BASIC icon on the Macro toolbar, " "or press the F5 key, to run the macro." msgstr "" msgctxt "1779ac9eed1f100361d1793cda3697fd" msgid "" "Unless you change the first macro, it is the empty macro named Main. Modify " "Main so that it reads as shown in Listing 5." msgstr "" msgctxt "e76607ac0cf2741f985f2aaa0cd604ba" msgid "" "Now, you can run CopyNumToCol1 by repeatedly clicking the Run Basic " "icon in the toolbar of the IDE. This is very fast and easy, especially for " "temporary macros that will be used a few times and then discarded." msgstr "" msgctxt "c7b2960c09010050cba1c82283cff8dd" msgid "Listing 5: Modify Main to call CopyNumToCol1." msgstr "" msgctxt "99eff2e96f989b5c309ebeef8c24ab78" msgid " CopyNumToCol1" msgstr "" msgctxt "5ffce529a3ba48eb958c452dfcc2a928" msgid "Macro recorder failures" msgstr "" msgctxt "47f6688acfd9512042e2751660fdf619" msgid "" "Sometimes the macro recorder has a failure and understanding LibreOffice " "internal workings helps to understand how and why the macro recorder " "sometimes fails. The primary offender is related to the dispatch framework " "and its relationship to the macro recorder." msgstr "" msgctxt "be12c1fe06551736cb0ecae7480141ad" msgid "Dispatch framework" msgstr "" msgctxt "1241ae922b268124e7ab1d54a7a34f07" msgid "" "The purpose of the dispatch framework is to provide " "uniform access to components (documents) for commands that usually " "correspond to menu items. Using File > Save from the main menu bar, " "the shortcut keys Ctrl+S, or clicking the Save icon are " "all of commands that are translated into the same “dispatch command”." msgstr "" msgctxt "d225723c38d4e0dfdf9ca3144e354d8c" msgid "" "The dispatch framework can also be used to send “commands” back to the User " "Interface (UI). For example, after saving the document, the File Save " "command is disabled. As soon as the document has been changed, the File Save " "command is enabled." msgstr "" msgctxt "722e0db1f80e7ace2132e4c9610545bd" msgid "" "A dispatch command is text, for example .uno:InsertObject or .uno:" "GoToStartOfLine. The command is sent to the document frame and this passes " "on the command until an object is found that can handle the command." msgstr "" msgctxt "82d476c832730f19e3b337a3487ec6e9" msgid "How the macro recorder uses the dispatch framework" msgstr "" msgctxt "e38ecd41abe6a8144d622acd4084e722" msgid "" "The macro recorder records the generated dispatches. The recorder is " "relatively simple tool to use and the same commands that are issued are " "recorded for later use. The problem is that not all dispatched commands are " "complete. For example, inserting an object generates the following code:" msgstr "" msgctxt "952bd43753e4240d6fc1f80d91fb9824" msgid "" "dispatcher.executeDispatch(document, \".uno:InsertObject\", \"\", 0, Array())" msgstr "" msgctxt "6c7bdffa582dd9c6593aee38443129ad" msgid "" "It is not possible to specify what kind of object to create or insert. If an " "object is inserted from a file, you cannot specify which file to insert." msgstr "" msgctxt "7d4d1fe9812767326141dd79e127f367" msgid "" "Recording a macro and using Tools > Options on the main menu bar to " "open and modify configuration items, the generated macro does not record any " "configuration changes. In fact, the generated code is commented so it will " "not even be run." msgstr "" msgctxt "64f4ed202b26f97d3e4faf526d473782" msgid "rem dispatcher.executeDispatch(document," msgstr "" msgctxt "e7f5a0576c1022f60d186a629099bfc5" msgid " \".uno:OptionsTreeDialog\", \"\", 0, Array())" msgstr "" msgctxt "072e38558e5e8bc76c8239c00b469f59" msgid "" "If a dialog is opened, a command to open the dialog is likely to be " "generated. Any work done inside the dialog is not usually recorded. Examples " "of this include macro organization dialogs, inserting special characters, " "and similar types of dialogs. Other possible problems using the macro " "recorder include things such as inserting a formula, setting user data, " "setting filters in Calc, actions in database forms, and exporting a document " "to an encrypted PDF file. You never know for certain what will work unless " "you try it. For example, the actions from the search dialog are properly " "captured." msgstr "" msgctxt "996c8dba597511e8a6bc4632786032d0" msgid "Other options" msgstr "" msgctxt "0095211cb1f849a7f6e97cdb6a000c9f" msgid "" "When the macro recorder is not able to solve a specific problem, the usual " "solution is to write code using the LibreOffice objects. Unfortunately, " "there is a steep learning curve for these LibreOffice objects. It is usually " "best to start with simple examples and then increase the scope of macros as " "you learn more. Learning to read generated macros is a good place to start." msgstr "" msgctxt "38f2c19c36526d85dcd9e10646368d9c" msgid "" "If you record Calc macros, and the recorder can correctly generate a macro, " "there is an add-in available which converts Calc macros " "when they are recorded. The final code manipulates LibreOffice " "objects rather than generating dispatches. This can be very useful for " "learning the object model and can be downloaded directly from the web site:" msgstr "" msgctxt "5a8c8df70df9cb5fcf229215baffdd79" msgid "" "http://www.paolo-mantovani.org/downloads/DispatchToApiRecorder/" "" msgstr "" msgctxt "96294dc7684ff142d0dc672980453aa8" msgid "Macro organization" msgstr "" msgctxt "176431034988cdc577a118aab1c99515" msgid "" "In LibreOffice, macros are grouped in modules, modules are grouped " "in libraries, and libraries are grouped in " "library containers. A library is usually used as a major grouping for either " "an entire category of macros, or for an entire application. Modules usually " "split functionality, such as user interaction and calculations. Individual " "macros are subroutines and functions. " "Figure 6 shows an example of the hierarchical structure of macro " "libraries in LibreOffice." msgstr "" msgctxt "1b08add6ff53f5f56863910899d8847a" msgid "" "Go to Tools > Macros > Organize Macros > LibreOffice Basic on the " "main menu bar to open the LibreOffice Basic Macros dialog (Figure 1 on page 5). All available library containers are " "shown in the Macro from list. Every document is a library " "container, capable of containing multiple libraries. The application itself " "acts as two library containers, one container for macros distributed with " "LibreOffice called LibreOffice Macros, and one container for personal macros " "called My Macros." msgstr "" msgctxt "0c0ea4928e9678e6397d6470bd7e7a15" msgid "" "The LibreOffice Macros are stored with the application runtime code, which " "may not be editable to you unless you are an administrator. This helps " "protect these macros because they should not be changed and you should not " "store your own macros in the LibreOffice container." msgstr "" msgctxt "7be0daf73a8518a1cf0a0fcbb70984f0" msgid "" "Unless your macros are applicable to a single document, and only to a single " "document, your macros will probably be stored in the My Macros container. " "The My Macros container is stored in your user area or home directory." msgstr "" msgctxt "658928392cb16861f40cda3442de1938" msgid "Figure 6: Macro Library hierarchy" msgstr "" msgctxt "957a6170ed6058cbfca2a32067198e01" msgid "" "If a macro is contained in a document, then a recorded macro will attempt to " "work on that document; because it primarily uses “ThisComponent” for its " "actions." msgstr "" msgctxt "95102350f4553d2fbd00a6630b48c9ea" msgid "" "Every library container contains a library named Standard. It is " "better to create your own libraries with meaningful names than to use the " "Standard library. Not only are meaningful names easier to manage, but they " "can also be imported into other library containers whereas the Standard " "library cannot." msgstr "" msgctxt "31c2b2e284e07db14b03c62715a08db0" msgid "Caution" msgstr "" msgctxt "11ed5ae7b8e7a28e571f0ed62c4fe797" msgid "" "LibreOffice allows you to import libraries into a library container, but it " "will not allow you to overwrite the library named Standard. Therefore, if " "you store your macros in the Standard library, you cannot import them into " "another library container." msgstr "" msgctxt "77ac42f0d0efc0c35b7d847e550dfdb1" msgid "" "Just as it makes good sense to give your libraries meaningful names, it is " "prudent to use meaningful names for your modules. By default, LibreOffice " "uses names such as Module1, Module2 and so on." msgstr "" msgctxt "eb29e3928451a688fc109feffb0d1a02" msgid "" "As you create your macros, you must decide where to store them. Storing a " "macro in a document is useful if the document will be shared and you want " "the macro to be included with the document. Macros stored in the application " "library container named My Macros, however, are globally available to all " "documents." msgstr "" msgctxt "4f869cff0fa739a4d6ad7aa5a652c961" msgid "" "Macros are not available until the library that contains them is loaded. The " "Standard library and Template library, however, are automatically loaded. A " "loaded library is displayed differently from a library that is not loaded. " "To load the library and the modules it contains, double-click on the library." "" msgstr "" msgctxt "62616251b653393fe710c1fb16a0e0f0" msgid "Where are macros stored?" msgstr "" msgctxt "824335a536b4f001cb717eeb6674652f" msgid "" "LibreOffice stores user-specific data in a directory in the home directory " "for each user. The location is operating system specific. Go to Tools > " "Options > LibreOffice > Paths on the main menu bar to view where other " "configuration data are stored. For example, on computer running Windows XP, " "this is C:\\Documents and Settings\\\\Application Data. " "User macros are stored in LibreOffice\\4\\user\\basic. Each library " "is stored in its own directory off the basic directory." msgstr "" msgctxt "9609ea30355c5f91d980646661095b58" msgid "" "For casual use, it is not necessary to understand where " "macros are stored. If you know where they are stored, however, you can " "create a backup, share your macros, or inspect them if there is an error." msgstr "" msgctxt "57e012e1b0cb19098c100b6919c25b4d" msgid "" "Go to Tools > Macros > Organize Dialogs on the main menu bar to " "open the LibreOffice Macro Organizer dialog (Figure 2 on " "page 5). Alternatively, go to Tools > Macros > " "Organize Macros > LibreOffice Basic on the main menu bar to open the " "LibreOffice Macros dialog (Figure 1 on page 5) and then click the Organizer button." msgstr "" msgctxt "3fdca3f7868baeecf5c2715705f6af9d" msgid "Importing macros" msgstr "" msgctxt "8d9f9e8466cbba840e9e3190ba3b984b" msgid "" "The LibreOffice Macro Organizer dialog allows you to import macro " "libraries into your document as well as creating, deleting, and renaming " "libraries, modules, and dialogs." msgstr "" msgctxt "c0ecccdfdf7a8b983a5833b14c1962b2" msgid "" "Select the library container to use and then click Import to import " "macro libraries (Figure 2 on page 5)." msgstr "" msgctxt "2bdeca77ad5fe781a7c63c09820867b6" msgid "" "Navigate to the directory containing the library to import (Figure " "7). There are usually two files from which to choose, dialog.xlb " "and script.xlb. It does not matter which of these two files you select; both " "will be imported. Macros can be stored in libraries inside LibreOffice " "documents. Select a document rather than a directory on disk to import " "libraries contained in a document." msgstr "" msgctxt "69198b211740bbbf9b2688c397f718b1" msgid "You cannot import the library named Standard." msgstr "" msgctxt "b7ded28480f20257abd427780a4635ae" msgid "Figure 7: Navigating to a macro library" msgstr "" msgctxt "12ae2a12586001e30745cb0457586ae3" msgid "Tip" msgstr "" msgctxt "0214d4935943891cb26d802dace67b5c" msgid "" "On a computer operating Linux, the LibreOffice specific files are stored in " "the home directory of a user in a directory whose name begins with a period. " "Directories and files with names beginning with a period may be hidden and " "not shown in a normal selection dialog. If using LibreOffice dialogs, rather " "than the operating system specific dialogs, type the name of the desired " "directory in the Name field." msgstr "" msgctxt "4bb2ea53bd0ae5e7ddcff3e736d0a354" msgid "" "Select a file and click Open to continue and open the Import " "Libraries dialog (Figure 8)." msgstr "" msgctxt "bfb2155ab984780b3a0d01f04af5db2e" msgid "Figure 8: Choose library import options" msgstr "" msgctxt "e0c46044ed078c387619a4a380d66b2c" msgid "Select the following options for importing libraries:" msgstr "" msgctxt "4f1e6df5f530dd4a502acb8882724ae4" msgid "" "If no options are selected, the library is copied to your user macro " "directory. However, if the library you are importing has the same name and " "you are importing into the same location, it will not be copied." msgstr "" msgctxt "e1d5e65f96ffb756f1fea9dd8737ff93" msgid "" "Select Replace existing libraries if the library you want " "to import has the same name and you want to replace the existing library." msgstr "" msgctxt "693f517a438ae2c17b0f4ef725b59750" msgid "" "Select Insert as reference if you want to use the library as " "reference, but not import the library into your document. When a library is " "used as a reference, it remains in its current location and is read only." msgstr "" msgctxt "dfd9e37220664a1848dfb6967c38c7f7" msgid "Click OK to import the macro library you selected." msgstr "" msgctxt "6f0c4dff02e1b491e05e430a6750a077" msgid "Downloading macros to import" msgstr "" msgctxt "8f1877d3f5688b78f7efd60df6e0e7c0" msgid "" "Macros are available for download. Some macros are contained in documents, " "some as regular files that you must select and import, and some as macro " "text that should be copied and pasted into the Basic IDE. See “” on " "page on how to add macros to your macro library and “” on page " " on how to edit macros using the Basic IDE." msgstr "" msgctxt "77378107510a5a3cd02f8848f7d393be" msgid "" "Some macros are available as free downloads on the Internet (see Table " "1). " msgstr "" msgctxt "b6b4c911e24ec6b489df0160cd8a6c26" msgid "Table 1. Macro examples" msgstr "" msgctxt "ce5bf551379459c1c61d2a204061c455" msgid "Location" msgstr "" msgctxt "b5a7adde1af5c87d7fd797b6245c2a39" msgid "Description" msgstr "" msgctxt "44a888e214de90cd9610d012f20bd31f" msgid "http://www.pitonyak.org/oo.php " msgstr "" msgctxt "c3c4ad92806676b74983486907b3064a" msgid "Reference materials regarding macros." msgstr "" msgctxt "02d31e3b1ea2b709461d280b610a9d6a" msgid "http://www.pitonyak.org/database/ " msgstr "" msgctxt "9c49f3bea39243ed9ddae74b544bf6f0" msgid "Reference materials regarding database macros." msgstr "" msgctxt "94dc11605734683bbdf55726096484fc" msgid "https://wiki.documentfoundation.org/Macros " msgstr "" msgctxt "ed8af67bb9d70ed52f089d22282f6e42" msgid "Lots of links to macros." msgstr "" msgctxt "52a6b1d0f530258be2efe1d467b0fa8d" msgid "http://en.libreofficeforum.org/ " msgstr "" msgctxt "cfc06c327cdd68f700a43ba797dce2f5" msgid "http://forum.openoffice.org/en/forum/ " msgstr "" msgctxt "2e0d6af3fb0a424293322156e58a20ef" msgid "Forums, with many examples and help." msgstr "" msgctxt "1f8fd61c7daaaa27a90f7577e32048aa" msgid "How to run a macro" msgstr "" msgctxt "99800d4361bfb5ed8cea82ce8a24ce2b" msgid "" "Although you can use Tools > Macros > Run Macro to run all macros, " "this is not efficient for frequently run macros. See “” on " "page for more information." msgstr "" msgctxt "18d3304feccd7770d4e91fd3f710f39b" msgid "" "A more common technique for frequently used macros is to link the " "macro to a toolbar icon, menu item, keyboard shortcut, or a button " "embedded in a document. While choosing a method, it is also good to ask " "questions such as:" msgstr "" msgctxt "e422c2d3d9e521efccb744410c4ae087" msgid "" "Should the macro be available for only one document, or globally for all " "documents?" msgstr "" msgctxt "d6c3ca2fc29fec09c9d6602afb40d1fd" msgid "Is the macro for a specific document type, such as a Calc document?" msgstr "" msgctxt "e931d0db6a067ef2ca52e7dd41eae377" msgid "How frequently will the macro be used?" msgstr "" msgctxt "606f1a273d33f07705711e035528d3fd" msgid "" "The answers will determine where to store the macro and how to make it " "available. For example, you will probably not add a rarely used macro to a " "toolbar. To help determine your choices, see Table 2." msgstr "" msgctxt "baa19875c976124daeac609a8fdae1a3" msgid "Table 2. Methods for starting a macro" msgstr "" msgctxt "a1fa27779242b4902f7ae3bdd5c6d508" msgid "Type" msgstr "" msgctxt "7295efe445ba3b01a1d2927e5ed55140" msgid "LibreOffice" msgstr "" msgctxt "4f67fe16b274bf31a67539fbedb8f8d3" msgid "Document Type" msgstr "" msgctxt "0945359809dad1fbf3dea1c95a0da951" msgid "Document" msgstr "" msgctxt "ef05c8098cdb2b34e39c80515fc037bd" msgid "Toolbar" msgstr "" msgctxt "bafd7322c6e97d25b6299b5d6fe8920b" msgid "No" msgstr "" msgctxt "93cba07454f06a4a960172bbd6e2a435" msgid "Yes" msgstr "" msgctxt "b61541208db7fa7dba42c85224405911" msgid "Menu" msgstr "" msgctxt "756210d98ce28018652ca05e1dcaaf3e" msgid "Shortcut" msgstr "" msgctxt "a4ecfc70574394990cf17bd83df499f7" msgid "Event" msgstr "" msgctxt "38ff0c311e5a39fd0170b2da8857d5a0" msgid "" "Toolbars, menu items, and keyboard shortcuts" msgstr "" msgctxt "bf136595cb29eb6571d8d3a7db0386da" msgid "" "To add a menu item, keyboard shortcut, or toolbar " "icon that calls a macro, use the Customize dialog (Figure 9). The Customize dialog contains pages to configure menus, keyboard " "shortcuts, toolbars, and events. To open this dialog, go to Tools > " "Customize on the main menu bar or right-click in an empty space on a " "toolbar and select Customize Toolbar from the context menu." msgstr "" msgctxt "8a32c4c6940361b78921df0fd6d3a593" msgid "" "Complete coverage of the Customize dialog is beyond the scope of this " "chapter. Click the Help button to access the help pages included " "with LibreOffice or see Chapter 14 Customizing LibreOffice." msgstr "" msgctxt "ca4a6af987f9fe3fe015955b47df94a1" msgid "Figure 9: Menus page in Customize dialog" msgstr "" msgctxt "ddbde220c12fa0da0348c207003bd414" msgid "Events" msgstr "" msgctxt "f95eefa61bc076b3c95c2edf3450ca35" msgid "" "Whenever something happens in LibreOffice, it " "is called an event. For example, opening a " "document, pressing a key, or moving the mouse cursor are all events." " LibreOffice allows events to trigger the execution of a " "macro; the macro is then called an event handler. Full coverage of event " "handlers is well beyond the scope of this document, but a little knowledge " "can accomplish much." msgstr "" msgctxt "764a2caff05993fc0d3eff5de7b225e9" msgid "Caution" msgstr "" msgctxt "945b858279bde8e00775a73304e6dfeb" msgid "" "Be careful when you configure an event handler. For example, assume that you " "write an event handler that is called every time that a key is pressed, but " "you make a mistake so the event is not properly handled. One possible result " "is that your event handler will consume all key presses, forcing you to " "kill LibreOffice." msgstr "" msgctxt "ed653cf295e14d0bddb45f5949cf2d42" msgid "" "Go to Tools > Customize on the main menu bar to open the " "Customize dialog and select the Events tab (Figure 10). The events " "in the Customize dialog are related to the entire application and specific " "documents." msgstr "" msgctxt "8cccbbc3135888254d06ccbe637e2139" msgid "" "In Save In, select LibreOffice, or a specific document from the " "drop down menu to save your event." msgstr "" msgctxt "04cb8656b4bf35631b1181c10d1544df" msgid "" "A common use is to assign the Open Document event to call a specific macro. " "The macro then performs certain setup tasks for the document. Select the " "desired event and click Macro to open the Macro Selector dialog " "(Figure 4 on page 7)." msgstr "" msgctxt "d0b420d664eea03eee652c59644bcb48" msgid "" "Select the desired macro and click OK to assign the macro to the " "event. The Events page shows that the event has been assigned to a macro." msgstr "" msgctxt "cc6fe1d8b2a4d72cd5d3f9dbe70c3d27" msgid "Figure 10: Events page in Customize dialog" msgstr "" msgctxt "38ab9b53626816a24f589bca498a6c8d" msgid "" "Many objects in a document can be set to call macros when events occur. The " "most common use is to add a control, such as a button, into a document. Even " "double-clicking on a graphic opens a dialog with a Macros tab that allows " "you to assign a macro to an event." msgstr "" msgctxt "10e2f01ad3c01e7ca650e8e0b32a99b3" msgid "Extensions" msgstr "" msgctxt "337ebcdfa4ef8fae3fff6fe88913bf71" msgid "" "An extension is a package that can be installed into LibreOffice to " "add new functionality. Extensions can be written in almost any programming " "language and may be simple or sophisticated. Extensions can be grouped into " "types:" msgstr "" msgctxt "d5ee75d5617a699cab848fe035e2a41b" msgid "" "Calc Add-Ins, which provide new functionality for Calc, including new " "functions that act like normal built-in functions" msgstr "" msgctxt "087c0bd63aa524202be0bfdd2181e0d1" msgid "" "New components and functionality, which normally include some level " "of User Interface (UI) integration such as new menus or toolbars" msgstr "" msgctxt "76b3e8014cfdd3688fe1526dac8922f0" msgid "Pivot Tables that are used directly in Calc" msgstr "" msgctxt "c3f6d7b33420b90850d5e6d98c40c2ba" msgid "Chart Add-Ins with new chart types" msgstr "" msgctxt "d2421843432c2928bcd36c8aef0c8db0" msgid "Linguistic components such as spelling checkers" msgstr "" msgctxt "62625b2efd283af82322080135257e71" msgid "Document templates and images" msgstr "" msgctxt "dc837e06f364391cc2d2ab4be2da7f00" msgid "" "Although individual extensions can be found in several places, there is " "currently an extension repository at: http://extensions.libreoffice.org/" " and some documentation at http://libreplanet.org/wiki/Group:" "OpenOfficeExtensions/List." msgstr "" msgctxt "5ce13cf7d77edd8827fd505e533bb049" msgid "" "For more about obtaining and installing extensions, see Chapter 14, " "Customizing LibreOffice." msgstr "" msgctxt "5e05febb1503c5139220d9ef8c709bce" msgid "Writing macros without the recorder" msgstr "" msgctxt "f5caf2f8b16b5344125a6d2f5f90b867" msgid "" "The examples covered in this chapter are created using the macro recorder " "and the dispatcher. You can also write macros that directly access the " "objects that comprise LibreOffice if you are confident in writing computer " "code. In other words, you can create a macro that directly manipulates a " "document." msgstr "" msgctxt "326bd65b04131ff8d9464b67e8a0f5b5" msgid "" "Directly manipulating LibreOffice internal objects is an advanced topic that " "is beyond the scope of this chapter. A simple example, however, demonstrates " "how this works." msgstr "" msgctxt "ecd9bc63ff038cb0d88c72d9659e4817" msgid "Listing 6: Append the text “Hello” to the current document." msgstr "" msgctxt "a7ff798e2d93bcaf669629b419873b4c" msgid "Sub AppendHello" msgstr "" msgctxt "ba3032ff1eeb66077c45fd62776d8ccb" msgid " Dim oDoc" msgstr "" msgctxt "15050c15e9201b65940cd11a88f49d5b" msgid " Dim sTextService$" msgstr "" msgctxt "f0b891ed3de1abbed3f1a395b56726c1" msgid " Dim oCurs" msgstr "" msgctxt "43a0afd800320707cd9de6e7e8381795" msgid " " msgstr "" msgctxt "ab2a512ace8c7f1c92cdc9d693aaca12" msgid "" " REM ThisComponent refers to the currently active document." msgstr "" msgctxt "53ba2e7205144d7f573dd687601691b4" msgid " oDoc = ThisComponent" msgstr "" msgctxt "2efa51a95bb85d217cfaf0bbd7e4689d" msgid " REM Verify that this is a text document" msgstr "" msgctxt "287c81ba2fb8017223a0a1f789a81f75" msgid "" " sTextService = \"com.sun.star.text." "TextDocument\"" msgstr "" msgctxt "f3cd202faf4cfc756addc7274edf91f6" msgid "" " If NOT oDoc.supportsService(sTextService) " "Then" msgstr "" msgctxt "e9fa41fe13ff6ba3a18fb523a77f9c17" msgid "" " MsgBox \"This macro only works with a text document\"" msgstr "" msgctxt "9b439add879f024cfa34d669bc815716" msgid " Exit Sub" msgstr "" msgctxt "a0bd627e7169a27be29ce65fd570a1b5" msgid " End If" msgstr "" msgctxt "5ae4f46474e42ac0fe04439a7537f903" msgid "" " REM Get the view cursor from the current controller." msgstr "" msgctxt "a4ca26d4399131721759b909429b0914" msgid "" " oCurs = oDoc.currentController.getViewCursor()" msgstr "" msgctxt "2bf59ee90eebb46d2d2564d85baa7671" msgid " REM Move the cursor to the end of the document" msgstr "" msgctxt "2e61f20f47746600652a43795144caa1" msgid "" " oCurs.gotoEnd(False)" msgstr "" msgctxt "81169bd0d89a72e27dc2266c54221f59" msgid " REM Insert text \"Hello\" at the end of the document" msgstr "" msgctxt "bb0afac6d672ee958dc8afcc6a7926c6" msgid "" " oCurs.Text.insertString(oCurs, \"Hello\", False) " msgstr "" msgctxt "8033d2923f4ce3d1830fb9a87a293693" msgid "Finding more information" msgstr "" msgctxt "b8900e4cf399d46742962031eed0aa7b" msgid "" "Numerous resources are available that provide help with writing " "macros. Use Help > LibreOffice Help to open the LibreOffice help " "pages. The upper left corner of the LibreOffice help system contains a drop-" "down list that determines which help set is displayed. To view the help for " "Basic, choose LibreOffice Basic from this list." msgstr "" msgctxt "433cd2387fb55ef4c3837dd0b5ba383f" msgid "Included material" msgstr "" msgctxt "57fd5a570fa9136087d016ae6062f6ca" msgid "" "Many excellent macros are included with LibreOffice. Use Tools > Macros " "> Organize Macros > LibreOffice Basic to open the Macro dialog. Expand " "the Tools library in the LibreOffice library container. Inspect the Debug " "module—some good examples include WritedbgInfo(document) and " "printdbgInfo(sheet)." msgstr "" msgctxt "395d4823ef33a89d65549bb22fce66c5" msgid "Online resources" msgstr "" msgctxt "c31b4745b9266af8d75c11b96053be3e" msgid "" "The following links and references contain information regarding macro " "programming:" msgstr "" msgctxt "2c8adb553701cebee8bf6eb10dc7692c" msgid "" "http://ask.libreoffice.org/ (a Q & A site where volunteers " "answer questions related to LibreOffice)" msgstr "" msgctxt "890e83b09c946f4b43e3d852e3edddf3" msgid "" "http://forum.openoffice.org/en/forum/ (Apache OpenOffice " "community forum; volunteers answer questions about LibreOffice as well)" msgstr "" msgctxt "bae47ecee7734260e91a53431840ae02" msgid "" "http://en.libreofficeforum.org/ (Unofficial LibreOffice " "community forum)" msgstr "" msgctxt "5710568709883eeb0394643e85353fed" msgid "" "http://api.openoffice.org/docs/common/ref/com/sun/star/module-ix." "html (official IDL reference; here you will find almost every " "command with a description)" msgstr "" msgctxt "0dcb4f4f1292ecba000eb9efeb8d01e3" msgid "" "https://wiki.documentfoundation.org/Documentation/" "Other_Documentation_and_Resources (look in Programmers section for " "BASIC Programmers’ Guide and Developers’ Guide; the latter " "contains a detailed explanation)" msgstr "" msgctxt "a26c10059e97400314593ed0b60e289f" msgid "" "http://www.pitonyak.org/oo.php (macro page for Andrew Pitonyak)" msgstr "" msgctxt "f59b611bc1edb75a423e7cae7d5c62f4" msgid "" "http://www.pitonyak.org/AndrewMacro.odt (numerous examples of " "working macros)" msgstr "" msgctxt "e8f9fd8bb4a163537e43c02214437fd5" msgid "" "http://www.pitonyak.org/OOME_3_0.odt (Andrew Pitonyak’s book on " "macros)" msgstr "" msgctxt "81ee3bb74140054fbf4c4a9689278491" msgid "" "http://www.pitonyak.org/database/ (numerous macro examples using " "Base)" msgstr "" msgctxt "ef258b9a4b1fd9cf42bb4958a9cd84f2" msgid "Printed and eBook materials" msgstr "" msgctxt "8d25aa4720c71c363c0b39157fe671ee" msgid "" "There are currently no books specific to LibreOffice macros that are " "available for download." msgstr "" msgctxt "0fa971ec1f2ee593386495377b3990d7" msgid "" "Information in the following books is mostly applicable to LibreOffice; the " "books are available for purchase in both printed and eBook form from their " "publishers:" msgstr "" msgctxt "6d3dd511773ccadb061b024a11684339" msgid "" "Dr. Mark Alexander Bain’s Learn OpenOffice.org Spreadsheet Macro " "Programming.See http://www.packtpub.com/openoffice-ooobasic-" "calc-automation/book." msgstr "" msgctxt "288835dfbb1af1baf69abe1dfd8dd978" msgid "" "Roberto Benitez's Database Programming with OpenOffice.org Base & Basic. See http://www.lulu.com/product/paperback/database-programming-" "with-openofficeorg-base-basic/3568728" msgstr ""