こんにちは!
昨年のクリスマスの記事からそれほど日は経っていないのですが、またブログ更新の機会を頂けることになりました、制作部の平野です。
弊社ではプロジェクト等の資料媒体としてスプレッドシートをよく利用しているのですが、今回の記事では、その運営にも一役買っているGAS(Google Apps Script)についてご紹介していきたいと思います。
そもそもGASとは?
G Suiteプラットフォーム(スプレッドシート、Googleドライブ、Gmailなどなど)を操作することができるスクリプト言語です。
JavaScriptをベースにしていて(一部の関数を除けば、ほぼJavaScriptです)、クラウドサーバー上で実行されるのが特徴です。
実行環境などもすべてサーバー上に用意されているので、Googleアカウントさえあれば、手軽に開発を始めることができるのも魅力の一つと言えます。
しかも無料です!
GASでスプレッドシートに画像を貼り付けてみる!
今回は例として、スプレッドシートに画像を貼り付ける機能をご紹介したいと思います。 実務では、大量の資料画像をゲームモード別にスプレッドシートへまとめる際に使用しました 。
まず、画像を貼り付けたいスプレッドシート内で「ツール→スクリプト エディタ」を選択します。
すると、別タブでスクリプトエディタが開きます。
ここにコードを記述していくわけです。(準備がお手軽!)
当時のコードを改変して、ご紹介します。
// InsertImageを使用するか(Excelでも表示可能になる代わり重くなる)
var is_insert_img = false;
// 貼り付け画像の縦横サイズ(insertImageでのみ適用)
var img_width = 160; // 横
var img_height = 90; // 縦
// 貼り付ける行
var row = 1;
// 貼り付ける列
var column = 1;
// 貼り付け先のスプレッドシートID
var sheet_id = "XXXXXXXXXXX(スプレッドシートURLの1から始まるID)";
// 貼り付け先のシート名
var sheet_name = "XXXXXX(シート名)";
// ドライブ画像への直リンク取得用URL
var link_url = "http://drive.google.com/uc?export=view&id=";
// 貼り付ける画像のGoogleドライブID
var img_id = "XXXXXXXXXXXXX";
//----------------------------------------------------------
// 指定された画像を貼り付ける
//----------------------------------------------------------
function SetImage()
{
// 貼り付けるシートを取得
var ss = SpreadsheetApp.openById(sheet_id);
var sheet = ss.getSheetByName(sheet_name);
// Googleドライブ内画像への直リンクURL
var url = link_url + img_id;
if(is_insert_img)
{
// GASのinsertImage関数を使う(引数の順番が「列、行」なので注意)
sheet.insertImage(url, column, row)
.setHeight(img_height).setWidth(img_width);
}
else
{
// スプレッドシートのIMAGE関数を使う
sheet.getRange(row, column).setValue('=IMAGE("' + url + '")');
}
}
コードが実装できたら、関数を選択して、実行ボタンを押します。
すると、クラウドサーバー上でコードが実行され、スプレッドシートに画像が貼り付けられます!
GASで画像を貼る二つの方法
私が調べた限り、GASで画像を貼る方法は以下の二つがあります。
GASのinsertImage関数を使う
画像を指定されたセルの上に配置するGAS関数です。
あくまで、セルの位置に画像を置いているだけなので、後からセルの縦横幅などを操作したとしても、それに合わせて移動することはありません。
また画像の量にもよりますが、後述するIMAGE関数に比べ、スプレッドシートの動作が重くなりやすいです。
しかしスプレッドシートには、ファイルをExcelデータに変換してダウンロードする機能があります。insertImage関数では、その機能を使った場合でも画像がしっかり表示されます。(IMAGE関数に関しては後述)
スプレッドシートのIMAGE関数を使う
画像を指定されたセル内に挿入するスプレッドシート関数です。
セル内に画像を貼り付けてくれるので、たとえセルの縦横幅などを操作したとしても、そのセル内に留まり続けます。
ただしファイルをExcelデータに変換した場合、画像が表示されません。 ExcelにImage関数が存在しないからです。画像を直接外部サイトから参照できるのは、オンラインが前提のスプレッドシートならではと言えます。
上記の理由から、Excelデータに変換する必要がある場合はinsertImage関数を使い、それ以外の場合はIMAGE関数を使った方が便利でしょう。
最後に
今回は例としてスプレッドシートに画像を貼る機能をご紹介しましたが、GASは他にも様々なGoogleサービスで利用できます。
連携も容易なので、スプレッドシートの特定の情報をGoogleカレンダーに登録する(パッといい例が思いつきませんでしたが)などのコラボ技も有効です。
また、プロジェクトのトリガーを設定して業務の自動化ができたり、Webアプリケーション化を利用して外部にプロジェクトを共有したり、とその利用方法も幅広いです。
なにかの機会でGASが使えそうな場面に遭遇した際には、ご利用を考えてみてはいかがでしょうか。
最後までご清覧いただき、ありがとうございました!
【免責事項】
本サイトでの情報を利用することによる損害等に対し、
株式会社ロジカルビートは一切の責任を負いません。