忌み嫌われた古の方眼シート(Excel方眼紙)をGASで作成する

schedule Published
published_with_changes Updated
Category folderMake
format_list_bulleted Contents

Googleスプレッドシートを方眼紙にするGASを作ったのでご紹介します。

Excel方眼紙とは

  • Microsoft Excelに代表されるセル結合機能を有した表計算ソフトで、縦横同幅程度の狭幅に設定したセルを方眼紙に見立てる様式。
  • 上記の様式を用いて、セル結合機能と罫線機能を用い、ワードプロセッサ・DTPソフト代わりとして文書作成に用いる、日本独特のビジネス文書作成習慣。

このような様式はネットスラングでネ申エクセル(神エクセル)と呼ばれていたが、この様式を問題視する学術関係者や国会議員などにも広まっている。

出典:フリー百科事典『ウィキペディア(Wikipedia)』open_in_new

根絶やしにされてご存じない方もいるかもしれませんが、Excel方眼紙を用いたドキュメントは非常に嫌われており、問題視する人がいます。今回は文書作成に用いるつもりはなく、ドットフォントやドット絵(ピクセルアート)を作るのに超便利そうなので、Googleスプレッドシートを神エクセルにしてみたいと思います。

GASでGoogleスプレッドシートを神エクセル化

手動でもまったく苦にならなそうな作業ですが、無駄にGAS(Google Apps Script)でシートを方眼紙化します。
GASとは何?という方は、ぜひGASに触れてみてはいかがでしょうか!

Google Apps Scriptとは、Googleによって開発されたスクリプトプラットフォームである軽量のアプリケーション開発のためのGoogleのワークスペースプラットフォーム。 主にGoogleのサービスを自動化するスクリプト言語である。

Googleスプレッドシートで主に使われるが、それ以外でも利用ができる。非常に適応範囲が広いので、例えば、SNSに返信が届いた場合Gmailに届ける。Gmailで期限の近いタスクを自分のSlackで表示する等のこともできる。

出典:フリー百科事典『ウィキペディア(Wikipedia)』open_in_new

コード紹介

それでは今回書いた神エクセル化を実行するGASのコードを紹介します。
無駄にfor文で1行/1列ずつ繰り返し処理するクソコードを晒していたのですが、setRowHeightsで複数行の高さ、setColumnWidthsで複数列の幅を操作できるので修正しました。

スプレッドシートの操作準備
const spreadSheet = SpreadsheetApp.getActive(); //アクティブなスプレッドシート
const sheet = spreadSheet.getActiveSheet(); //アクティブなスプレッドシートのアクティブなシート

方眼紙にする関数
function hougan() {
  const colNum = sheet.getMaxColumns(); //列数を取得
  const rowNum = sheet.getMaxRows(); //行数を取得
  sheet.setColumnWidths(1, colNum, 10); //全列の幅を10に
  sheet.setRowHeights(1, rowNum, 10); //全行の高さを10に
}

メニュー作成
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  const menu = ui.createMenu('神エクセル化'); //メニュー作成
  menu.addItem('実行' , 'hougan'); // 作成したメニューにアイテムを追加
  menu.addToUi(); // メニューをUiクラスに追加
}

神エクセル化GASを実行してみる

上手くいきました。
ついでにファミコンのマリオ(大)を模写してみました。

おわりに

コンピューターやゲームの表現技術として発展したドット絵(ピクセルアート)やファミコン時代の容量削減の工夫などは面白い情報満載です。
NFTアートやサステナブルWebデザインなど、今も役立ちそうです。

次回はもっと役に立つGASのコードを紹介できればと思います。