ラベル OpenOffice の投稿を表示しています。 すべての投稿を表示
ラベル OpenOffice の投稿を表示しています。 すべての投稿を表示

2010年4月13日火曜日

OpenOffice.org Basic マクロ で 連想配列 をやってみた!( aName.Add 1, Cells(nRange, m_nStartRange).Value

過去にエクセルのマクロを使っていたツールを、OpenOfficeに改修した。

Novellが出してる派生OpenOfficeはVBA互換だが、本家オリジナルはVBAと完全な互換性はないので、めんどくせーなーと思いつつOOoBasicで書き直した。

※会社にはNovellのでいいじゃんと訴えたが、派生はダメなんだと。

OOoBasicはVBAとちがって圧倒的にサンプルが少ない。
今回は連想配列に苦労した。
VBAの連想配列も、あまりスマートではないが、エクセル版は「Collection」を使っていた。

Dim aName As New Collection
aName.Add 1, Cells(1, 1).Value

OpenOfficeでどうやろうかとググったがなかなかない。
頭をかかえていると、VBA向けのCreateObjectを使う連想配列を見つけた。

VBで連想配列

CreateObject で 外部APIを呼ぶ・・・
ということは、OpenOfficeがCreateObjectを使えればいいわけか。

で、ググったが出てこない。OpenOfficeのhelpを探したら、あった!

'UNO オブジェクトを作成します。Windows では、OLE オブジェクトも作成できます。
'このメソッドにより、パラメータとして渡されるタイプのインスタンスが作成されます。
'構文:
oObj = CreateObject( type )

で、やってみたら・・・
できました。できましたよ。ふーーつかれた。

REM  *****  BASIC  *****
Option Explicit

Sub Macro1
    ' 宣言部
    Dim oSheet As Object
    Dim oCell As Object
    Dim oObj As Object

    ' 初期化
    oSheet = ThisComponent.Sheets(0)
    oObj = CreateObject("Scripting.Dictionary")
    oCell = oSheet.getCellByPosition(1,1)

    ' もし配列キーが存在したら
    If oObj.Exists(oCell.getString) = True then
        oObj.Remove(oCell.getString)    ' 削除して
        oObj.Add(oCell.getString,5)     ' 作成
    Else
     oObj.Add(oCell.getString, 1)    ' 作成
    End If

    ' 値を入れる
    oSheet.getCellByPosition(2,1).String = oObj.Item(oCell.getString)

    MsgBox  "完了しました"
End Sub

まーこうしてすこしずつでも使えるようになれば、いつかは使いこなせるさ。

免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年10月8日木曜日

エクセルのマクロが、OpenOffice で開いて保存するだけで、、、壊れる

エクセルで組み込んだマクロを誤ってOpenOfficeで開いてしまった。

つい癖で保存したら、VBAで組んだマクロが・・・
動かなくなってしまう。

修正してなくてもなるから怖い。
つまり、単に開いて保存して閉じるだけで壊れる。

ソースコードは問題ないのだが、どうも「ボタン」などのObjectが異質のものに変換されてしまっているようで、
メソッドへのリンク(関連付け)が外れてしまう事が原因だ。

めんどくさいが、ボタンを作り直し、名前を過去の名前と同じものにすれば、紐付きが復旧して元に戻せる。


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年9月20日日曜日

Open Office writer 行間設定について

またまたOpen Officeの話題です。

ある実装手順(マニュアル)を作っているのですが、コマンド関連を載せる時にどうしても行間が開いてしまう。

文章を入力し、右クリック→「段落」を指定→「段落」のボックスを開く→「インデントと行間隔」のタブ→行間隔を「最小」ゼロに。

がしかし、行間は全く詰まらずにどう頑張っても一行程の空白ができる。

行間を「固定」で数字を微調整すると設定できた人もいたようなのでやってみるが、駄目だった。

結局、どうやっても駄目だったので、四角のオブジェクトにテキストを挿入してやってみることに。
そしたら、かなり詰まった!めんどくさいけど・・・
これで手順書の幅がかなり短くなった。

しかしめんどい。




免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年9月19日土曜日

OpenOffice 印刷設定(余白の指定)方法

またもやOpenOffice。



最近OpenOfficeで仕事する事が増えてきて。。。

今回は印刷設定(余白の指定)方法がわからない。

MSとか、一般的なWindowsアプリには「ファイル」にあるのだが、見当たらない。
んーとあさったあげく[書式]に[ページ]を発見

[余白]タブ!

おおーここか。
いざ移行していこうと思うと細かいところでいろいろある。
ただ、一つ一つ分かってくれば、少しずつ仕事の効率が上がってくるので、それはそれでうれしい。


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

Open office 改ページを挿入する

Open office で改ページを挿入する方法がわからなかった。
そしたら「区切りの挿入」だった。

区切りの挿入ダイアログで,「改ページ」ボタンを選択。
MS Office と微妙に違う点がやりにくい ;;



免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年6月16日火曜日

OpenOffice Calc 変更記録の解除

OpenOffice Calc 変更記録がうざい

セル枠が赤色になるやつ。

その赤色になってしまったセル枠は左上にフィルハンドルの様なものが表示されていて、
マウスポインタをセルに乗せるとそのセルの更新情報が表示される。

別にいらないので困って探したら解除できた。でも結構時間かかった。
だっててっきりこういった内容はツール→オプションにあると思ってたので。

編集→変更→記録 で機能のON、OFFができました。

記録はするけど表示はしないってのが出来ないのか・・・。




免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年5月21日木曜日

OpenOffice 3.1

今日OpenOfficeを使用していたら、右上にアップデートボタンが出てたので
入れてみた。OpenOffice 3.1になるらしい。

何が変わったのか・・・

http://journal.mycom.co.jp/news/2009/04/07/071/index.html



仕事している上では

「ネットワーク上で共有している文書を編集するときのロック機能」

は非常に嬉しい。これが出来ないのが致命的だと思っていたので。
まだ検証はしていないが、、、

2000年にSunの支援を受けて開始されたOpenOfficeだが、Sunがオラクルに買収された事によってどのように変わっていくのだろうか。
是非、開発チームにとってメリットとなるように配慮頂きたいものだ。


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年2月20日金曜日

Python で OpenOfficeマクロ

ダイアログ・エディタの利用とコード上でのイベント関連づけ

うまくいったが、マイマクロに入れる方法なので、組み込んだ形での配布

はこれでは出来ない。
いろいろ調べた結果、組み込みで配布する場合はBASICしかなさそう。

しかも、BASIC以外でのマクロの組み方に関してググッても資料が少ない。
方法求む



免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ