「ボタン一つで次の画面にパッとジャンプしたい」 「保存ボタンを押した後、 自動で一覧画面に戻ってほしい」
AppSheetでアプリを作り始めると、 標準のメニュー(下のタブ)の移動だけでは 物足りなくなってきますよね。
ユーザーの思い通りに 「画面を自動で移動させる」ために 欠かせないのが「Action(アクション)」です。
【AppSheet 脱・初級者】シリーズでは、「少しアプリが作れるようになってきたけれど、
ここで壁にぶつかった!」という、私自身が使い始めて躓いたポイントを実体験ベースでまとめていきます。
今回は、Actionの基本をおさらいしつつ、 今回は、画面移動(ナビゲーション)で必須となる 「LINKTO●●」関数の使い方を解説します。
さらに、AppSheetを使い始めて必ず躓く壁である [_THISROW] の考え方を、 具体的な事例を交えて紐解いていきます!
AppSheetの「Action」とは?
Actionとは、簡単に言うと「特定の動きをさせるためのボタン」のことです。
画面下部にアイコンとして表示されたり、 テーブルの特定の列に表示されたりします。
AppSheetのアクションは、 大きく分けて以下の4種類があります。
- ナビゲーション: 👉 今回の主役! 別の画面へ移動
- データ変更: データを追加・更新・削除
- 外部: 電話・メール・ブラウザを開く
- グループ化: 複数のアクションを連続実行
今回はこの中の 「ナビゲーション(画面移動)」を深掘りします。
画面移動を操る「LINKTO●●」関数
「どこへ・どうやって移動するか」の指定に、 LINKTOから始まる関数を使います。
代表的な4種類の使い方と、その役割は以下の通りです。
- LINKTOVIEW() : 指定した画面にただ移動する
- LINKTOFORM() : 値を入れながらフォームを開く
- LINKTOROW() : データの詳細画面を開く
- LINKTOFILTEREDVIEW() : 絞り込んで一覧を開く
関数の「引数(ひきすう)」と呼ばれる、 カッコの中に入れる設定の書き方を見ていきましょう。
💡【超重要】魔法の言葉 [_THISROW]
関数の説明に入る前に、一番つまずきやすい 「移動元」と「移動先」のデータの区別 についてお話しします。
ボタンを押して別の画面を開くとき、 「いまボタンを押した行のデータ」を 次の画面に引き継ぎたい場面がよくあります。
このとき活躍するのが、 [_THISROW](ディスロウ:この行)です。
[列名]= (移動先) これから開く画面の列→これがわかりにくい![_THISROW].[列名]= (移動元) いま押した行の列
[_THISROW] を見たら、頭の中で 「いまボタンを押したこの行の〜」 と翻訳してみてください。
これを理解した上で、 以下の4つの関数を見ていきましょう!
LINKTOVIEW() :特定の画面に移動する
一番シンプルでよく使う関数です。 指定した名前のビューを開きます。
【構文(書き方)】 LINKTOVIEW("移動したいビューの名前")
【使用例】 「従業員一覧」というビューへ移動させたい場合。
LINKTOVIEW("従業員一覧")
※ビューの名前は "(ダブルクォーテーション)で囲みます。
LINKTOFORM() :初期値をセットしてフォームを開く
新規入力フォームを開くだけでなく、 「開いた瞬間にあらかじめ値を入れておく」 ことができる強力な関数です。
【構文(書き方)】 LINKTOFORM("フォーム名", "列名1", 値1, "列名2", 値2 ...)
【使用例】 「タスク追加_Form」という入力画面を開くとします。 「担当者」をログインユーザーにしつつ、 「どのプロジェクトか」を自動セットしたい場合。
LINKTOFORM(
"タスク追加_Form",
"担当者", USEREMAIL(),
"プロジェクトID", [_THISROW].[プロジェクトID]
)
翻訳: 「タスク追加フォームを開いて! (移動先の)プロジェクトIDの欄には、 (移動元の)プロジェクトIDをはじめから入れてね!」
LINKTOROW() :特定の行の詳細画面を開く
一覧画面からではなく、別の画面のボタンから 特定のデータの詳細画面を開きたい時に使います。
【構文(書き方)】 LINKTOROW("開きたい行のキー値", "詳細ビュー名")
【使用例】 「見積もり一覧」にあるボタンを押して、 顧客の手帳(顧客_Detailビュー)を開きたい場合。
LINKTOROW([_THISROW].[顧客ID], "顧客_Detail")
翻訳: 「顧客_Detailを開いて! 表示するのは、 (いまボタンを押した)見積もりの顧客IDのデータだよ!」
LINKTOFILTEREDVIEW() :絞り込んだ画面を開く
「特定の条件に合うデータだけの一覧画面」 を開きたい時に使います。 ここでも [_THISROW] が大活躍します。
【構文(書き方)】 LINKTOFILTEREDVIEW("ビューの名前", 絞り込み条件)
【使用例①:ログインユーザーで絞り込む】 「タスク一覧」ビューを、 ログイン中ユーザーのデータだけに絞り込む場合。
LINKTOFILTEREDVIEW(
"タスク一覧",
([担当者] = USEREMAIL())
)
【使用例②:[_THISROW] を使った応用】 「プロジェクト一覧」の特定のボタンを押して、 そのプロジェクトのタスクだけを絞り込む場合。
LINKTOFILTEREDVIEW(
"タスク一覧",
([プロジェクトID] = [_THISROW].[プロジェクトID])
)
翻訳: 「タスク一覧を開いてね! ただし(移動先の)プロジェクトIDが、 (移動元の)プロジェクトIDと同じデータだけにしてね!」
引数(ひきすう)を書くときの「3つの約束」
「関数のカッコの中に何を書けばいいの?」 と迷ったら、以下のルールを思い出してください。
- 文字列は
" "(ダブルクォーテーション)で囲む ➔LINKTOVIEW("顧客名簿") - 列の名前は
[ ](角カッコ)で囲む ➔LINKTOROW([ID], "プロジェクト_Detail") - 項目を複数渡すときは
,(コンマ)で区切る ➔LINKTOFORM("フォーム名", "列", 値)
まとめ
ナビゲーションと「LINKTO●●」関数を使いこなせば、 ユーザーにとって次にするべき操作が明確になります。
- ただ移動するだけなら LINKTOVIEW()
- 値を入れつつフォームを開くなら LINKTOFORM()
- 特定のデータを詳細に見るなら LINKTOROW()
- 絞り込んで一覧を見るなら LINKTOFILTEREDVIEW()
まずは簡単な LINKTOVIEW から触ってみて、 書き方に慣れていきましょう!

コメント