Googleスプレッドシートには、Excelのような「カットセルを挿入する」機能はありません。
A4からB5を選択し、Ctrl + Xを押したとします。
次に、選択範囲をA2に移動しました。
今、おそらく「空白のセルを挿入して 移動 A2の点線範囲を挿入することにより、「カットセルを挿入」したいです。
独自のメニュー でJavaScriptを使用して行う方法はありますか?
例えば。
function insertCutOrCopiedCells(){
var SS = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SS.getActiveSheet();
var cell = sheet.getActiveCell();
// How do you get the cells being cut/copied? (ie. A4 to B5)
// We can then insert empty cells (2 cols 2 rows) at the selection (A2)
// and move the cut cells (A4 to B5) there
}
両方のメソッドがあり、クラスでチェックしてください Range 。
moveTo(target)
この範囲からターゲット範囲へのカットアンドペースト(形式と値の両方)。
copyTo(destination)
ある範囲のセルから別の範囲のセルにデータをコピーします。値とフォーマットの両方がコピーされます。
編集:
機能を完了するには、以下も使用する必要があります。
クラスSpreadsheetのinsertRowsAfter(afterPosition, howMany)
指定された行位置の後に複数の行を挿入します。
そして
getActiveRange()
でgetRow()
を使用して、選択範囲がどこにあるかを確認します。
現在アクティブと見なされているセルの範囲を返します。これは通常、ユーザーがアクティブシートで選択した範囲を意味しますが、カスタム関数ではアクティブに再計算されるセルを指します。
クリップボードに直接アクセスできないため、サイドバーまたはmodelessDialogを設定する必要があります。これは、コピー元の範囲を要求し、選択した領域に貼り付けるか、またはその逆です。現在選択されている領域を入力された行に貼り付けます。
機能を分離できると思います。
コピー:getValueでgetRangeを使用:link => https://developers.google.com/apps-script/reference/spreadsheet/sheet
データの削除:getValueをsetValue = blankで使用します
例:
var Spreadsheet=
SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName("number1");
var value = Spreadsheet.getRange(1,0).getValue(); // copy
Spreadsheet.getRange(1,1).setValues(value); // insert
Spreadsheet.getRange(1,0).setValues("");
Metho copyToを使用できます
例:
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A:E").copyTo(sheet.getRange("F1"), {contentsOnly:true});
}