100行のGoogleスプレッドシートがあります。
そのファイルを開くたびに、テーブルの最後に行を挿入します。
ドキュメントを開いたときに表の最後の行にジャンプするにはどうすればよいですか?
今は、新しい行を挿入できるようにスクロールダウンする必要があるからです。
Home
キーを押すことで、かなり簡単に修正できます。
100行のGoogleスプレッドシートがあります。
そのファイルを開くたびに、テーブルの最後に行を挿入します。
ドキュメントを開いたときに表の最後の行にジャンプするにはどうすればよいですか?
今は、新しい行を挿入できるようにスクロールダウンする必要があるからです。
Home
キーを押すことで、かなり簡単に修正できます。
回答:
スプレッドシートを開くたびに実行されるトリガーを作成できます。
ツール→スクリプトエディターに移動し、以下を貼り付けます。
function onOpen(e) {
var spreadsheet = e.source;
var sheet = spreadsheet.getActiveSheet();
var lastRow = spreadsheet.getLastRow();
if (sheet.getMaxRows() == lastRow) {
sheet.appendRow([""]);
}
lastRow = lastRow + 1;
var range = sheet.getRange("A" + lastRow + ":A" + lastRow);
sheet.setActiveRange(range);
}
[ 保存 ]ボタンをクリックし、スクリプトエディタとスプレッドシートを閉じます。
次に、もう一度スプレッドシートを開きます。数秒待つと、シートの最後に新しい行が挿入され、その行が選択されていることがわかります。
デモ用にこのスプレッドシートを作成しました。自由にコピーしてください([ ファイル ] → [ コピー ]をクリック)。スクリプトが正常に実行されることを確認するには、独自のコピーを実行する必要があります。
onOpen
関数名は、特別な意味を持っています。ドキュメントを参照してください。これは、Event
オブジェクトという単一の引数を取ります。そのsource
プロパティは、開かれているスプレッドシートへの参照です。スプレッドシートを使用するgetLastRow()
と、コンテンツを含む最後の行のインデックスを見つけることができます。getMaxRows()
空の行も含めて、シートの最大行数を取得します。その知識があれば、最後の行にコンテンツがあるかどうかを確認できます。コンテンツがある場合は、新しい空の行を追加します。最後に、範囲を作成して呼び出しsetActiveRange
、最後の行に移動できます。
何も挿入せずに最後の行に移動するだけの場合は、スクリプトを次のように簡略化できます。
function onOpen(e) {
var spreadsheet = e.source;
var sheet = spreadsheet.getActiveSheet();
var lastRow = spreadsheet.getLastRow();
var range = sheet.getRange("A" + lastRow + ":A" + lastRow);
sheet.setActiveRange(range);
}
特定の列に数式がずっと入力されているという追加の問題があり、数式以外のデータがある最初の行までスクロールする場合は、次の方法を使用します。この場合、列Aには数式がずっと下にあるため、行5以下の列Bの最初の空白セルまでスクロールします。
function onOpen(e) {
var spreadsheet = e.source;
var sheet = spreadsheet.getActiveSheet();
var row = 5;
while (true) {
var range = sheet.getRange("B" + row);
if (!range.getValue()) {
sheet.setActiveRange(range);
return;
}
row++;
}
}
他の答えが示すように、ツール→スクリプトエディターを開き、その関数を貼り付け、「プロジェクト」に名前を付け、保存して、スプレッドシートを再読み込みする必要があります。