FRep

FRepの使い方【関数】でフルオートプログラムを作る

基本的なフルオートプログラムを作りながら、関数の使い方を解説します。

ツムツム起動プログラム
ハート送信プログラム
BOX受取プログラム

この3つのプログラムが問題なく動く様になったら、フルオート用のプログラムにしましょう。

 

スポンサーリンク

フルオートプログラムの基本の流れ

  1. ツムツム起動
  2. BOX受取
  3. ランキング1番下までスクロール
  4. ハート送信
  5. BOX受取
  6. ツムツム終了

BOX受取プログラムが2ヵ所あるのは、送信周期が通常61分以上ある為です。

1ヵ所だけだと次の受取までに61分以上開いてしまい、その1分の間に受け取ったハートはせっかくのコインが消滅してしまいます。送信の前と後の2ヵ所でBOX受取をすることによって、もれなくコインが受け取れる様になります。

 

3.ランキング1番下までスクロール と 6.ツムツム終了 の2つは新規で作ります。

1.ツムツム起動 2.と5.BOX受取 4.ハート送信 この3つをコピー&ペーストし、中断や完了を削除して流れを整えることで、ちょっと長いプログラムになりますがきちんと動きます。
ですが、せっかくなので

ツムツム起動プログラム
ハート送信プログラム
BOX受取プログラム

この3つのプログラムを関数にしてから、フルオートプログラムで関数呼び出しを使って取り込んでみましょう。

 

FRepの関数とは

関数というと、表計算エクセル等が苦手な方は難しそう!と敬遠しがちですが、FRepの関数はちょっと違います。

公式FRepサポートでは関数をプロシージャと表現しています。
プロシージャとは、複数の処理をまとめて1つのかたまりにしたものという意味で、ルーチン、サブルーチンと同じだと考えればよいでしょう。

もっと簡単にいうと、親子プログラムの子プログラムです。

この表現の方がわかりやすいかもしれませんね。

親にあたるメインプログラムから子プログラムの関数を呼び出して実行し、またメインプログラムに戻る、という使い方をします。

 

関数に変数を使用している場合は、メインプログラムにその変数のが引き継がれます。しかし、メインプログラムから関数へは変数のは引き継がれません。
詳しくは、FRepの使い方【変数】と【IF】 をご覧ください。

尚、FRepでエクセル関数に相当するのは、【If文】や、変数の中でも特別な【システム変数】ではないでしょうか。

 

関数を作成する

では、BOX受取プログラムを関数にして保存してみましょう。

記録の管理から、BOX受取のプログラムを選択し、プログラム編集で該当プログラムを開きます。

FRepプログラム全て選択

メニュー【Ξ】を開き、【すべて選択】をタップします。

 

FRepプログラムBOX受取

右側のチェックボックスに全てチェックがつきました。

 

FRepプログラム関数に切り出し

そのまま再度メニュー【Ξ】から【関数に切り出し】をタップします。

 

FRepプログラム切り出した関数のラベル名

元のラベル名に[]がついた名前になりました。
関数のラベル名がよければ「適用」をタップします。

 

FRepプログラム選択部分を関数として保存しました

保存できました。

※メッセージは一瞬だけ出ます。

 

FRepプログラム関数タブ

そのまま戻るボタンで記録の管理の一覧に戻り、関数タブを開いてみて下さい。

切り出した関数が保存されています。

これで関数が出来ました!簡単ですね!

 

念の為、中を確認して大丈夫ならば、元々あったBOX受取プログラムは削除してしまって構いません。

同じ様に、3つの関数を作成します。
[ツムツム起動]プログラム
[ハート送信]プログラム
[BOX受取]プログラム

 

フルオートプログラムを作成する

それでは、フルオートプログラムを作りましょう。

FRepプログラム作成

記録の管理のメインタブからプログラム作成をします。

FRepプログラム新規作成

新規作成をします。

 

関数呼び出しを作成します。

FRepプログラム条件・制御ボタン

条件・制御の設定ボタンをタップします。

 

FRepプログラム関数呼び出し

関数呼び出しをタップします。

 

FRepプログラム呼び出す記録を選択

該当プログラムを指定(タップ)します。

関数呼び出しプログラムが作成されました。

1.の待機は削除しておきます。

FRepプログラム削除の確認

 

同じ様に、関数呼び出しプログラムを作成しておきましょう。

1.ツムツム起動

2.BOX受取

3.ハート送信

4.BOX受取

 

3.ランキング1番下までスクロールを作ります。

ランキング1番下までスクロールは、操作の記録(Rec)で作っても大丈夫です。

スクロールが多くても問題無いですが、少ないとランキング人数が増えた時にハート送信漏れになりますから、思い切って多めにスクロールしておく方が良いでしょう。

 

FRepプログラム記録を追加

記録が作成出来たら、プログラム2.と3.の間に追加します。

記録を追加のボタンから指定して入れましょう。

 

6.ツムツム終了を追加します。

FRepプログラムアプリ終了追加

アプリ終了をタップします。

FRepプログラム対象アプリを選択

対象アプリを選択画面が出たら、ツムツムを指定します。

もしもツムツムが指定できない場合は、一旦アプリ起動(ツムツム)を追加すると、アプリ終了でツムツムを選択出来る様になります。その後アプリ起動(ツムツム)は削除しておいてください。

プログラムの名前を付けます。

FRepプログラムラベル表示設定

ラベルにプログラムの名前をつけておきましょう。

 

フルオートプログラム完成です。

FRepプログラム フルオートプログラム

一度戻るボタンで戻り、保存されてからもう一度プログラムを開くと、プログラム番号もきちんと並んでいます。

以上で基本的なフルオートプログラムが完成しました。

関数のメリット

プログラムを関数にしておくと、こんな時に便利になります。

  • 他のプログラムでも使いたい時。
  • 数カ所で使っている関数を修正したい時。

例えば、通常のフルオートプログラムとは別に月曜日用プログラムを作った時に、BOX受取プログラムは通常と同じものを使いたい場合。

BOX受取プログラムを関数にしておけば、プログラムには関数呼び出しを入れるだけです。

 

そして、プログラムを修正したくなった場合はもっと便利です。

修正するのは関数の中身1つだけで、メインのプログラムは何もする必要が無いので間違えにくいです。

関数化していないと、修正が複雑になればなるほど、数カ所の修正が面倒になってくる訳ですね。

さらに、メインプログラムもスッキリして見やすいのも大きなポイントです。

この様に簡単に出来て効果の高い関数です。

是非使ってみて下さい!

フルオートのプログラムが完成したら、是非止まらない為の方法に目を通しておいてください。

 

コメント

  1. お世話になります。
    1点後確認させて頂きたくメールさせて頂きました。

    メインプログラムで変数を使用している場合、このプログラムを関数にすると、Hintに記載のとおり、メインプログラムで作成した変数は無効になってしまうのでしょうか。

    上記のとおりの場合、フルオートのプログラムを作成したければ、個々のメインプログラムは関数にせず、新たなメインプログラムに作成したメインプログラムを追加する認識でしょうか。

    お忙しいところ大変申し訳ございませんが、ご確認よろしくお願い致します。

  2. かのんかのん より:

    コメントありがとうございます(^^)
    結論を先に申し上げますと、関数に切り出しても変数は無効になりません。変数の入ったプログラムでも関数に切り出して使用できます。

    変数についての考え方の問題になります。
    変数とは、プログラム実行中に変数という入れ物に「値」を入れて、その「値」をまたプログラムで使います。プログラム実行中とは、実際にハートを送信している、その時です。

    Hintに書いてあるのは「値」なのです。
    例えば、関数を実行中にその時の送信数100をcountという変数にセットします。つまり、countの「値」が「100」になります。
    メインプログラム実行中に、countの値は?という変数を使うと「100」という「値」が返ってきます。
    しかし、メインプログラムでcount=100に変数をセットした場合、メインプログラム実行中のcountの値は「100」ですが、関数を実行中のcountの値は「」=何もなしです。
    Hintに書いてあるのは、この様な意味になります。

    これで、わかりますでしょうか?
    変数については、(私も素人なもので)説明するのもなかなか難しい為、わかりにくくてすみません。

    わからなかったら又コメント頂けると有り難いです。よろしくお願いします。

  3. ご回答ありがとうございます。
    Hintの意味がよく分かりました。
    これで安心してメインプログラムを関数にすることができます。
    丁寧にご説明して頂きありがとうございました。

    • かのんかのん より:

      説明が通じた様でよかったです(^^)
      これを機に記事内容を少し修正しました。また、FRepの使い方【変数】と【IF】の記事も修正しました。

      https://autofrep.net/variable-if/

      宜しければご覧になってみてください。

      • 谷園 より:

        フルオートプログラムを作る時に関数で
        起動→BOX→スクロール→ハート送信→BOX→終了としているのですが、起動を行ったあと、BOXが行われずに起動のみでプログラムが終了してしまいます。何故でしょうか?

        • かのんかのん より:

          プログラムは作った様に動きます(^^)
          制御設定で分岐先が完了や中断になっていないか、それぞれの関数内でプログラムが中断していないか等を確認してみてください。

  4. 谷園 より:

    制御設定で一部完了のところが中断になっていました!ありがとうございました!

  5. 山田 より:

    3つをコピー&ペーストし、中断や完了を削除して流れを整えることとあるのですが3つのうちどこの部分の中断や完了を削除すればいいのでしょうか。

    • かのんかのん より:

      当記事は関数を使ってフルオートを作りますので、
      >3つをコピー&ペーストし、中断や完了を削除して流れを整える
      こちらは不要です。

      記事のとおりに関数を作成する場合は、コピペ、中断完了削除等は何もせずそのままで大丈夫です。

スポンサーリンク
タイトルとURLをコピーしました