自動化・効率化ならKTパソコンスクール

powerd by うなぎいもプロジェクト

LibreOfficeで遊んでみよう!シリーズその1

カテゴリー │パソコン教室LibreOffice

LibreOfficeで遊んでみよう!シリーズその1
 無料のオフィスソフト、LibreOfficeのCalcでシェルピンスキー・ギャスケットを描くプログラムを作りました。

YouTubeにアップしたので、見てください。下



下は作成したプログラムのコードです。下

dim cellRange as object 'セルの範囲
dim cell as object 'セル
dim sheet as object 'シート
Sub draw 'シェルピンスキーギャスケットを描く
dim x1 as double, y1 as double, x2 as double, y2 as double
dim x as integer, y as integer
dim randomNumber as integer, i as integer
clearSheet(1000, 1000) '設定した範囲のセルをクリア
changeWH(200) 'セルの幅、高さを200に設定
randomize '乱数発生関数を初期化
x1 = 0
y1 = 0
'描く
for i = 1 to 5000 '5000回繰り返す
'ランダムに1~3の数字を生成する
randomNumber = int(3 * rnd() + 1)
select case randomNumber
case 1
x2 = 0.5 * x1 + 0.25
y2 = 0.5 * y1 + 0.25 * sqr(3)
case 2
x2 = 0.5 * x1 + 0.5
y2 = 0.5 * y1
case 3
x2 = 0.5 * x1
y2 = 0.5 * y1
end select
x = 100 * x2
y = -100 * y2 + 89
'セルの位置を取得
cell = thiscomponent.sheets(0).getcellbyposition(x, y)
'セルの背景色を黒にする
cell.CellBackColor = RGB(0,0,0)
x1 = x2
y1 = y2
next i
End Sub
'設定した範囲のセルをクリアする関数
sub clearSheet(x as integer, y as integer)
sheet = thiscomponent.sheets(0)
cellRange = sheet.getCellRangeByPosition(0,0,x,y)
cellRange.clearContents(32)
end sub
'セルの幅、高さを揃えて設定する関数
sub changeWH(h as integer)
sheet = thiscomponent.sheets(0)
sheet.getRows().height = h
sheet.getColumns().width = sheet.getRows().height
end sub


  • このエントリーをはてなブックマークに追加
  • LINEで送る

同じカテゴリー(パソコン教室)の記事


この記事へのコメント
こんにちは
LibreOfficeでこんなことできるんですね!
楽しそうです、自分もこんなプログラムが書けたらなあw
Posted by オオハシオオハシ at 2014年07月14日 19:57
オオハシさん、コメントありがとうございます。

プログラムは前にVisual Basicで作ったものを作り替えました。プログラムはほとんどいろんなところからのコピペです。偉大な先人たちのおかげです。

LibreOfficeはただいま勉強中です。エクセルのVBAと比べると、LibreOfficeのBasicは少し面倒です。本やネットで調べています。
Posted by KTパソコンスクール at 2014年07月15日 09:13
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
LibreOfficeで遊んでみよう!シリーズその1
    コメント(2)