スプレッドシートに貼り付けてある画像の高さ、幅を揃えてくれるGoogle Apps Scriptです。縦横比は維持します。拾ってきた素材のサイズがバラバラで揃えたいときに。
特にありません。今お使いのスプレッドシートに組み込めます。
デモのために、4つの画像を用意しました。
サイズはバラバラで、ものによって縦横の比率も異なるものです。
まずは高さで揃えてみましょう。
上のメニューにある「スクリプト実行」から「シート上の画像をリサイズする(高さ指定、縦横比固定)」を実行します。
プロンプトが表示されますので、希望の高さを入力してください。
ここでは200としてみます。
ちょっと待つと、このように同じ高さで揃いましたね(揃ったことがわかりやすいように手で移動しています)。
同様に幅で揃えてみました。こちらもサイズは200を指定しています。
縦横比そのままで幅が揃っています。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00151/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
// UIの取得
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('シート上の画像をリサイズする(高さ指定、縦横比固定)', 'resize_images_by_height');
menu.addItem('シート上の画像をリサイズする(幅指定、縦横比固定)', 'resize_images_by_width');
// メニューを画面に追加する
menu.addToUi();
}
function resize_images_by_height() {
// 引数を指定してリサイズ用関数を呼び出すためだけの関数
// プロンプトを表示するためにUIオブジェクトを取得
const ui = SpreadsheetApp.getUi();
// プロンプトを表示し、高さを指定してもらう
const response = ui.prompt('高さを入力してください', ui.ButtonSet.OK_CANCEL);
// キャンセルが押されたらスクリプトを終了する
if (response.getSelectedButton() == ui.Button.CANCEL) {
return;
}
// 引数に高さを入れて関数を呼び出す
resize_images_on_sheet(null, response.getResponseText());
}
function resize_images_by_width() {
// 引数を指定してリサイズ用関数を呼び出すためだけの関数
// プロンプトを表示するためにUIオブジェクトを取得
const ui = SpreadsheetApp.getUi();
// プロンプトを表示し、幅を指定してもらう
const response = ui.prompt('幅を入力してください', ui.ButtonSet.OK_CANCEL);
// キャンセルが押されたらスクリプトを終了する
if (response.getSelectedButton() == ui.Button.CANCEL) {
return;
}
// 引数に幅を入れて関数を呼び出す
resize_images_on_sheet(response.getResponseText(), null);
}
function resize_images_on_sheet(input_width, input_height) {
// アクティブシートに存在する画像をリサイズする関数
// アクティブなスプレッドシートオブジェクトを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを取得
const sheet = ss.getActiveSheet();
// シート上の画像オブジェクトを取得する
const images = sheet.getImages();
// 画像の数だけループ
for (let i = 0; i < images.length; i++) {
// 画像の現在の高さと幅を取得する
let current_height = images[i].getHeight();
let current_width = images[i].getWidth();
// 使用する変数を宣言。画像の比率、リサイズ後の高さ、リサイズ後の幅
let ratio, resize_height, resize_width;
if (input_width == null) {
// 幅が未指定の場合は縦の長さで揃える
// 入力された高さと現在の高さから、リサイズする比率を求める
ratio = input_height / current_height;
// 現在の幅と比率から、リサイズ後の幅を求める
resize_width = current_width * ratio;
// リサイズ後の高さは引数をそのまま使う
resize_height = input_height;
} else if (input_height == null) {
// 高さが未指定の場合は幅の長さで揃える
// 入力された幅と現在の幅から、リサイズする比率を求める
ratio = input_width / current_width;
// 現在の高さと比率から、リサイズ後の高さを求める
resize_height = current_height * ratio;
// リサイズ後の幅は引数をそのまま使う
resize_width = input_width;
}
// 画像の高さと幅を指定する
images[i].setHeight(resize_height);
images[i].setWidth(resize_width);
}
}
選択したセルと同じ背景色のセルを選択状態にするGoogle Apps Scriptです。細かく色分けされたセルの色を変えたくなったときにどうぞ。
文字色が同じセルを選択状態にしてくれるGoogle Apps Scriptです。特定の文字色をまとめて変えたくなったときにどうぞ。
同じフォントサイズのセルを選択状態にしてくれるGoogle Apps Scriptです。一部のフォントサイズをまとめて変えたくなったときなどにどうぞ。
スプレッドシートで選択している範囲の「選択中のセルの数」「値が入っているセル」「数式が入っているセル」をカウントするGoogle Apps Scriptです。
シートで選択したセル範囲に、文字色や背景色がいくつ使われているかを調べるGoogle Apps Scriptです。色の塗り分けで表現された資料に直面したときに使えるかも・・・?
スプレッドシートに貼り付けてある画像を、指定したサイズで正方形にするGoogle Apps Scriptです。
スプレッドシートに貼り付けてある画像を、水平もしくは垂直方向に整列するGoogle Apps Scriptです。
スプレッドシートに貼り付けてある画像を、水平もしくは垂直方向に整列するGoogle Apps Scriptです。各画像の中心で揃えます。