カテゴリ: COBOL 更新日: 2026/01/25

COBOLのコンパイルエラーの原因と対処法を完全ガイド!初心者でもわかる基本のキホン

コンパイルエラーの原因と対処法をまとめて紹介
コンパイルエラーの原因と対処法をまとめて紹介

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

生徒

「COBOLのプログラムを書いたんですが、よく分からないエラーが出て動きません…」

先生

「それはコンパイルエラーが出ている可能性がありますね。エラーの内容を見て、どこに間違いがあるかを確認する必要があります。」

生徒

「コンパイルエラーってなんですか?どうやって直せばいいんでしょうか?」

先生

「それではCOBOLのコンパイルエラーの意味や原因、よくある例とその直し方について詳しく見ていきましょう!」

1. コンパイルエラーとは?

1. コンパイルエラーとは?
1. コンパイルエラーとは?

COBOLのプログラムを書くときに、文法のミスや書き方のルールに反していると、コンパイル(プログラムを実行可能な形に変換する処理)の段階でエラー(間違い)が発生します。

このとき、プログラムは実行されず、まずは間違いを直さないと先に進めません。このようなエラーをコンパイルエラーと呼びます。

たとえば、人間でいうと、文法が崩れていて「ワタシ、行く、あした、お店、たぶん」みたいな文章を書いてしまうと、意味がわかりにくいですよね。コンピュータも同じで、「どこがどうおかしいのか」がわからないと動いてくれません。

2. コンパイルエラーの原因と対処法

2. コンパイルエラーの原因と対処法
2. コンパイルエラーの原因と対処法

COBOLの初心者がよくつまずくコンパイルエラーの原因を例とともに解説します。

2-1. 予約語(キーワード)のスペルミス

COBOLでは、DISPLAYSTOP RUNなど、あらかじめ決められた予約語を正しく使わないとエラーになります。


DISPALY "こんにちは、世界!"
STOP RUN.

上の例では、DISPALYと書いてしまっているため、正しくは以下のように修正します。


DISPLAY "こんにちは、世界!"
STOP RUN.

2-2. セクションや段落の書き忘れ

COBOLのプログラムは、IDENTIFICATION DIVISIONENVIRONMENT DIVISIONDATA DIVISIONPROCEDURE DIVISIONなど、決まった構造で書かないといけません。

たとえばPROCEDURE DIVISIONが抜けていると、次のようなエラーが発生します。


IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
DISPLAY "こんにちは".
STOP RUN.

正しくはこのようにPROCEDURE DIVISION.を必ず書きます。


IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY "こんにちは".
STOP RUN.

2-3. ピリオド(.)の付け忘れ

COBOLでは文の終わりに.(ピリオド)をつける決まりがあります。忘れると文が終わらないと判断され、次の行も1つの文として見なされてしまいます。

次の例では、ピリオドがないためにエラーになります。


DISPLAY "おはよう"
STOP RUN.

正しい形はこちらです。


DISPLAY "おはよう".
STOP RUN.

2-4. 変数の定義ミスや未定義の使用

COBOLではDATA DIVISIONで変数(データ)を定義してから使う必要があります。定義していない変数を使うとエラーになります。

以下は、変数NAMEを使っているのに定義されていない例です。


PROCEDURE DIVISION.
DISPLAY NAME.
STOP RUN.

正しくは、WORKING-STORAGE SECTIONで変数NAMEを定義しておく必要があります。


DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAME PIC X(10) VALUE "結衣".
PROCEDURE DIVISION.
DISPLAY NAME.
STOP RUN.

2-5. 行頭の桁(カラム位置)のミス

COBOLは、古い言語のため桁位置(カラム)が決められています。たとえば、AB列は注釈、811列から文を書くなどのルールがあり、それを守らないとエラーになります。

最近ではフリー・フォーマットが使える環境もありますが、昔ながらのルールを守る必要がある場合は特に注意が必要です。

3. エラーの読み方とヒントの探し方

3. エラーの読み方とヒントの探し方
3. エラーの読み方とヒントの探し方

コンパイル時には、エラーメッセージが表示されます。たとえば次のような出力になります。


    IGYPS2121-S "DISPLAY" 文が不完全です。ピリオドが必要です。

このような場合は、メッセージの中に書かれている単語(例:「ピリオド」)に注目して、何を直せばいいかを考えるのがポイントです。

また、エラーの行番号も表示されることが多いので、その行を中心に見直しましょう。

4. コンパイルエラーを防ぐための習慣

4. コンパイルエラーを防ぐための習慣
4. コンパイルエラーを防ぐための習慣
  • コードを一行書くごとに確認する
  • 文の終わりにピリオドを忘れない
  • 構造(DIVISIONの順序)を守る
  • 変数は使う前に必ず定義する
  • スペルミスをしないようにゆっくり入力する

初心者のうちは、少しずつ丁寧に書いていくことでエラーを減らすことができます。

まとめ

まとめ
まとめ

COBOLのコンパイルエラーは、初心者にとってつまずきやすいポイントですが、原因と対処法を理解していれば落ち着いて対応できます。特に、予約語のスペルミスやピリオドの付け忘れ、変数の未定義、セクションの記述漏れなどは頻出のエラーです。また、COBOL特有のカラム位置のルールも、古い言語ゆえに注意が必要な点でした。

実際に表示されるエラーメッセージを読み解くことも大切です。意味のあるキーワードや行番号に注目することで、エラー修正の手がかりを得ることができます。これらの知識を身につけることで、COBOL開発におけるトラブル対応力を高めることができるでしょう。

以下に、典型的なエラーを避けた正しいCOBOLプログラムの一例を示します。


       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE-PROGRAM.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 MESSAGE PIC X(20) VALUE "コンパイル成功!".

       PROCEDURE DIVISION.
           DISPLAY MESSAGE.
           STOP RUN.

このように、DIVISIONの順序、変数の定義、文末のピリオド、スペルの正確性など、基本を丁寧に守ることが大切です。エラーが発生した際には、焦らず一行ずつ確認する習慣を身につけましょう。

COBOLは金融や保険などの業界でも現役で使われている言語です。そのため、確実なコーディングと正しいエラー処理が非常に求められます。エラーを恐れず、確実に原因を読み取り、冷静に対処する力を磨いていきましょう。

最後に、エラーを防ぐための心がけとして、次の点を習慣づけると良いでしょう。

  • コードを入力する際には、予約語を正しくタイピングする
  • PROCEDURE DIVISIONなど、必要なセクションを必ず含める
  • 文の終わりにはピリオドを忘れずに
  • 変数は使う前にWORKING-STORAGE SECTIONで定義する
  • エラーのメッセージを読む習慣をつける

こうした基本的なポイントを押さえることで、エラーに強いCOBOLプログラマへと成長できます。

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

生徒

「先生、今日の記事を読んで、コンパイルエラーの原因がすごく分かるようになりました!」

先生

「よかったですね。特にどのエラーが印象に残りましたか?」

生徒

「スペルミスとピリオドの付け忘れです。自分でもよくやっちゃうので…」

先生

「それは初心者にとってありがちなミスです。今後はエラーメッセージをしっかり読んで対処できますね」

生徒

「はい!ちゃんと行番号やキーワードをチェックして、冷静に直せるようにします」

先生

「素晴らしい心がけですね。COBOLは基本を丁寧に守ることで、安定したプログラムが書けますよ」

生徒

「この記事を読んで、COBOLに少し自信が持てました!」

先生

「その調子で、次は実際にエラーの出るコードを自分で直してみましょうね」

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

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

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

COBOLのコンパイルエラーとは何ですか?

COBOLのコンパイルエラーとは、プログラムを書いたときに文法ミスやルール違反があると、コンパイルの段階でエラーが出て実行できなくなることを指します。文法に従っていないと、コンピュータが正しく理解できずに止まってしまいます。
カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.4
Java&Spring記事人気No4
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方