[OOo] 表格製作的快速鍵巨集

同事在試用OpenOffice Writer時抱怨表格的製作比Word麻煩許多,例如手繪表格可以很方便且直覺的隨意畫出需要的表格,而Writer則必須較頻繁的用合併與分開儲存格,經由繁瑣的步驟才能完成表格。

經過分析,手繪表格最常使用到的狀況是:

  1. 把一格或鄰近的水平格由單列分割成兩列
  2. 把一格或鄰近的垂直格由單欄分割成兩欄
  3. 用橡皮筋擦按鈕把分隔線移除,使兩格變成一格

而這兩種狀況應該可以利用巨集做成用功能鍵就能完成的動作,例如:

  1. 游標停在某個儲存格裡按Ctrl+H,則一格變成上、下兩格(水平分割)
  2. 游標停在某個儲存格裡按Ctrl+K,則一格變成左、右兩格(垂直分割)
  3. 標示需要合併的儲存格後按Ctrk+M,則數格變成一格

透過巨集的錄製,再加上「合併儲存格」與「分開儲存格」兩個按鈕來達成上述需求;最後完成的程式如下:

CellSplitHorz 水平分割
sub CellSplitHorz
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Amount"
args1(0).Value = 2
args1(1).Name = "Horizontal"
args1(1).Value = true
args1(2).Name = "Proportional"
args1(2).Value = true

dispatcher.executeDispatch(document, ".uno:SplitCell", "", 0, args1())

end sub

CellSplitVertical 垂直分割
REM  *****  BASIC  *****

sub CellSplitVertical
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Amount"
args1(0).Value = 2
args1(1).Name = "Horizontal"
args1(1).Value = false
args1(2).Name = "Proportional"
args1(2).Value = false

dispatcher.executeDispatch(document, ".uno:SplitCell", "", 0, args1())

end sub

CellMerge 儲存格合併
REM  *****  BASIC  *****

sub CellMerge
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:MergeCells", "", 0, Array())

end sub

巨集製作完畢後,再用【工具→自訂→鍵盤】,在下方的【功能→範圍】裡找到OpenOffice.org巨集,將製作好的巨集變更給要使用的功能鍵。

雖然Writer目前並無手繪表格的功能,但透過功能鍵應該也能更快速的製作較複雜的表格了。

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *