カテゴリ: COBOL 更新日: 2026/08/11

COBOLとJCLのEXEC文を完全ガイド!初心者でもわかるCOBOLプログラムの実行方法

EXEC文の基本構文とCOBOLプログラムの実行方法
EXEC文の基本構文とCOBOLプログラムの実行方法

先生と生徒の会話形式で理解しよう

生徒

「COBOLのプログラムを実行するときにJCLを書くと聞いたんですが、EXEC文って何をするものなんですか?」

先生

「EXEC文は、JCLの中で“どのプログラムを動かすか”を指定する一行だよ。COBOLを実行するときは必ず必要になるんだ。」

生徒

「プログラムを動かす指示、ということですか?どう書けばいいんでしょう?」

先生

「それじゃあ、初心者でも迷わないように、EXEC文の基本から実際の使い方まで順番に見ていこう。」

1. EXEC文とは?COBOLプログラムを動かすための“実行スイッチ”

1. EXEC文とは?COBOLプログラムを動かすための“実行スイッチ”
1. EXEC文とは?COBOLプログラムを動かすための“実行スイッチ”

JCL(Job Control Language)は、メインフレームでCOBOLプログラムを動かすときの「作業指示書」です。その中でEXEC文は、実行したいプログラムを指定する重要な部分になります。

例えば、家で電気をつけるとき、スイッチを押すだけで部屋が明るくなりますよね。EXEC文は、その「スイッチ」のような役割です。「このCOBOLプログラムを実行してください」とコンピュータに伝えます。

EXEC文はJCLの中で非常に重要で、COBOLを学ぶ初心者がまず理解しておくべきポイントです。


//STEP01   EXEC PGM=COBPROG

この一行だけで、「COBPROG」という名前のCOBOLプログラムを実行するように指示できます。

2. EXEC文の基本構文をやさしく解説

2. EXEC文の基本構文をやさしく解説
2. EXEC文の基本構文をやさしく解説

EXEC文は次のような形をしています。シンプルなので初心者でも覚えやすい構造です。


//ステップ名 EXEC PGM=プログラム名

では、この構造の中の各部分について丁寧に説明していきます。

● ステップ名とは?

JCLでは、一連の処理を「ジョブ」と呼び、その中の個々の処理を「ステップ」と呼びます。ステップ名は、そのステップに付けるラベルのようなものです。

例えば、掃除をするときに「台所」「風呂場」「リビング」と区切るイメージです。どの処理がどの部分なのか確認しやすくなります。

● EXEC(エグゼック)とは?

EXECは「実行する(EXECUTE)」という意味を持つキーワードです。「今からこのステップでプログラムを実行しますよ」という合図を出します。

● PGM=プログラム名

PGMは「Program(プログラム)」の略で、実行したいCOBOLプログラムを指定します。ここに書く名前は、リンク編集で作成された実行モジュールの名前です。

3. COBCOLプログラムをEXEC文で実行する流れ

3. COBCOLプログラムをEXEC文で実行する流れ
3. COBCOLプログラムをEXEC文で実行する流れ

初心者が最もイメージしたいのは、実際に一つのCOBOLプログラムをJCLで動かす流れです。ここでは、最も基本的なJCLの例を見て、EXEC文がどのように使われるか理解しましょう。


//SAMPLE  JOB (ACCT),'USER',CLASS=A,MSGCLASS=X
//STEP01  EXEC PGM=HELLOCOB
//SYSOUT  DD SYSOUT=*
//SYSIN   DD DUMMY

ここで「HELLOCOB」が実行されるCOBOLプログラムです。SYSOUTは実行結果の出力先、SYSINはプログラムに渡す入力です。今回はDUMMYを指定しているので、特別な入力はありません。

プログラムを実行するには、JOBカードを書き、EXEC文でプログラムを指定し、必要なら入力ファイルや出力ファイルも指定します。こうした流れを覚えるとメインフレームでのCOBOL実行の仕組みがはっきり理解できます。

4. EXEC文でよく使うパラメータ

4. EXEC文でよく使うパラメータ
4. EXEC文でよく使うパラメータ

EXEC文にはPGM=以外にもいくつかのオプションがありますが、初心者が最初に理解しておくべき主要パラメータを紹介します。

● PARM=

PARMはプログラムにパラメータ(指示)を渡すときに使う項目です。例えば、「特定のモードで動かしたい」「テスト用のフラグを渡したい」などのときに使われます。


//STEP01 EXEC PGM=HELLOCOB,PARM='TEST'

COBOLの中では、ACCEPT文などでこの値を受け取ることができます。

● COND=

CONDは、前のステップでエラーが出たときに、このステップを実行するかスキップするかを決める条件です。メインフレームのバッチ処理ではよく使われます。


//STEP02 EXEC PGM=NEXTSTEP,COND=(4,LT)

これは「前のステップの戻りコードが4より小さい場合、このステップをスキップする」という意味です。

5. EXEC文を書くときの注意点

5. EXEC文を書くときの注意点
5. EXEC文を書くときの注意点

JCLのEXEC文を書く際には決まりごとが多いため、初心者は少し注意が必要です。ここでは、最も大切な注意点を挙げます。

● 半角で正確に書くこと

書き間違いがあるとジョブが実行されず、エラーコードが返ってきます。メインフレームは全角やスペースにとても厳しいため、見た目が同じでも全角だったりすると動きません。

● 位置揃えは厳格

JCLは1行目が「//」で始まる必要があります。ステップ名の位置や、EXECの後のスペースの位置にも決まりがあるため、見本どおりに書くことが大切です。

● プログラム名を間違えない

PGM=で指定する名前は、リンク編集後に作られた実行モジュール名と一致している必要があります。よくあるミスが「拡張子をつけてしまう」ことですが、COBOLの実行モジュールには拡張子はつきません。

まとめ

まとめ
まとめ

今回はCOBOLとJCLの基本であるEXEC文について詳しく学びました。EXEC文はCOBOLプログラムを実行するための中心的な役割を持っており、JCLの中でも最も重要な構文の一つです。COBOL初心者の方が最初に理解すべきポイントとして、このEXEC文の仕組みをしっかり押さえておくことは非常に重要です。 まず理解しておきたいのは、JCLとCOBOLの関係です。JCLは作業の指示書であり、COBOLはその指示に従って動く実行プログラムです。この関係を正しく理解することで、なぜEXEC文が必要なのかが自然と見えてきます。EXEC文はその中で「どのプログラムを実行するか」を指定する命令であり、いわば実行スイッチのような存在です。 EXEC文の基本構文は非常にシンプルであり、ステップ名 EXEC PGMプログラム名という形で書きます。このシンプルさこそが初心者にとって理解しやすいポイントであり、まずはこの基本形を確実に覚えることが大切です。またステップ名を付けることで処理の流れを分かりやすく整理できるため、実務でも非常に重要な役割を果たします。 さらにEXEC文ではPGMだけでなくPARMやCONDといったパラメータも指定できることを学びました。PARMはCOBOLプログラムに値を渡すための仕組みであり、処理内容を柔軟に切り替えることができます。同じプログラムでも渡す値によって動作を変えられるため、開発効率の向上に大きく貢献します。一方でCONDは前の処理結果に応じて次の処理を実行するかどうかを制御する重要な機能です。これによりバッチ処理の流れを安全に制御することが可能になります。 またCOBOL JCL EXEC文 初心者の方がつまずきやすいポイントとして、記述ルールの厳しさがあります。JCLは非常にフォーマットに厳しく、半角で正確に書かなければならないという特徴があります。例えばスラッシュの位置やスペースの位置が少しでもずれていると、実行時にエラーとなってしまいます。このため、最初はサンプルコードをそのまま写しながら慣れていくことが重要です。 さらにPGMで指定するプログラム名は、実行可能な状態になっているモジュール名と一致している必要があります。ここで名前を間違えるとプログラムは実行されず、エラーの原因となります。初心者のうちは特にこの点に注意し、確実に一致しているかを確認する習慣をつけましょう。 以下にEXEC文を使った基本的なJCLのサンプルを示します。


//JOB01   JOB (ACCT),'USER',CLASS=A,MSGCLASS=X
//STEP01  EXEC PGM=SAMPLE01
//SYSOUT  DD SYSOUT=*
//SYSIN   DD DUMMY

実行結果は以下のようになります。


SAMPLE01プログラムが実行されました

このようにEXEC文を使うことで、COBOLプログラムを簡単に実行することができます。COBOLとJCLの連携 EXEC文 初心者向け理解を深めることで、実務に直結するスキルを身につけることができます。最初は難しく感じるかもしれませんが、EXEC文の役割と構文を一つずつ理解していけば、確実に使いこなせるようになります。 COBOLとJCLの基礎をしっかり理解することは、メインフレーム開発において非常に大きな強みになります。今回学んだEXEC文を出発点として、より高度なJCLの使い方やバッチ処理の設計へとステップアップしていきましょう。

先生と生徒の振り返り会話

生徒

「EXEC文はただの一行だと思っていましたが、とても重要なんですね」

先生

「そうです。どのプログラムを動かすかを決める核心部分です」

生徒

「JCLが指示書でCOBOLが実行するという関係も理解できました」

先生

「その理解があれば実務でも困ることは少なくなります」

生徒

「PARMで値を渡せるのが便利だと感じました」

先生

「処理の切り替えができるのでとても重要な機能です」

生徒

「書き方のルールが厳しいのは少し大変ですね」

先生

「最初は写経しながら慣れるのが一番の近道です」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

COBOLでJCLのEXEC文とは何ですか?初心者にもわかりやすく教えてください。

EXEC文とは、JCLの中で実行するCOBOLプログラムを指定するための命令です。メインフレーム環境ではプログラムを起動するための重要な役割を持ち、COBOL開発やバッチ処理の基本知識として覚えておく必要があります。
カテゴリの一覧へ
新着記事
New1
Azure
Azure Application Insights活用ガイド!Webアプリの応答時間とエラーの可視化を徹底解説
New2
C#
C#の型変換まとめ!int.Parse・ToStringなどの変換方法を解説
New3
COBOL
COBOLのADD・SUBTRACT文の使い方を完全ガイド!初心者でもわかる足し算と引き算の基本
New4
COBOL
COBOLのクラウド移行における法的要件と規制完全ガイド!初心者でもわかるコンプライアンス対策
人気記事
No.1
Java&Spring記事人気No1
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド
No.2
Java&Spring記事人気No2
C#
C#のトランザクション処理を完全ガイド!初心者でもわかるCommit・Rollbackの使い方
No.3
Java&Spring記事人気No3
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.4
Java&Spring記事人気No4
Azure
Azure SQL Database購入モデル比較!vCoreとDTUの違いと選び方を初心者向けに解説
No.5
Java&Spring記事人気No5
Azure
Azure Bastionの使い方を徹底解説!踏み台サーバー不要で安全にRDP/SSH接続
No.6
Java&Spring記事人気No6
COBOL
COBOLのコンパイラと開発環境を徹底解説!初心者にもわかりやすい入門ガイド
No.7
Java&Spring記事人気No7
Azure
Azureストレージの冗長性比較!LRS/GRS/ZRSの選び方とコストの最適解を完全解説
No.8
Java&Spring記事人気No8
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法