OpenOffice.org Basicでガントチャート
OpenOffice.org Basicを使ってガントチャート作成用マクロ ガントチャートforOOoを開発する手順を紹介していきます。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
準備-その2 セルの値取得、入力
選択中のシートにあるB3セルの文字列を取得するマクロを下記に記します。
Dim oSheet As Object
Dim oCell As Object

oSheet = ThisComponent.CurrentController.ActiveSheet
oCell = oSheet.getCellByPosition(1, 2)

MsgBox oCell.String
また、数値データを取得する場合は最後の行を
MsgBox oCell.Value
とします。

ここで注意する事は、セルを座標で取得する場合に行、列の開始番号が「0」ということです。また指定する数値は左側が列で、右側が行となります。
「A1」は「0,0」で、「A2」が「1,0」、「C5」は「2,4」という感じです。
ExcelVBAでは開始番号が「1」なので、VBAの経験者は多少混乱するかもしれません。

次に、選択中のシートにあるD5セルに文字列を入力するマクロを下記に記します。
Dim oSheet As Object
Dim oCell As Object

oSheet = ThisComponent.CurrentController.ActiveSheet
oCell = oSheet.getCellByPosition(3, 4)

oCell.String = "これは練習です。"
これを実行するとD5セルに「これは練習です。」という文字列が入ります。

しかし、毎回これをやっていては大変なので、またまた関数を定義します。
Public Function Cells(oSheet As Object, _
col As Integer, row As Integer) As Object

If col < 0 Or Row < 0 Then
Cells = Nothing
Else
Cells = oSheet.getCellByPosition(col - 1, row - 1)
End If

End Function
前回(その1)で定義したシート取得の関数と組み合わせて、以下のように使う事ができます。
MsgBox Cells(ActiveSheet, 1, 1).String
Cells(Sheets("表1"), 2, 3).Value = 100

この関数では、ExcelVBAと同じように行列の開始番号を「1」としました。
また、ExcelVBAでは
Sheet("Sheet1").Cells(1,2) = 123
とかいう使い方ができるのですが、クラスの定義ができないOOoBasicではここまで同じにはできない感じです。

この関数は後々まで使うので、mdlMainというモジュールを作ってその中に入れておきます。
スポンサーサイト
コメント
この記事へのコメント
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2008/05/05(月) 12:47:27 | | [編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://shinob.blog42.fc2.com/tb.php/3-a3376825
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
COPYRIGHT(C) 2004 POWERD BY FC2 ALLRIGHT RESERVED.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。