Notice
Recent Posts
Recent Comments
rand(life)
구글스프레드 시트에 생기부 바이트수 표시 본문
google apps script 사용한다
'발표'라는 시트에
E열에 문자열을 기록하면
F열에 해당 문자열이 몇 바이트인지 숫자가 입력된다
(1행에 입력했을때는 작동하지 않는다)
function countByte(e) {
var SHEET_NAME = "발표"
var COL_To_RECORD = 5 // E열에 기록하므로
var ROW_NOTRECORD = 1 // 1행은 기록하지 않으므로
// 한글 3, 엔터 2, 그외 1 바이트
/* 가 44032 힣 55203 */
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var ss = sheet.getActiveSheet();
if( ss.getSheetName() != SHEET_NAME ) {return}; //지정된 시트이름이 아니면 종료
var rng = e.range; // 수정된 셀을 변수 rng에 담는다
var col = rng.getColumn(); //칼럼을 구한다.
var row = rng.getRow(); // 행
if ( col != COL_To_RECORD ) {return}; //E열이 아니면 종료
if ( row == ROW_NOTRECORD ) {return}; // 1행이면 종료
var tt = rng.getValue();
var lengText = tt.length;
if ( lengText == 0 ) {
rng.offset(0, 1).setValue(sum);
return;
}
var count = 0
var sum = 0
for ( var i = 0 ; i < lengText; i++) {
var t = tt.substr(i, 1); // 글자 하나
var ascii_code = t.charCodeAt(0); // 아스키코드
if ( ascii_code >= 44032 && ascii_code <= 55203 ) {
count = 3 ; //한글
}
else if ( ascii_code == 10 ) {
count = 2 ;// 엔터
}
else {
count = 1; //그외
}
sum = sum + count ;
}
rng.offset(0, 1).setValue(sum); //
}
트리거를 아래와 같이 설정하면
입력할 때마다 매크로가 작동한다.