** [[OOobbs3/107]] [#accca333] -''サマリ'': ユーザー定義関数でセルの文字色を取得する -''環境'': Calc -''状態'': 解決 -''投稿者'': [[yutaka]] -''投稿日'': 2013-03-24 (日) 13:13:57 *** 質問 [#a52e5b9e] とりあえず、下記の様に作ったのですが、もっと簡単にできないでしょうか? function test1(ir as long, ic as long) as long test1=ThisComponent.CurrentController.Activesheet.getCellByPosition(ic-1,ir-1).CharColor 'test1=ThisComponent.CurrentController.Activesheet.getCellByPosition(ic-1,ir-1).CellBackColor end function *** 回答 [#rb4596d6] - アクティブなシート専用なんでしょうか?そうでなければシートのインデックスも渡す必要があります。 Basic で書くシート関数は引数としてセルの参照を取得できませんので、これ以上は簡単になりません。 -- はにゃ? &new{2013-03-24 (日) 13:43:02}; - わかりました。回答ありがとうございました。 -- yutaka &new{2013-03-24 (日) 18:42:30}; - セルオブジェクトを引数にできないかと思ったのですが、できないということで了解しました。 -- yutaka &new{2013-03-24 (日) 18:45:19}; - 呼ばれる回数が多い関数であれば、API を使った形式で書くことをお勧めします。Basic よりも格段に速く実行できます。 -- はにゃ? &new{2013-03-24 (日) 22:23:50}; #comment *** 感想,コメント,メモ [#v10351b6] - 今回はあまり、スピードは必要ないので。しかし、APIにするとスピードがアップするなら、作って比べてみたいです。 -- yutaka &new{2013-03-27 (水) 00:37:26}; なお、 今回の質問のコードは、下記のように変えました。これだと引数が一つになるので。 シートの式 =TEST19(CELL("address",A1)) マクロ function test19(s as string) as long test19=ThisComponent.CurrentController.Activesheet.getCellRangeByName(s).CharColor end function #comment |