カテゴリ: COBOL 更新日: 2025/12/22

COBOLのレベル番号とは?01〜77の役割と変数宣言を初心者向けに解説!

レベル番号(01〜77)の役割と変数宣言の例
レベル番号(01〜77)の役割と変数宣言の例

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

生徒

「COBOLで変数を使うとき、'01'とか'77'とかの数字がついているのを見たんですけど、これは何ですか?」

先生

「良いところに気づきましたね。これは『レベル番号』と呼ばれるもので、COBOLでは変数やデータの構造を表すために使います。」

生徒

「どんな風に使われるんですか?難しそうでよくわかりません…」

先生

「それでは、COBOLのレベル番号の役割と、変数の書き方について、やさしく解説していきましょう!」

1. レベル番号とは?COBOLで変数を定義するための重要な数字

1. レベル番号とは?COBOLで変数を定義するための重要な数字
1. レベル番号とは?COBOLで変数を定義するための重要な数字

COBOL(コボル)では、変数を定義するときに「レベル番号(レベルばんごう)」という数字を使います。これは、データの「構造(かたち)」や「階層(かいそう)」を表すものです。レベル番号は、主に 01 から 49、そして 7766 などが使われます。

プログラミング初心者の方は、「レベルって何?構造ってどういうこと?」と戸惑うかもしれませんね。ここでは、難しい専門用語を使わず、やさしく説明していきます。

2. レベル番号の使い方をイメージで理解しよう!

2. レベル番号の使い方をイメージで理解しよう!
2. レベル番号の使い方をイメージで理解しよう!

レベル番号は、タンスの引き出しのように考えるとわかりやすいです。

  • 01レベル:タンス本体(データの最上位)
  • 05・10レベル:タンスの引き出し(中の項目)
  • 77レベル:引き出しではなく、単独で使う小物入れのような変数

このように、レベル番号はデータをまとめるための箱のような役割を持っています。

3. 01レベルとその中の項目:グループ項目を作ろう

3. 01レベルとその中の項目:グループ項目を作ろう
3. 01レベルとその中の項目:グループ項目を作ろう

01レベルは、グループ項目(まとめて扱うデータ)を定義するために使います。中に入れる個別の項目は、05や10などのレベル番号を使って記述します。

例として、名前や年齢、住所をまとめたデータ構造を見てみましょう。


DATA DIVISION.
WORKING-STORAGE SECTION.

01 PERSONAL-DATA.
    05 NAME        PIC X(20).
    05 AGE         PIC 9(3).
    05 ADDRESS     PIC X(50).

ここでのポイント:

  • 01 PERSONAL-DATAは、グループ全体の名前
  • 05は、グループの中の「子ども」のような項目
  • PIC(ピクチャ)は、データの型(形)を表します

4. 77レベルとは?単独の変数を宣言したいときに使おう

4. 77レベルとは?単独の変数を宣言したいときに使おう
4. 77レベルとは?単独の変数を宣言したいときに使おう

77レベルは、グループ構造を使わずに、単独で変数を定義するためのものです。

こちらは、簡単な変数をひとつだけ用意したいときに使います。


DATA DIVISION.
WORKING-STORAGE SECTION.

77 TOTAL-AMOUNT     PIC 9(5)V99.
77 CUSTOMER-NAME    PIC X(30).

このように、77レベルは他の変数と入れ子(ネスト)にならないので、シンプルなデータ管理に便利です。

5. 実際にDISPLAY文で変数を使ってみよう

5. 実際にDISPLAY文で変数を使ってみよう
5. 実際にDISPLAY文で変数を使ってみよう

それでは、実際に変数を定義して、DISPLAY文で画面に表示してみましょう。


IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE-LEVELS.

DATA DIVISION.
WORKING-STORAGE SECTION.

01 PERSONAL-INFO.
    05 FULL-NAME    PIC X(20) VALUE "山田 太郎".
    05 AGE          PIC 9(2)  VALUE 28.

77 COUNTRY          PIC X(10) VALUE "日本".

PROCEDURE DIVISION.

    DISPLAY "名前: " FULL-NAME
    DISPLAY "年齢: " AGE
    DISPLAY "国籍: " COUNTRY

    STOP RUN.

実行結果:


名前: 山田 太郎
年齢: 28
国籍: 日本

6. レベル番号の一覧と使い分けをまとめて覚えよう

6. レベル番号の一覧と使い分けをまとめて覚えよう
6. レベル番号の一覧と使い分けをまとめて覚えよう

COBOLでよく使うレベル番号と、その用途を以下にまとめます。

  • 01:グループの先頭。大きな箱。
  • 02〜49:01の中に入る小さな箱(入れ子構造が可能)。
  • 66:リネーム項目(別名をつけたいとき)。※初心者は今は使わなくてOK
  • 77:単独で使うシンプルな変数。
  • 88:条件名を定義するときに使う特殊なレベル。※別記事で解説予定

最初は 01 と 77 を覚えれば十分です!

7. プログラミング初心者がレベル番号を学ぶときのポイント

7. プログラミング初心者がレベル番号を学ぶときのポイント
7. プログラミング初心者がレベル番号を学ぶときのポイント

初心者がCOBOLを学ぶとき、いきなり多くのレベル番号を覚えようとせず、まずは基本の構造を理解しましょう。

  • 01レベルは「データのまとまり」を作るときに使う
  • 77レベルは「単独で変数」を定義するときに使う
  • 05、10などは、01レベルの中に入れる「項目の部品」

紙に書いて図にすると、データの入れ子構造が見えてきますよ。

8. レベル番号を使った変数宣言を身につけよう!

8. レベル番号を使った変数宣言を身につけよう!
8. レベル番号を使った変数宣言を身につけよう!

COBOLでは、データの構造をはっきりさせてプログラムを書くのが特徴です。レベル番号はそのための「目印(めじるし)」のようなものです。

しっかりと変数を宣言しておくと、後の計算処理やデータ出力もスムーズになります。まずは、01レベルと77レベルを使い分けて、自分で変数宣言ができるようになりましょう。

まとめ

まとめ
まとめ

COBOLのレベル番号について学ぶことは、変数の定義方法を理解するうえで非常に重要です。特に、初心者がつまずきやすいのが「01」や「77」といったレベル番号の意味と役割ですが、これはデータの構造やまとまりを表現するためのルールであり、プログラムの見通しを良くするために設けられています。グループ項目を定義したいときには「01レベル」を使い、その中に構成される項目には「05」や「10」などのレベルを使用します。一方、「77レベル」は入れ子構造を持たない単独のデータ項目を定義するときに使います。

実際の業務では、住所や氏名、年齢などの情報をグループとしてまとめて扱いたい場面が多くあります。そのようなときに「01」+「05」構造を使うことで、データが整理され、保守性の高いプログラムになります。また、「77レベル」は合計金額や顧客番号など、単体で意味を持つ情報に使うことで、スッキリとしたコード設計ができます。

ここでは、01レベルと77レベルを使った応用例を紹介します。複数人の情報を持つグループと、共通のフラグ変数を同時に扱う構成です。

サンプル:レベル番号の実践例


IDENTIFICATION DIVISION.
PROGRAM-ID. LEVEL-EXAMPLE.

DATA DIVISION.
WORKING-STORAGE SECTION.

01 EMPLOYEE-DATA.
    05 EMP-NAME       PIC X(20) VALUE "佐藤 花子".
    05 EMP-AGE        PIC 9(2)  VALUE 34.
    05 EMP-DEPT       PIC X(10) VALUE "営業部".

77 IS-REGISTERED     PIC X VALUE "Y".

PROCEDURE DIVISION.
    DISPLAY "社員情報を表示します。"
    DISPLAY "名前:" EMP-NAME
    DISPLAY "年齢:" EMP-AGE
    DISPLAY "所属:" EMP-DEPT
    DISPLAY "登録状態:" IS-REGISTERED

    STOP RUN.

この例では、「01 EMPLOYEE-DATA」は社員情報をまとめたグループであり、「77 IS-REGISTERED」は登録状態を管理するフラグとして機能します。このようにレベル番号を適切に使い分けることで、COBOLプログラムの構造がはっきりし、処理の流れも読みやすくなります。

さらに重要なのは、COBOLでは変数名とレベル番号が合わさって、プログラム全体の可読性や保守性を左右するという点です。特にチームで開発する場合や、大規模な業務システムを組む場合には、グループ項目の構造がしっかりしていることが、後からの修正や拡張に大きく役立ちます。

レベル番号の知識は、単なる数字の意味を超えて、「どのようにデータを分類・管理するか」というCOBOLらしい設計思想に直結しています。01レベルを使ってグループ化することで関連データをまとめて処理できますし、77レベルで必要なデータだけを独立して扱うこともできます。これらを意識して使い分けることが、COBOLプログラムの質を高める第一歩です。

今後もし88レベルや66レベルといった、さらに発展的なレベル番号に触れる機会があっても、まずはこの「01」と「77」をしっかり押さえておくことで、基礎がぐらつくことはありません。

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

生徒

「今日の記事で、COBOLのレベル番号のことがだいぶわかってきました!」

先生

「よかったです。最初は数字にしか見えないけれど、実はデータの構造を表す大切な役割があるんですよ。」

生徒

「01でグループ、77で単独っていうルールを覚えておくと、変数の書き方も迷わなくなりますね。」

先生

「その通りです。慣れてくると自然に、どのレベル番号を使うかがわかってきますよ。」

生徒

「今度は88レベルとか、もっと応用的な使い方にも挑戦してみたいです!」

先生

「いいですね。まずは基本をしっかり押さえた上で、少しずつ知識を広げていきましょう。次の記事も楽しみにしていてくださいね。」

カテゴリの一覧へ
新着記事
New1
C#
C#のLINQでAny・Allなど条件確認メソッドの使い方を完全ガイド!初心者でもわかるデータ検証
New2
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New3
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New4
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.7
Java&Spring記事人気No7
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法
No.8
Java&Spring記事人気No8
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!