1

Google Apps Script を使用して、Google スライド プレゼンテーションからメモを削除する関数を作成しようとしています。

私は例を見て、 https://developers.google.com/slides/samples/writing#delete_a_page_or_page_elementのようなものに一致させる必要があると想定しています。 -tos/notesですが、リンクを作成できません。

Google Apps Script は初めてです。お役に立てば幸いです。

4

3 に答える 3

1

最初のスクリプトをありがとう!残念ながら、私にはうまくいきませんでした。何度か試みた後、うまくいきました。

function clearNotes(){
    var presentation = SlidesApp.getActivePresentation();
    var presentationId = presentation.getId();
    var slides = presentation.getSlides();

    var requests = [];

    slides.forEach(function(slide, i) {
        var slideNote = slide.getObjectId(); 
        var slideNotesPage = slide.getNotesPage();
        var shape = slideNotesPage.getSpeakerNotesShape();
        var shapeText = shape.getText();

        if(shapeText != undefined){

           shapeText.clear();
        }
    })
    if(requests.length > 0){
        var batchUpdateResponse = Slides.Presentations.batchUpdate({requests: requests}, presentationId);
    }
}

初心者として、多くの試行錯誤、デバッグ、ガイドに従ってください: https://developers.google.com/apps-script/reference/slides/text-range.html#clear()

これまでのところ、Google スライド プレゼンテーションのすべてのメモをまとめて削除できる唯一のソリューションです。

これがお役に立てば幸いです、ラファ。

于 2019-10-25T23:07:25.297 に答える
0

Google は、このオプションをスライド プログラムに統合しました。コピーを作成するときに、メモを含めるかどうかを選択/チェックできます。

チェックボックスは、現在のスライド プレゼンテーションのコピーを作成する際のオプションを表示します

于 2021-04-05T20:27:27.133 に答える
0

これが私がやった方法です。

function clearNotes(){
    var presentation = SlidesApp.getActivePresentation();
    var presentationId = presentation.getId();
    var slides = presentation.getSlides();

    var requests = [];

    slides.forEach(function(slide, i) {
        var slideNote = Slides.Presentations.Pages.get(presentationId, slide.getObjectId()); 
        var slideNoteId = JSON.parse(slideNote).slideProperties.notesPage.notesProperties.speakerNotesObjectId;

        var slideNotesPage = JSON.parse(slideNote).slideProperties.notesPage;
        var shapeText = slideNotesPage.pageElements[1].shape.text;

        if(shapeText != undefined){
        requests.push({
            deleteText: {objectId: slideNoteId,textRange:{type: 'ALL'}}
        });
        }
    })
    if(requests.length > 0){
        var batchUpdateResponse = Slides.Presentations.batchUpdate({requests: requests}, presentationId);
    }
}

それが役に立てば幸い。

于 2018-12-20T11:12:19.530 に答える