LoginSignup
0
0

More than 3 years have passed since last update.

GASをHackして業務を効率化しよう(Google Docs/DocumentApp)

Posted at

GASをHackして業務を効率化しよう(Google Docs/DocumentApp)

注意事項と本家

2020/11/14 : 準拠
2020/11/14時点の下記リファレンスドキュメントを参考に書いています。
Class DocumentApp  |  Apps Script  |  Google Developers
https://developers.google.com/apps-script/reference/document/document-app

書いた経緯

業務でGoogleのBuisiness suiteを利用している会社は少なくないはず。
しかし、そこにGoogle Apps Script(GAS)を使った効率化を施しているという話は(日本だと)少ないような気がしています。
というわけで、この記事はそんなGASの中でもさらに利用が少ないと思われるDocumentAppを少し掘ろうと記事を書きました。
というか、自分で作業している間のメモみたいなものです。
(ちなみに、執筆時点でDocumentAppについてQiitaで検索を書けても89件しかヒットしませんでした)

用語

Google Docs
Googleが提供しているDrive内の文書作成エディタ機能。
(偏見:出向先の会社がWordを使っていると、まれによく表示やライセンスの関係で問題が発生する)
GAS
Google Apps Scriptのこと。JavaScriptを使えるならワリと手軽に、かつ無料でDrive内部のデータを自動化に組み込める。
(メンターがいればJS初心者の教材としても良いかもしれないけど、いないなら敬遠したい程度の難易度)
DocumentApp
Google DocsをGASから操作する時に主軸となるAPIクラス。
インスタンス
オブジェクト指向的な用語。「実体」と置き換えるとよさげ。

Google Docsとは

Google DocsはGoogleが提供する文書作成エディタで、いわゆるMSのWordに近い機能を提供してくれます。
ドライブの権限を共有している相手となら、極めて簡単に以下のような恩恵を受ける事ができます。

  • 複数ユーザーによる文書のリアルタイム同時編集
  • コメントによる非表示データの埋め込み
  • バージョン管理(特定のタイミングに巻き戻しする機能、命名も可)

とはいえ、今回の主題はその先です。
「GASを使った自動化でどんな役割を持つのか」をメインとして、その主軸になるDocumentAppまわりについて整理します。

class DocumentApp

このクラスは三つの機能の窓口になっています。
(経由するとブラウザのエディタ上でCtrl+Spaceによる補完ができます)

  1. Google Docsファイルのインスタンスへのアクセス
  2. エディタUIインスタンスへのアクセス
  3. インスタンスとやり取りするための定数(Propertiesとして保持)の提供

(私見:定数の分類、とくにAttributeに関して雑じゃないかな? あと段落のスタイルを定数にした人とはじっくりお話したい)

Google Docsファイル関連

create(name) : Document
ドライブ内へのファイル新規作成と、そのインスタンス取得
openById(id | url) : Document
ドライブ内ファイルを指定したドキュメントのインスタンス取得
getActiveDocument() : Document
特定のファイルに紐づいている(container-bound)場合のみ利用可能。
呼び出しユーザーが開いているファイルのドキュメントを取得。

UI関連

getUi() : Ui
特定のファイルに紐づいている(container-bound)場合は、そのファイルを編集するエディタ内のUser-Interfaceに干渉できる。
紐づいていない場合は調べてないです。(暇があればいつか)

定数 : 型情報/判定

enum ElementType
各種インスタンスの型情報を判定する時に使う。

定数 : 段落スタイル

enum ParagraphHeading
段落ごとに設定できる「スタイル(書式に名前を付けたもの)」のデータを扱う際に使う。
(私見:どうしてWordのような拡張性を持たせなかったのか、とても納得できない)

定数 : 文字列表示位置

enum TextAlignment
行内で文字の上下寄せに関する定数
enum HorizontalAlignment
段落の水平寄せに関する定数
enum VerticalAlignment
埋め込みセル内部における文字列寄せの定数(らしい。こちらも後回し)
enum PositionedLayout
埋め込んだ画像に対して、ドキュメントのテキストがどのように振舞うかを指定。
PositionedImageに対して、テキストを囲むように画像を表示する場合などに使う。

定数 : その他

enum GlyphType
箇条書きで先頭に表示する数値や丸などを表現する定数。柔軟な表示をしたければ使うかも。
enum Attribute
文字列要素に対する属性的なものをまとめて突っ込んでいる。
書式:太字、イタリック、下線、フォント
位置:マージン、パディング、スペーシング
大きさ:画像の大きさ、セルの大きさ
背景色:ドキュメント全体、テーブル、段落
その他
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0