第16週 オートプログラムを作ろう


ここまで脱落せずに学んでくださった方も、そうでない方もいらっしゃるでしょう。もし毎日マイツールを立ち上げていないなら、それは「マイツールの良さ・必要性・楽しさ」を十分にお伝えできなかった私の責任です。どうぞご安心ください。

3大機能 “オート” のご紹介

マイツールの主要機能は「サーチ」「ソート」「オート」の3つ。今週は最後のひとつ、オートについてお話しします。
※オートを使わなくても業務改善は可能ですが、同じ操作を繰り返すような場面では強力な味方になります。

オートとは何か?

  • コマンドの連続実行 を一度の操作(RUNドン)で自動化する機能。
  • 毎日同じ操作を何度も入力する手間を省き、ミスを防ぎます。
  • とはいえ、すべてをオートに頼るのは本末転倒。必要に応じて使い分けましょう。

オートはいかにもコンピュータという感じです。
同じ操作を百回も繰り返すなら、その手間とミスを避けるために、迷わずオートに任せましょう。

今週のミッション:スケジュール→カレンダー変換オートを作成

以下のステップで、虫の目(詳細スケジュール)を鳥の目(カレンダー)に一発変換するオートを組んでみましょう。

1.曜日優先カレンダーのフォーマットを準備

ここから先の操作は、「ZZ」ファイルに移動してい実行します。
CHFドンZZドン

A4横に3ヵ月分が収まる表を作成

CALEドン
作成する表は「1カ月」:2(複数月)ドン
作成するのは何年ですか:2025ドン(作成したい年を西暦で入力)
何を基準にしますか「曜日」:ドン(★曜日を基準にします)
作成する月は「今月から12カ月分):1-3(1月から3月までのカレンダーなので1-3と入力)

このカレンダーを91ぺージに保存します。
Wドン91ドンドン

同様に
4月~6月を92ページ
7月~9月を93ページ
10月~12月を94ページ
に保存します。

オートプログラムを書きます

EDコマンドを使います。
まず、白紙のぺージを用意して、タイトルは「YEAR」とします。
タイトルがプログラム名になります。
プログラム名は日本語でもOKです。

Fドン
表題を付けてください:YEARドン
ESC(エスケープキー)

一度99ぺージに保存します。
Wドン99ドンドン

EDドンで2行めからプログラムを書きます。

今回は下記のプログラムの見本通りに入力してください。
スペースも「.」や「,」も同じように入力してください。
英数半角で、英字は大文字が見た目に美しいです。
「:」はエンターキーを押したことです。つまりドン。

オートプログラム

*** 2025.08.04 mahimahi作成

    ACCP:スケジュールのMYPのファイル名は?:?:
        V1=V0:

    ACCP:曜日優先カレンダーは、何ペ―ジから?:?:
        Z1=Z0:

    ACCP:曜日優先カレンダーは、何ペ―ジまで?:?:
        Z2=Z0:

      IF Z1>=Z2 THEN:STOP:ENDIF:

   FOR Z1 TO Z2:
       R:Z1:
        BC:3-4,7-8,11-12:
        UPD::V1:2:2:R:7:3:R:8:4::
        UPD::V1:6:2:R:7:7:R:8:8::
        UPD::V1:10:2:R:7:11:R:8:12::
       W:Z1::
   NEXT:

STOP:

書き終えたら 99ページへ保存します

Wドン99ドンドン

プログラムを登録

PROドン
Eドン(登録)
登録するぺージは:99ドン(EDで書いたオートプログラムを保存したぺージ)

プログラムを実行

RUNドン
プログラム名は:YEARドン

エラーが出たら ED→修正→W→RUN をくり返し、意図どおり動くまで調整します。

Rドンで99ぺージを読み出し、プログラムを修正して、Wドンで保存します。そしてRUNドンYEARドンを正しく動くまで繰り返します。

オートプログラムの説明(行ごと解説)

2行目(コメント)
誰が・いつ作成/変更したかを記載。 を付けるとコメントになります。

4行目(ACCP)
入力を受け取る命令。キーボードからの入力は ? に入り、
数値なら Z0、文字列なら V0 に格納されます。
ここでは「スケジュールの MYP のファイル名」を受け取り、V0 → V1 へ保存。

7~11行目(範囲指定)
「曜日優先カレンダーの開始ページ/終了ページ」を ACCP で取得。
Z0 に入った値を、それぞれ Z1Z2 に退避。

13行目(IF)
Z1 >= Z2 は異常(範囲逆転・同一)なので STOP:
Z1 < Z2 のときのみ処理を続行。

15~22行目(FOR ~ NEXT)
Z1 から Z2 まで同じ処理を繰り返し。

  • R:Z1: … 該当月のカレンダーページを読み出し
  • BC:3-4,7-8,11-12: … 対象列(3・4・7・8・11・12列)をクリア
  • UPD::… … スケジュールファイル(V1)を参照し、月ごとの該当列へ置換
    • 1か月目:2 列(日付)をキーに、スケジュール 7→38→4
    • 2か月目:同様に 7→78→8
    • 3か月目:同様に 7→118→12
  • W:Z1:: … 同一ページに書き込み

24行目(STOP)
終了。

オートプログラム作成のコツ

17行目から20行目にかけての処理は、一度手動でコマンドを打って実行してみることをおすすめします。

手順のヒント:

  1. コマンドを実際に打って処理を確認
    まずは手で RBCUPD などのコマンドを実行して、思い通りに動くか確認します。
  2. RLOGで履歴を表示
    コマンドがうまくいったら RLOG ドンで、コマンドの履歴を表示します。
  3. 履歴を裏画面に退避
    X ドンでコマンド履歴を裏画面に移します。
  4. 画面を分割してコーディング
    DS ドンで画面を上下に分割し、上画面で ED ドンを使ってオートプログラムを書いていくと、とても書きやすくなります。

レイアウト変更に注意

なお、曜日優先カレンダーのレイアウト(列の配置)を変更した場合は、
99ページに保存したオートプログラムの17〜20行目を編集し直す必要があります。
カレンダーの列位置と UPD コマンドの指定がずれてしまうと、正常に動作しなくなるためです。

このように、手作業での試行→履歴の参照→コーディングという手順を踏むことで、効率よく、そして正確にオートプログラムを作成できます。マイツールらしい「作りながら考える」アプローチです。

ひとこと

プログラムと聞くと「理系の仕事」と思われがちですが、実はそうではありません。プログラムを書くためには、むしろ文系的な要素が大きく関わります。
・ 言葉の選択:コマンド名やコメントは「誰が、何を、どうしたいか」を正確に伝えるための言葉づかいです。
・ ストーリー設計:処理の流れを整理し、「いつ、どこで、何を、どうする」のシナリオを組み立てます。
・ 要件定義:何のためにプログラムを書くのか、その目的を明確に言語化する力が重要です。

むしろ、言語を扱うことに慣れている文系の方のほうが、こうした「プログラム設計」のセンスを発揮しやすいかもしれません。言葉で組み立てる力を活かして、ぜひオートプログラムにも挑戦してみてください!

オートプログラムが思い通りに動き、問題が一瞬で解決したときの快感を、ぜひ味わってみてください!

わたしは、動けば何でもいい、どんな書き方をしても、何をしてもいいというのは好きではありません。仕事の道具ですからやはり美しくないと。オートプログラムは、Fドンで作ったデータと違って、見えているわけではありません。が、見えてないところこそ美しく作ることで、全体が美しいオーラを放ちます。

オートプログラムの作法

パソコンの性能が向上した現在では、作法を気にせずコマンドをつなげただけでもオートプログラムは動きますが、実際には以下のポイントを意識しておくと、保守性・可読性が格段に向上します。

1.アルゴリズムを明確に

アルゴリズムとは、ある問題を解決するための一定の手順や方法のことです。

オートプログラムは、コマンドの連続実行によって「あなたの仕事の手順」を再現するものです。

特にマイツールのオートプログラムは、コマンドの連続を繋げで自動実行させるもので、言ってみてば、あなたの仕事の手順です。

たとえば、交通費精算の場合
交通費、JRが1,100円、バスが210円、合計1,310円を精算するとき、

1.精算の用紙を出す。
2.金額を記入する。
3.合計を計算する。
4.経理に提出する。
5.お金を受け取る。
の手順があります。

これを、交通費精算の流れをマイツールで表すと:

  1. 環境設定 R ドン 精算用紙 ドン
  2. 入力
    EL ドン JR ドン 1100 ドン
    EL ドン バス ドン 210 ドン
  3. 計算
    TL ドン L ドン
  4. 出力
    W:精算用紙::
    P:

これをオートプログラムにまとめると:
R:精算用紙:
EL:JR:1100:
EL:バス:210:
TL:L:
W:精算用紙::
P:
STOP:

プログラムは「環境設定→入力→計算→出力」の流れに沿って書くと誰が読んでも分かりやすくなります。
日本語の語順(主語・目的語・動詞)に近づけて書くと、一層理解しやすくなります。
プログラムは日本語の文法の語順に合っていると言われています。
仕事の流れを整理して、上手く日本語にしてみてください。
そしてマイツールでオートプログラムを書くといいかもしれません。

もし上手く日本語にできない流れがあるとすれば、上手くプログラムできないとき、それは仕事の改善のチャンスがあるかもしれません。
マイツールを使うことで仕事が改善するというのは、こういうところにもあります。

2.後から修正しやすく

どんなに短いプログラムでも、将来の自分や他人が修正しやすいように心がけましょう。
・ コメントを活用する
コメント行は先頭に ※ を付けて、
・ 変数の役割
・ 計算の意図
・ 消費税計算の位置 など
を明示しておくと、仕様変更時に素早く対応できます。
・ 段落・改行で区切る
ロジックごとに改行を入れ、処理のまとまりを意識して書くと見通しがよくなります。
文章を書くように、プログラムも「段落」で整理してみてください。

この変数には何が入るのか、
このプログラムはどこを計算しているのか、
消費税の計算はここでしている、
などのコメントがれば、
消費税が変わったときに、直ぐに自分で修正することができるでしょう。

POINT
自分以外の誰かが書いたプログラムを修正するのは至難の業です。
自分で書いたプログラムでさえ、コメントや構造化がないと理解しづらくなります。
「書いて終わり」ではなく、「読み返しやすい」コードを書く習慣を身につけましょう。

プログラムの3大制御構文

オートプログラムでも、以下の3つの制御構文を使うことで、より高度なロジックを組み立てられます。いわば、コンピュータの本領発揮です。

  1. GOTO
    指定したラベルへ無条件にジャンプします。
    GOTO ラベル名:

    ラベル名:
  2. FOR … TO … NEXT
    決まった回数だけ繰り返し処理を実行できます。
    FOR 変数 = 開始 TO 終了 STEP 間隔:
    …処理…
    NEXT:
  3. IF … THEN … ELSE …
    条件に応じて処理を分岐します。
    IF 条件 THEN
    …条件が真のときの処理…
    ELSE
    …条件が偽のときの処理…
    ENDIF:

これらを組み合わせれば、単なる一連の作業自動化を超え、
動的な繰り返し
複雑な分岐
柔軟な跳躍
といった本格的なプログラムが可能になります。
ぜひ取り入れて、マイツールのオートプログラムを次のレベルへ引き上げてください!

以上の作法を参考に、ぜひあなたオリジナルのオートプログラムを作成してみてください。日々の反復作業をマイツールに任せることで、本来の「考える仕事」に集中できるようになります。

オート活用のススメ
ミスを減らす:手入力よりも確実
省人化:ルーチン業務を自動化
アイデア次第で拡張自在:請求書印刷や集計など、あらゆる定型作業に応用可能

これで、私からお伝えするマイツールの全コマンドが出揃いました!
ここまで学んでくださったあなた、本当にお疲れさまでした。
これからも毎日マイツールを立ち上げ、コマンドを入力しながらマイツールとの“会話”を楽しんでください。
業務改善とともに、新たな気づきや発見、ひらめきが次々に生まれることでしょう。


PAGE TOP