2017-06-18 14 views
1

Google Apps Scriptを使用して複数の行の高さを一度に変更するにはどうすればよいですか?複数の行の高さを一度に変更するにはどうすればよいですか?

試み:

function resizeHeight() { 

  var s = SpreadsheetApp, 
      ui = s.getUi(), 
      sh = s.getActiveSheet(), 
     curntRow = s.getActiveRange().getRow(), 
     rowsMany = s.getActiveRange().getNumRows(), 
     autoRangeRows = s.getActiveRange().getA1Notation().replace(/[a-z]/gi,""), 
      getVal = ui.prompt('⿱⇕', 'Change the height of row❓   Cancel. Back to default❗  (21)', ui.ButtonSet.OK_CANCEL), 
      Btn = getVal.getSelectedButton(), Txt = getVal.getResponseText(); 

    for (var i=curntRow; i<=rowsMany+1; i++) { 
     if (Btn == 'OK') { 
     if (autoRangeRows.search(":") == -1) {sh.setRowHeight(curntRow, Txt);} 
     else {sh.setRowHeight(i, Txt);} 
     } 
     if (Btn == 'CANCEL') { 
     if (autoRangeRows.search(":") == -1) {sh.setRowHeight(curntRow, 21);} 
     else {sh.setRowHeight(i, 21);} 
     } 
    } 
} 

問題:

スクリプトは、彼らが唯一のすべての行に実装することができます一部または少数の行に動作しますが、あまり効果的ではありません。

+0

私にはあまりにも複雑です。 – Cooper

答えて

1

この機能は次のとおりです。アクティブ範囲を選択して、高さを変更する行を選択し、プロンプトで高さをピクセル単位で指定するだけです。

function changeRowHeight() 
{ 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var sht=ss.getActiveSheet() 
    var rng=sht.getActiveRange(); 
    var row=rng.getRow(); 
    var numrows=rng.getNumRows(); 
    var resp=SpreadsheetApp.getUi().prompt('Get Row Height', 'Enter Row Height in Pixels', SpreadsheetApp.getUi().ButtonSet.OK); 
    var height = Number(resp.getResponseText()); 
    for(var i=0;i<numrows;i++) 
    { 
    sht.setRowHeight(row + i, height) 
    } 
} 
関連する問題