Top > OOobbs2 > 42

OOobbs2/42 Edit

  • サマリ: チェックボックスへのマクロの設定
  • 環境: Calc
  • 状態: 解決
  • 投稿者: 岡龍?
  • 投稿日: 2007-06-27 (水) 23:55:10

質問 Edit

はじめて質問します。

チェックボックスにマクロを設定する時、どうも上手く作動しないので教えてください。

○やりたい事

特定セルに文字が入力してある。(日本語) 例:B2に「ああ」 そのセルに対してチェックボックスをオンにすると「太字」になる。 チェックボックスをオフにすると元の書式設定になる。

という設定を施すにはどういうマクロを組むといいのでしょうか??

回答 Edit

  • Calc上のフォームに作成したチェックボックスの利用ですね。

例のファイルを作成しました fileOOobbs2-42.ods

例では以下をチェックボックスのイベント「ステータスを変更したとき」に割り当ててあります。

Sub Main
Dim oDoc As Object
Dim oForms As Object, oForm As Object
Dim oCheckBox As Object
Dim oSheet As Object
Dim oCell As Object
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oCell = oSheet.getCellByPosition(1,1)
  oForms = oSheet.DrawPage.Forms()
  oForm = oForms.getByName("Standard")
  If oForm.hasByName("CheckBox") Then
    oCheckBox = oForm.getByName("CheckBox")
    
    If oCheckBox.State = 1 Then
      oCell.CharWeight = com.sun.star.awt.FontWeight.BOLD
      oCell.CharWeightAsian = com.sun.star.awt.FontWeight.BOLD
      oCell.CharWeightComplex = com.sun.star.awt.FontWeight.BOLD
    Else
      oCell.CharWeight = com.sun.star.awt.FontWeight.NORMAL
      oCell.CharWeightAsian = com.sun.star.awt.FontWeight.NORMAL
      oCell.CharWeightComplex = com.sun.star.awt.FontWeight.NORMAL
    End If
  End If
End Sub

何も考えずにフォームにチェックボックスなどを作成すると、"Standard" という名前のフォームが作成されます。フォーム名はデザインモードでのフォームナビゲータなどで確認できます。

あとは、チェックボックスの状態 State により文字のウェイトを変更して普通と太文字を切り替えます。ウェイトの設定は以下の定数を利用します。

文字のプロパティはそれぞれ CharWeight: 英数字のウェイト、CharWeightAsian: アジア系のウェイト、CharWeightComplex: 複合時のウェイトで設定します。

  • はにゃ?? 2007-06-28 (木) 16:49:19

感想,コメント,メモ Edit

  • はにゃさん、ありがとうございます!!早速試してみたら上手く行きました。最近OOoBASICをはじめて、良く分からない所が多いのでこれからも宜しくお願いします!ちなみに「oForms = oSheet.DrawPage.Forms()」から4行分の内容ですが、このフォームを「oForms」として宣言してあげる点を詳しく教えていただけますでしょうか?細かい質問ですいません。 -- 岡龍? 2007-06-28 (木) 23:59:43
  • 別に宣言しなくてもいいですね。同じオブジェクトを多様するときにはアクセスが早くなるようなので別に宣言することをお勧めしますが。マクロを書くときに別に変数を言するとデバッグやりやすいですけど。 -- はにゃ?? 2007-06-29 (金) 19:13:26
  • なるほど、宣言とか変数を使用するのが大事なんですね。ありがとうございました。また何かありましたらお願いします。 -- 岡龍? 2007-07-04 (水) 23:34:14


Attach file: fileOOobbs2-42.ods 963 download [Information]

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes