質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

539閲覧

GASでのスプシ画像サイズ変更

milk1

総合スコア1

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2023/10/06 03:01

実現したいこと

  • Googleドキュメントに挿入した複数の画像をすべて縦300px横300pxに書き換えたい

※超初歩質問です。申し訳ございません…

前提

  • 今後複数のドキュメントで作業するため、GASのスタンドアロンスクリプトを使いたいです。

▼現状のコード

function myFunction() { } function getImageFromDocument() { //スクリプトに紐づくドキュメントのアクティブなシートを取得 let myDocument = DocumentApp.getActiveDocument(); //アクティブなシートに存在する画像を取得 let images = myDocument.getImages(); //スプレッドシートの画像サイズ(高さ)を変更 images[0,1,2,3,4].setHeight(300); //ドキュメントの画像サイズ(幅)を変更 images[0,1,2,3,4].setWidth(300); }

発生している問題・エラーメッセージ

  • 実行まではできるものの、[0]が1つの画像を指す?ために1つ目の画像のみサイズ変更がされている
  • スタンドアロンスクリプトとして使いたいが、ID指定をどこにどう書けばいいかわからない

試したこと

ここに問題に対して試したことを記載してください。

  • [0]の中の数字を変えてみた、特に変化がない

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(10/7 追記)
特定のフォルダの中にあるドキュメントファイルを全て処理対象にします。

JavaScript

1//IDで指定したフォルダの中のドキュメントを対象にする 2function getImageFromDocument() { 3 const folderId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 4 const files = DriveApp.getFolderById(folderId).getFiles(); 5 while (files.hasNext()) { 6 const file = files.next(); 7 if (file.getMimeType().includes('google-apps.document')) { 8 const images = DocumentApp.openById(file.getId()) 9 .getBody().getImages(); 10 for (const image of images) { 11 image.setHeight(300); 12 image.setWidth(300); 13 } 14 } 15 } 16}

(追記前)
複数のドキュメントIDを冒頭に配列として定義しておきます。

JavaScript

1function getImageFromDocument() { 2 const docIds = [ 3 'xxxxxxxxxxxxxxxxxxxxxxxx', 4 'yyyyyyyyyyyyyyyyyyyyyyyy', 5 'zzzzzzzzzzzzzzzzzzzzzzzz', 6 ] 7 for (const docId of docIds) { 8 const doc = DocumentApp.openById(docId); 9 const body = doc.getBody(); 10 const images = body.getImages(); 11 for (const image of images) { 12 image.setHeight(300); 13 image.setWidth(300); 14 } 15 } 16}

投稿2023/10/06 08:10

編集2023/10/06 21:41
YellowGreen

総合スコア861

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

milk1

2023/10/06 09:55

無事できました(TT)!! 教えていただきありがとうございます!
YellowGreen

2023/10/06 10:00

ドキュメントのIDをスクリプトに羅列するのも面倒なので、特定のフォルダ内にドキュメントファイルを入れておいて、その中の全てのドキュメントを処理するようにした方がいいと思います。 スクリプトはできてますがiPhoneで書いたので、今は外にいて動作確認できないので、明日になるかもしれませんが改めてアップしますね。
YellowGreen

2023/10/06 22:02

それと、質問のタイトルですが、 スプシ画像ではなく、ドキュメントの画像に変更しておいた方がよろしいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問