web-dev-qa-db-ja.com

Calcのキーボードで行を移動する

キーボードを使用して行を別の場所に移動するにはどうすればよいですか?私は マウス用のこのガイド を見つけましたが、障害のためにこれにマウスを使用するのに問題があります。

「手動でソート」するつもりはなく、追加の「序数でソート」列を使用することは実行可能な回避策ではないことに注意してください。しかし、私はCalcの優れたソート機能を知っています。

8
dotancohen

キーボードを使用して行を「移動」する方法があるかどうかはわかりませんが、c&pを使用し、キーボードを使用して行を挿入/削除すると、同じ機能が提供されます。

  • 行の最初(左端)のセルに移動して移動します。
  • ヒット SHIFT+SPACE 行全体を選択します。
  • ヒット CTRL+C 行をコピーします。
  • ヒット CTRL+- 現在の行を削除します。
  • ターゲット行に移動します。
  • ヒット ALT+IInsertメニューを開きます。
  • ヒット R 新しい行を挿入します(現在の行は下にシフトされます)。
  • ヒット CTRL+V 行を新しい場所に貼り付けます。

切り取りと貼り付けの操作は非常に煩わしい場合があるため、セルを切り取って貼り付けるための単純なマクロを作成し、既存のコンテンツを下に移動することができます。

選択したセルを「移動」するための非常に簡単なコードを次に示します。

Option Explicit

Sub CopyAndCut
    ' ---------------------------------------------------------
    ' define variables
    Dim document   as object
    Dim dispatcher as Object
    Dim oSelections As Object
    ' ---------------------------------------------------------
    ' get access to the document and selections (if any)
    document    = ThisComponent.CurrentController.Frame
    oSelections = ThisComponent.getCurrentSelection()
    If IsNull(oSelections) Then Exit Sub        
    ' ---------------------------------------------------------
    dispatcher = createUnoService("com.Sun.star.frame.DispatchHelper")
    dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
    dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
    ' -------------------------------------------------------------
    ' Check the width of the selection - if 1024 columns, we assume
    ' the complete row was selected and should get deleted
    If 1024 = oSelections.Columns.getCount() Then
        dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
    End If
End Sub

Sub InsertWithMoveDown
    ' ---------------------------------------------------------
    ' define variables
    Dim document   as object
    Dim dispatcher as object
    ' ---------------------------------------------------------
    ' get access to the document
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.Sun.star.frame.DispatchHelper")
    ' ---------------------------------------------------------
    ' Paste contents with "Move Down" option
    Dim args1(5) as New com.Sun.star.beans.PropertyValue
    args1(0).Name = "Flags"
    args1(0).Value = "A"
    args1(1).Name = "FormulaCommand"
    args1(1).Value = 0
    args1(2).Name = "SkipEmptyCells"
    args1(2).Value = false
    args1(3).Name = "Transpose"
    args1(3).Value = false
    args1(4).Name = "AsLink"
    args1(4).Value = false
    args1(5).Name = "MoveMode"
    args1(5).Value = 0
    dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())
End Sub

Sub InsertWithMoveRight
    ' ---------------------------------------------------------
    ' define variables
    Dim document   as object
    Dim dispatcher as object
    ' ---------------------------------------------------------
    ' get access to the document
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.Sun.star.frame.DispatchHelper")
    ' ---------------------------------------------------------
    ' Paste contents with "Move Right" option
    Dim args1(5) as New com.Sun.star.beans.PropertyValue
    args1(0).Name = "Flags"
    args1(0).Value = "A"
    args1(1).Name = "FormulaCommand"
    args1(1).Value = 0
    args1(2).Name = "SkipEmptyCells"
    args1(2).Value = false
    args1(3).Name = "Transpose"
    args1(3).Value = false
    args1(4).Name = "AsLink"
    args1(4).Value = false
    args1(5).Name = "MoveMode"
    args1(5).Value = 1
    dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())
End Sub

コードをユーザーライブラリにコピーした後、CopyAndCutをに割り当てます。 Alt+CInsertWithMoveDown to、例: Alt+V、およびInsertWithMoveRight to、例: Alt+R (これらのショートカットはすべてデフォルトで空です)。

これで、マウスまたはキーボードを使用してセルまたは行を選択し、を使用してそれらを切り取ることができます Alt+C、ターゲットセルに移動し、を使用して貼り付けます Alt+V または Alt+R

6
tohuwawohu

Open Office Calcで行を移動するには:

  1. 移動する行の列Aのセルを選択します。
  2. Shiftキーを押しながらスペースキーを押すと、行全体が強調表示されます。
  3. を長押しします ALT キー。
  4. 行(太い黒い線が表示されます)を目的の場所まで上下にドラッグします。
  5. 作業が正しいように見える場合は、ツールバーの[保存]アイコンをクリックします。
  6. さもないと、 ALT-Z 元に戻すには。

ターゲットの場所を上書きして破棄する場合は、Altキーを押したままにしないでください。ハイライトされた行をクリックして、新しい場所にドラッグするだけです。ターゲットの場所のデータは破棄され、移動される行のデータに置き換えられます。

14
Mint