Google 프레젠테이션을 GAS로 매월 자동 업데이트
12374 단어 GoogleAppsScriptGoogle 프레젠테이션
소개
안녕하세요. 모모쿠로의 달리기를 오랜만에 듣고, 아 좋아해. 라고 생각했습니다, 필자입니다
그런데, 이번은, 자사의 매체 자료를 매월 수동으로 값 갱신하고 있었으므로, 자동화했기 때문에 기사로 했습니다.
도움이되면 다행입니다.
전제
매체 자료의 제약이라고 할까 사양 같은 것이 있습니다.
매체 자료의 제약이라고 할까 사양 같은 것이 있습니다.
Google 프레젠테이션에서 관리 중입니다.
정책
구현
1. 업데이트 값 관리 스프레드 시트 만들기.
필요한 값은 다음 세 가지입니다.
No.
slide_object_id
element_object_id
value
1
gdf91911947_0_0
gdf91911947_0_1
제목 (업데이트 됨)
2
gdf91911947_0_0
gdf91911947_0_2
설명문(업데이트됨)
스프레드 시트의 스쿠쇼라면 이런 느낌입니다 ↓
표시된 슬라이드의 slide_object_id는 URL에서 가져올 수 있습니다.
element_object_id는 DevTools에서 얻을 수 있습니다.
value는 별도의 시트에서 플러그인 등으로 월별로 집계 된 Google Alytics 값을 사용합니다.
※Qiita의 이 기사상에서는 끈을 씁니다
2. 아카이브용 폴더 작성
작성 후의 드라이브는 이런 느낌입니다 ↓
이때 폴더 ID를 삼가해 주십시오.
3. 스크립트 편집기 시작
이번에는 다음과 같이 스프레드 시트에 묶는 스크립트로 GAS를 쓰려고합니다.
4. GAS 쓰기
치마치마 써도 있어, 단번에 씁니다
const main = () => {
const google_drive_folder_id = 'xxxx';
const google_drive_folder_id_archive = 'yyyy'
const base_file_name = '媒体資料_'
const date = new Date()
// yyyymm
const date_last_month_yyyymm = Utilities.formatDate(new Date(date.getFullYear(), date.getMonth() - 1, 1), 'JST', 'yyyyMM')
const date_this_month_yyyymm = Utilities.formatDate(date, 'JST', 'yyyyMM')
// file name
const file_name_old = base_file_name + date_last_month_yyyymm
const file_name_new = base_file_name + date_this_month_yyyymm
const slide_new = DriveApp.getFolderById(google_drive_folder_id).getFilesByName(file_name_new);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
const data = sheet.getRange('A2:D' + sheet.getLastRow()).getValues();
if (! slide_new.hasNext()) {
// 生成対象月のスライドが無ければ前月スライドをコピーして作成.
const slides_original = DriveApp.getFolderById(google_drive_folder_id).getFilesByName(file_name_old);
if (! slides_original.hasNext()) {
return false;
}
const slide_original = slides_original.next()
var new_presentation_id = slide_original.makeCopy(file_name_new).getId()
// 古いslideをアーカイブフォルダに移動.
slide_original.moveTo(DriveApp.getFolderById(google_drive_folder_id_archive))
} else {
var new_presentation_id = slide_new.next().getId();
}
// 値更新
let slide, element;
for (var i in data) {
slide = SlidesApp.openById(new_presentation_id).getSlideById(data[i][1]);
element = slide.getPageElementById(data[i][2]);
element.asShape().getText().setText(data[i][3]);
}
}
5. 스크립트 실행
스크립트 실행에는 다음 권한이 필요하므로 처음 시작할 때 대화 상자에 따라 허용하십시오
6. 동작 확인
슬라이드가 업데이트되었습니다!
또한 자료는 아카이브 폴더로 이동했습니다!
7. 트리거 세트
매월 자동으로 업데이트하고 싶으므로 다음과 같이 트리거 세트합니다.
이것으로 완료!
결론
달리기 시작했지만 Google 슬라이드를 GAS로 업데이트하는 흐름이었습니다!
이번에는 문자 만 업데이트하고 있지만 이미지 등을 업데이트 할 수 있습니다
그럼!
Reference
이 문제에 관하여(Google 프레젠테이션을 GAS로 매월 자동 업데이트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akitkat/items/0f7bd3101eaf3e612203
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Google 프레젠테이션을 GAS로 매월 자동 업데이트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akitkat/items/0f7bd3101eaf3e612203텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)