Johnny Rosenberg wrote:
2009/5/22 陈浩(Chen Hao) <[email protected]>:
When I use the MS-Excel , I offen use "Ctrl+;" to insert the current date to
a cell or after some strings in a cell.
But i find OOo-Calc did not supply this function or I haven't found it.

So i want to write a Macro to do this , but there are two problems , and i
think maybe someone could give me a hand.

1. how to get the current selected cell with basic ? So that i could modify
it .
2. how to change the path that saving the user-defined macros? I offen
forgot to backup those things in C-disk when i reinstall my Windows OS >_<

Thanks very much!

Chen Hao
Dalian , China

Here's a macro I fou(nd in a forum somewhere:

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

Option Explicit

Sub InsertDate
        Dim oCell As Object

        oCell=ThisComponent.getCurrentController().getSelection()
        If oCell.SupportsService("com.sun.star.sheet.SheetCell") Then
                ' Selection is a single cell
                oCell.setValue(Now())
        Else
                MsgBox "You can't do that here"
        EndIf
End Sub

So obviously the currently selected cell is
ThisComponent.getCurrentController().getSelection()

To get the current stuff from it there are things liks getValue() and
getString().
To change the value, you can use, for example, setValue(47.3) and
setString("Hello World") respectively.

I think there are also a getFormula() and setFormula() available, but
I am not sure. Use Xray to find out what methods are available for a
specific object. It's the most helpful tool I used so far with
OpenOffice.org BASIC. I think it is installed by default these days,
if not you can find it somewhere, use google…

Well, I guess you got it by now.

Johnny Rosenberg

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Hi Johnny
I've looked in the help files and I can't find anything on Xray. If it comes with the openoffice install , where is it? If not, I'll find it, but if it is part of the install I would like to use that. Sounds very interesting. Also I have modified the script above to change the format to DATE. So just for your information:
------------------------------------------
REM  *****  BASIC  *****
' This macro will get the current date and insert the value in
'  the cell and then format the cell to display in date format.
' ' Original code from: OOUsers email from Johnny Rosenberg. [email protected] ' Format code from: "Useful Macro Information for OpenOffice.org" By Andrew Pitonyak
'  Clifton R. Liles    "Software to the Stars"    [email protected]


Sub InsertDate
   Dim oCell As Object
   Dim oFormats    'Available formats
oCell=ThisComponent.getCurrentController().getSelection()
   If oCell.SupportsService("com.sun.star.sheet.SheetCell") Then
'        Selection is a single cell
       oCell.Value=(DateValue(Now()))
'        oCell.Value= Now()
   Rem Set the date number format to the default date format
   '   also DATETIME & TIME
   oFormats = ThisComponent.NumberFormats
   Dim aLocale As New com.sun.star.lang.Locale
   oCell.NumberFormat = oFormats.getStandardFormat(_
     com.sun.star.util.NumberFormat.DATE, aLocale)

   Else
       MsgBox "You can't do that here"
   EndIf
End Sub
-------------------------------------------------
I have left a few hints on how to set the time and datetime. Cliff

--
mailto: [email protected]
Clifton R. Liles    "Software to the Stars"    [email protected]
Pearland, TX 77581   [email protected]  [email protected]
- Speaking for myself!  Standard disclaimer applies. -
This address may *not* be used for unsolicited mailings.
Failure is not an option. It comes bundled with your Microsoft products.



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to