Docly Child

変数

2630 views

この記事では、「変数」について紹介します。
変数を扱えるようになるとより多くのことをAUTOROでできるようになります。
つまづく方も多いポイントですが、しっかりと理解してワークフローを構築しましょう。

【この記事で扱う内容】

  • 変数の概念
  • AUTOROでの変数の設定方法

 変数の概念

変数とは、「データを入れておける名前のついた箱」と表現できます。
箱の名前を「変数名」、箱に入っているデータを「値」と呼びます。
ある名前を持つ箱に値を入れておくことで、その値を必要な場所で取り出して使えるようになります。

箱の中の値は、任意または条件に応じて変える事ができます。そのため「変数」と言います。
画像検索すると変数のイメージがたくさん出てきます。

 

 条件に応じて値が"変わる"から「変数」

変数の利点は、「条件に応じて変化する値を、同じ名前(変数名=箱の名前)で呼び出せる点」にあります。
日常生活に当てはめてみると、以下のような出来事も変数として考えることができます。

 

例1:「今日のランチは何を食べましたか?」

この記事を読んでいる大半の方は、昨日のランチで食べたものと今日のランチで食べたものは違うはずです。
「変数」というと、数学的で複雑な概念を想像してしまうのですが、今回の質問のように日常生活の中でも無数の「変数」を私たちは使っています。

「ランチ」という言葉の指し示す食べ物はほぼ毎日変化しますが、お昼に食べていれば「ランチ」という名称は変わりません。

例2:「機嫌」と変数

突然ですが質問です。ご機嫌いかがですか?

…この質問に対する答えはその時に応じて色々かと思われます。最高だったり最悪だったり、ぼちぼちだったり…

ところで、これは「機嫌」という名前の変数に、良いとか悪いとかの"値"が格納されていると解釈できます。
上述の「箱」の比喩を適用すると、「機嫌」とは、良いとか悪いとかいった値(データ)を入れておくための箱と言えます。

その他、「天気」「年齢」「今後のキャリア」などにも同様の解釈を適用することが可能です。
ポイントは、同じ言葉(機嫌や天気などの変数名)で、条件に応じて変化する"値(中身)"を取り出せる所です。
今回の例で言うと、「機嫌」という1つの変数名で、良い悪いなどの、条件に応じて変化する可能性がある値を取り出せるのです。

※応用的に考えると、機嫌という言葉を理解していない場合はエラーになるとか、私の頭の辞書には機嫌という言葉が登録されていないからエラーになる…という解釈も可能です。

 AUTOROでの変数の設定方法​

実際にAUTOROのアクションで変数を設定してみましょう。

例として、変数名が「宛先」、値が「菊池様」である変数を作ってみます。
変数を作成するには「StoreValue」アクションを利用します。

画像のように

  • 上のフォームに「変数名」
  • 下のフォームに「値」

をそれぞれ入力することで変数を作成できます。

また、変数の値には別アクションのアウトプットを設定する場合が多いです。

例:GetTextで取得した値を変数に保存

 

別アクションのアウトプットに対して変数名を設定することで、

  • 取得した値をスクリプトで整形する
  • 複数の値と組み合わせて利用する

といった汎用的な値の設定ができるようになります。

 AUTOROにおける変数の使用例

実際のAUTOROワークフローを通じて、条件に応じて値が変化する「変数」の性質を観察してみます。
今回は例として、以下のワークフローを作成します。

各地の天気状況が記載されたWebページを開き、地名と天気のテキストを出力する

地名と気温を取得します

  • StoreValue(変数に保存)を設定します。
  • 変数名をplaceとします。
  • 値をGetTextのアウトプットとします。

 

  • 「天気」についても同様の設定を行います。
    変数名はtenkiとします。

変数を呼び出し、地名と天気を含むテキストを出力します。

  • Text(テキストを作成)アクションを設定します。
  • 変数の値を呼び出す記法を使用して、テキストに変数の値を出力させるよう設定します。
今日の${place}は${tenki}です

変数の値を呼び出す記法についてはこちらをご参照ください。

実際にワークフローを実行し、5のテキストを確認してみましょう。

1で指定したURL(重慶の天気)が出力されるはずです。

https://weather.yahoo.co.jp/weather/world/CN/57516/

6が問題なく確認できたら、1のURLを以下に変更して再度ワークフローを実行してみましょう。

https://weather.yahoo.co.jp/weather/world/CD/64210/

このスクリーンショットからは、以下が確認できます。

  • 条件(開くURL)が変わったため、変数の値(重慶→キンシャサ,晴れ時々曇→雨のち曇)が変化した
  • URL以外の変数名などは変更していない。よって同じ変数名で異なる値が呼び出せている。
エディタモードから複製可能です
# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://weather.yahoo.co.jp/weather/world/CN/57516/'
  lang: 'ja-JP'
  headless: true
  useShadowDomSelector: false

# テキストを取得
+get_text_1:
  action>: GetText
  browser: +open_browser_1
  selector: '.yjM'
  ignoreError: true

# 変数に保存
+store_value_1:
  action>: StoreValue
  key: place
  value: +get_text_1

# テキストを取得
+get_text_2:
  action>: GetText
  browser: +open_browser_1
  selector: '.forecastDetail_top:nth-child(1) .telop'
  ignoreError: true

# 変数に保存
+store_value_2:
  action>: StoreValue
  key: tenki
  value: +get_text_2

# テキストを作成
+text_1:
  action>: Text
  text: '今日の${place}は${tenki}です'

このページは役に立ちましたか?