Top > OOobbs > 63
** [[OOobbs/63]] [#g6addbb8]
-''サマリ'': アンドゥをまとめるには
-''環境'': Calc
-''状態'': 未解決
-''投稿者'': [[rage2050]]
-''投稿日'': 2005-04-27 (水) 11:34:35

*** 質問 [#v43424fd]
OOo1.1.4, Calc で、マクロから複数のセルの内容を書き換えてから「元に戻す」でアンドゥすると、セルがひとつずつ元に戻ります。これを 元に戻す 1回で戻せるようにする方法はありますか?
どなたかご存じでしたらお願いします。

 Sub Main
   dim oSheet as object 
   oSheet = ThisComponent.CurrentController.ActiveSheet
   dim oCell as object
   oCell = oSheet.getCellByPosition( 0, 0 )
   oCell.Formula = "ねずみ"
   oCell = oSheet.getCellByPosition( 1, 0 )
   oCell.Formula = "うし"
   oCell = oSheet.getCellByPosition( 2, 0 )
   oCell.Formula = "とら"
 end sub

マクロを実行
|ねずみ|うし|とら|
元に戻す、1回目
|ねずみ|うし| |
元に戻す、2回目
|ねずみ| | |
元に戻す、3回目
| | | |

これを、以下のように1回で戻せるようにしたい。

マクロを実行
|ねずみ|うし|とら|
元に戻す
| | | |
*** 回答 [#ja17497c]
-セル範囲に対して一度に値を設定することでアンドゥ1回で戻るようです。
 Sub Main
   dim oSheet as object 
   dim oCellRange as object
   dim strData as variant
   oSheet = ThisComponent.CurrentController.ActiveSheet
   oCellRange = oSheet.getCellRangeByPosition( 0, 0, 2, 0 )
   strData = oCellRange.getFormulaArray()
   strData(0) = Array("ねずみ", "うし", "とら")
   oCellRange.setFormulaArray(strData)
 End Sub
アンドゥするとセル範囲が選択された状態にはなりますが、アンドゥには範囲の選択等はでないようです。 -- [[河井]] &new{2005-04-27 (水) 23:56:38};

#comment

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