OpenOffice.org Workshop
Wie kann man das aktuelle Datum oder die aktuelle Uhrzeit per Tastatur dauerhaft in ein Text- oder Tabellendokument einfügen?
出身の Daniel Rentz.
Inhaltsverzeichnis
1. Änderungen
Änderungen |
|
11.02.2003 |
Erste 見解/翻訳/版. |
28.06.2004 |
OOo 1.1 Beta -> OOo 1.1.x oController.決まり文句/製法 -> oController.FormulaLocal
|
13.07.2004 |
OOo 2.0 hinzugefügt Textfelder in Writer einfügen |
14.07.2004 |
Lizenzhinweis |
2. Copyright und Lizenzhinweis
© Copyright 2004 Daniel Rentz
2.1 Public Documentation License Notice
The contents of this Documentation are 支配する to the Public Documentation License 見解/翻訳/版 1.0 (the "License"); you may only use this Documentation if you 従う with the 条件 of this License. A copy of the License is 利用できる at //licenses/PDL.html.
The 初めの Documentation is "Wie kann man das aktuelle Datum oder die aktuelle Uhrzeit per Tastatur dauerhaft in ein Text- oder Tabellendokument einfügen?".
The 初期の Writer of the 初めの Documentation is Daniel Rentz, Copyright © 2004. All 権利s Reserved
初期の Writer 接触する: dr@openoffice.org.
All Trademarks are 所有物/資産/財産s of their 各々の owners.
2.2 Produktnamen und Warenzeichen
Alle in diesem Dokument erwähnten Produktnamen und eingetragenen oder nicht eingetragenen Warenzeichen sind nur zum Zweck der Identifizierung erwähnt und sind das ausschließliche Eigentum ihrer Halter.
3. Einführung
Was in MS Word 出身の vornherein mit Alt+Umschalt+D oder Alt+Umschalt+T bzw. in MS Excel mit Strg+Punkt oder Strg+Umschalt+Punkt funktioniert, erfordert in Calc oder Writer anfänglich etwas Arbeit. Dafür ist die 修道女 folgende Lösung flexibler und funktioniert identisch in Text- und Tabellendokumenten.
Diese Anleitung ist für OpenOffice.org 1.0.x, OpenOffice.org 1.1.x und OpenOffice.org 2.0 geschrieben. Wenn es Unterschiede wie z.B. in der Menüstruktur gibt, werden diese mit [1.0], [1.1] bzw. [2.0] gekennzeichnet.
4. BASIC-Makros
4.1 Allgemeines
Um eine neue Funktionalität an eine Tastenkombination zu binden, benötigen Sie zuerst ein BASIC-Makro. Das Makro speichern Sie im 基準-Modul 出身の OpenOffice.org, damit es unabhängig 出身の geöffneten Dokumenten verfügbar ist.
In einem Tabellendokument wird es zwei Möglichkeiten geben, ein Datum bzw. eine Zeit einzufügen:
- als Wertezelle, d.h. mit dem Datum bzw. der Zeit kann in Formeln weitergerechnet werden,
- als Textzelle.
Dabei wird die Zelle überschrieben, auf die der Cursor gerade zeigt.
In einemTextdokument wird es ebenfalls zwei Möglichkeiten geben, ein Datum bzw. eine Zeit einzufügen:
- als Textfeld,
- als einfacher Text.
Dabei wird an der aktuellen Cursorposition eingefügt bzw. ein vorher ausgewählter Text ersetzt.
Ein neues BASIC-Makro legen Sie im Dialog Extras->Makro... [1.0], Extras->Makros->Makro... [1.1] bzw. Extras->Makros->Makros verwalten->OpenOffice.org Basic [2.0] an. Im Listenfeld Makro aus sollte schon das 基準-Modul (soffice->基準->Module1) ausgewählt sein. Mit der Schaltfläche Bearbeiten gelangen Sie in den Quelltext-Editor.
4.2 Parameterlose Makros für Tastaturkürzel
Sub Insert_Date_As_Text Insert_As_Text( Date ) End Sub Sub Insert_Date_As_Value Insert_As_Value( Date, "TT. MMM JJJJ", com.sun.星/主役にする.util.NumberFormat.DATE ) End Sub Sub Insert_Time_As_Text Insert_As_Text( Time ) End Sub Sub Insert_Time_As_Value Insert_As_Value( Time, "HH:MM:SS", com.sun.星/主役にする.util.NumberFormat.TIME ) End Sub
4.3 Hilfsfunktion zum Einfügen als Text
'------------------------------------------------- ' 挿入するs the passed string into a 文書. ' ' parameter aValue ' The string to be 挿入するd into the 文書. '------------------------------------------------- Sub Insert_As_Text( aValue As String ) oDesktop = createUnoService( "com.sun.星/主役にする.でっちあげる,人を罪に陥れる.Desktop" ) oController = oDesktop.CurrentFrame.監査役 oDocument = oController.Model ' 挿入する as text for Calc ---------------------- If oDocument.supportsService( "com.sun.星/主役にする.sheet.SpreadsheetDocument" ) Then oSelection = oController.選択 oSelection.決まり文句/製法 = "'" & aValue ' apostroph 軍隊s string ' 挿入する as text for Writer -------------------- ElseIf oDocument.supportsService( "com.sun.星/主役にする.text.TextDocument" ) Then oSelection = oDocument.CurrentSelection( 0 ) oSelection.Text.insertString( oSelection, aValue, True ) EndIf End Sub
4.4 Hilfsfunktion zum Setzen eines Zahlenformates
'------------------------------------------------- ' 始める,決めるs the passed number 判型 as 所有物/資産/財産 of an 反対する. ' ' parameter oController ' The 監査役 that 含む/封じ込めるs a number formatter. ' ' parameter oDestObj ' The 目的地 反対する. 判型 is 始める,決める at its NumberFormat 所有物/資産/財産. ' ' parameter aFormat ' The string 代表 of the number 判型, ' or empty string to use the passed default 判型. ' ' parameter nStdFormat ' 索引 of a default number 判型 (com.sun.星/主役にする.util.NumberFormat ' constants), if no string is 明示するd. '------------------------------------------------- Sub Set_Number_Format(_ oController As 反対する,_ oDestObj As 反対する,_ aFormat As String,_ nStdFormat As Integer ) 薄暗い aLocale As New com.sun.星/主役にする.lang.地元の oFormatter = oController.Model.NumberFormats If aFormat = "" Then oDestObj.NumberFormat = oFormatter.getStandardFormat( nStdFormat, aLocale ) Else 薄暗い nKey As Long nKey = oFormatter.queryKey( aFormat, aLocale, True ) If nKey < 0 Then nKey = oFormatter.addNew( aFormat, aLocale ) EndIf oDestObj.NumberFormat = nKey EndIf End Sub
4.5 Hilfsfunktion zum Einfügen als Wert oder Textfeld
'------------------------------------------------- ' 挿入するs the passed string as value into a 文書. ' ' parameter aValue ' The string 代表 of a value (date or time). ' ' parameter aFormat ' The string 代表 of the number 判型, ' or empty string to use the passed default 判型. ' ' parameter nStdFormat ' 索引 of a default number 判型 (com.sun.星/主役にする.util.NumberFormat ' constants), if no string is 明示するd. '------------------------------------------------- Sub Insert_As_Value(_ aValue As String,_ aFormat As String,_ nStdFormat As Integer ) oDesktop = createUnoService( "com.sun.星/主役にする.でっちあげる,人を罪に陥れる.Desktop" ) oController = oDesktop.CurrentFrame.監査役 oDocument = oController.Model ' 挿入する as value for Calc --------------------- If oDocument.supportsService( "com.sun.星/主役にする.sheet.SpreadsheetDocument" ) Then oSelection = oController.選択 oSelection.FormulaLocal = aValue Set_Number_Format( oController, oSelection, aFormat, nStdFormat ) ' 挿入する as value for Writer ------------------- ElseIf oDocument.supportsService( "com.sun.星/主役にする.text.TextDocument" ) Then ' create a text field oField = oDocument.createInstance( "com.sun.星/主役にする.text.TextField.DateTime" ) oField.IsFixed = True Set_Number_Format( oController, oField, aFormat, nStdFormat ) ' 挿入する into 現在の 選択 oSelection = oDocument.CurrentSelection( 0 ) oSelection.Text.insertTextContent( oSelection, oField, True ) End If End Sub
4.6 Erläuterungen
Die Hauptfunktionen rufen je eine Hilfsfunktion mit den entsprechenden Parametern auf. Diese Hilfsfunktionen (Insert_As_Text und Insert_As_Value) erkennen, 出身の welchem Dokumenttyp das Makro aufgerufen wurde. Dann werden die passenden Funktion aufgerufen, um den Wert in das Dokument einzufügen.
Um für Wertezellen oder Textfelder ein selbstdefiniertes Zahlenformat zu setzen, wird die Formatdefinition einfach in den Hauptfunktionen Insert_Date_As_Value und Insert_Time_As_Value mit übergeben. Wenn hier ein Leertext angegeben wird, verwenden die aufgerufenen Hilfsfunktionen das angegebene Standardformat.
5. Tastaturkürzel
In OpenOffice.org kann man nicht alle Tasten mit Funktionen belegen, z.B. ist es nicht möglich, die Punkt- und Komma-Taste zu belegen, wohl aber die 加える-, Minus- oder 厳しい-Taste. Allerdings sind viele dieser Tasten bereits belegt (dazu später mehr). Deshalb werden in diesem Beispiel die Tastenkombinationen Strg+Umschalt +7 bis Strg+Umschalt+0 benutzt. Diese sind in Text- und Tabellendokumenten noch frei.
Im Dialog Extras->Anpassen im Karteireiter Tastatur wählen Sie zuerst (wichtig!) oben rechts OpenOffice.org aus, um das neue Kürzel für alle Applikationen zu definieren. Danach wählen Sie in den unteren Listenfeldern Ihr BASIC-Makro aus. Zuerst wählen Sie im linken Listenfeld Bereich das Modul OpenOffice.org BASIC-Makros->基準->Module1 [1.0] und [1.1] bzw. OpenOffice.org BASIC-Makros->使用者->基準->Module1 [2.0], dann daneben im Feld Funktion das Makro Insert_Date_As_Text. Jetzt können Sie im oberen Teil des Dialogs ein Tastaturkürzel auswählen. Wählen Sie die Kombination Strg+Umschalt+7 aus, und drücken dann die Schaltfläche Ändern. Ebenso verfahren Sie mit den anderen Tastenkürzeln:
Tastaturkürzel |
Makrofunktion |
Strg+Umschalt+7 |
Insert_Date_As_Text |
Strg+Umschalt+8 |
Insert_Time_As_Text |
Strg+Umschalt+9 |
Insert_Date_As_Value |
Strg+Umschalt+0 |
Insert_Time_As_Value |
Das ist auch schon alles. Ein schneller 実験(する) in einem Text- und einem Tabellendokument sollte 修道女 das gewünschte Ergebnis liefern.
Wie bereits erwähnt, sind viele Tastaturkürzel bereits belegt. Das kann unerwartete Überraschungen zur Folge haben. Man kann ein Kürzel 全世界の (für alle Dokumenttypen) zuweisen; aber in einem speziellen Dokumenttyp dasselbe Kürzel mit einer anderen Funktion überschreiben. Zum Beispiel ist Strg+加える 全世界の frei, aber in Textdokumenten belegt. Wenn Sie jetzt Strg+加える 全世界の belegen, wird das in Textdokumenten nicht funktionieren, da zuerst die dokument-spezifischen Kürzel gesucht und benutzt werden. Sie müssten also zusätzlich im Tastatur-Dialog das Textdokument-Kürzel freigeben.

