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

COBOLのOPEN文(INPUT・OUTPUT・EXTEND)をやさしく解説!初心者でもわかるファイル操作

OPEN文(INPUT・OUTPUT・EXTEND)の使い分け
OPEN文(INPUT・OUTPUT・EXTEND)の使い分け

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

生徒

「COBOLでファイルを開くにはどうしたらいいんですか?」

先生

「それには、OPEN文を使います。INPUTOUTPUTEXTENDの3つの使い方がありますよ。」

生徒

「3つもあるんですか?それぞれ何が違うんですか?」

先生

「順を追って、わかりやすく説明しますね!」

1. OPEN文とは?

1. OPEN文とは?
1. OPEN文とは?

OPEN文は、ファイルを読み込む書き込む、または追記するために使う命令です。COBOLでは、必ずファイルを使う前にOPENで「開く」必要があります。

例えると、本を読むときに「本を開く」必要があるように、ファイルも開いてから読み書きします。

2. INPUT:読み取り専用でファイルを開く

2. INPUT:読み取り専用でファイルを開く
2. INPUT:読み取り専用でファイルを開く

OPEN INPUTは、ファイルを読むために開きます。プログラムは書き込みできず、存在するデータを順番に読み取るだけです。

レシートの履歴を読んで画面に表示したり、データを集計したりする時に使います。


OPEN INPUT IN-FILE

3. OUTPUT:書き込み専用でファイルを開く

3. OUTPUT:書き込み専用でファイルを開く
3. OUTPUT:書き込み専用でファイルを開く

OPEN OUTPUTは、ファイルを新規に作成して書き込むときに使います。既に同じ名前のファイルがあると、中身がまるごと消されて新しくなります。

新しい報告書やログファイルを作るときに使います。


OPEN OUTPUT OUT-FILE

4. EXTEND:末尾に追記するときに開く

4. EXTEND:末尾に追記するときに開く
4. EXTEND:末尾に追記するときに開く

OPEN EXTENDは、既存のファイルの最後の位置に追記(append)するときに使います。古いデータを消さず、新しいデータをつなげて追加できます。

例えば、日々のログ記録や売上れきの追加にぴったりです。


OPEN EXTEND LOG-FILE

5. INPUT・OUTPUT・EXTENDの違いを図で考えると

5. INPUT・OUTPUT・EXTENDの違いを図で考えると
5. INPUT・OUTPUT・EXTENDの違いを図で考えると

本に例えると次のようなイメージで覚えられます:

  • OPEN INPUT:本を読む(読むだけ)→ 既存の情報確認
  • OPEN OUTPUT:古い本を破棄して新しい本をつくる(書き込む)
  • OPEN EXTEND:古い本の最後のページに新しいページを追加する(追記)

6. サンプルコードで比べてみよう

6. サンプルコードで比べてみよう
6. サンプルコードで比べてみよう

実際に3つの使い方をまとめたサンプルをご紹介します。


IDENTIFICATION DIVISION.
PROGRAM-ID. OPEN-SAMPLE.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT IN-FILE  ASSIGN TO "input.txt" ORGANIZATION IS LINE SEQUENTIAL.
    SELECT OUT-FILE ASSIGN TO "output.txt" ORGANIZATION IS LINE SEQUENTIAL.
    SELECT LOG-FILE ASSIGN TO "log.txt" ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-RECORD PIC X(50).
FD OUT-FILE.
01 OUT-RECORD PIC X(50).
FD LOG-FILE.
01 LOG-RECORD PIC X(50).

PROCEDURE DIVISION.
    OPEN INPUT  IN-FILE
    OPEN OUTPUT OUT-FILE
    OPEN EXTEND LOG-FILE
    * 以降、READ/WRITE/WRITE などの処理
    CLOSE IN-FILE OUT-FILE LOG-FILE
    STOP RUN.

7. OPEN文で気をつけるポイント

7. OPEN文で気をつけるポイント
7. OPEN文で気をつけるポイント
  • 使用用途に応じて正しいオープン方法を選ぶ(読取り・新規書き込み・追記)。
  • 書き込み先ファイルが消えないように注意(OUTPUTは既存ファイルを消去)。
  • 複数ファイルを開く場合は、全て忘れずにCLOSEする。
  • ファイルが存在しないときにOUTPUTやEXTENDはエラーになる場合があります。

8. よく使う用語まとめ

8. よく使う用語まとめ
8. よく使う用語まとめ
  • OPEN INPUT:ファイルを読む準備
  • OPEN OUTPUT:ファイルを新しく書き出す準備
  • OPEN EXTEND:ファイルに追記する準備
  • CLOSE:使い終わったファイルを閉じる

まとめ

まとめ
まとめ

COBOLでファイルを操作するには、まずOPEN文を使って対象ファイルを明示的に開く必要があります。この記事では、OPEN INPUTOPEN OUTPUTOPEN EXTENDの3つの使い方について詳しく学びました。OPEN INPUTは読み取り専用で、既存のファイルからデータを取り出すときに使います。OPEN OUTPUTは新しくファイルを作成する場合に使われ、既存の内容は破棄される点に注意が必要です。そしてOPEN EXTENDは、すでに存在するファイルの末尾にデータを追加するための命令で、ログ追記や追加入力に便利です。

各モードは目的によって使い分けることが非常に重要で、誤ったモードを使うとファイルを誤って消去してしまう恐れもあります。そのため、ファイルの役割や処理の流れをよく理解した上でOPEN文を記述することが、エラーのない安定したプログラム作成には欠かせません。また、すべてのOPEN処理が終わったらCLOSE文でファイルをきちんと閉じるという一連の流れも、COBOLにおいては基本かつ重要なルールです。

実際の業務では、ファイルの読取専用や書き込み専用、追記などの要件が明確に定まっていることが多いため、それに応じて適切なOPEN文を選ぶ力が求められます。以下のコードは3種類のOPEN文を使った実践的な書き方のまとめです。


IDENTIFICATION DIVISION.
PROGRAM-ID. OPEN-DEMO.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT IN-FILE  ASSIGN TO "in.txt" ORGANIZATION IS LINE SEQUENTIAL.
    SELECT OUT-FILE ASSIGN TO "out.txt" ORGANIZATION IS LINE SEQUENTIAL.
    SELECT LOG-FILE ASSIGN TO "log.txt" ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-DATA  PIC X(50).
FD OUT-FILE.
01 OUT-DATA PIC X(50).
FD LOG-FILE.
01 LOG-DATA PIC X(50).

PROCEDURE DIVISION.
    OPEN INPUT  IN-FILE
    OPEN OUTPUT OUT-FILE
    OPEN EXTEND LOG-FILE

    * 読み取り例
    READ IN-FILE INTO OUT-DATA
        AT END DISPLAY "ファイルの終わりです"
    END-READ

    * 書き込み例
    MOVE "新しいデータ" TO OUT-DATA
    WRITE OUT-DATA

    * 追記例
    MOVE "ログに追記します" TO LOG-DATA
    WRITE LOG-DATA

    CLOSE IN-FILE OUT-FILE LOG-FILE
    STOP RUN.

このように、ファイルの使用目的に合わせてOPENの種類をしっかり使い分けることで、COBOLプログラムの可読性と安全性が高まります。ファイル処理は業務システムにおいて欠かせない要素ですので、基本をしっかり押さえておくことが大切です。

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

生徒

「OPEN INPUT・OUTPUT・EXTENDの違い、最初はちょっとややこしかったけど、例え話とかサンプルコードでだいぶ理解できました!」

先生

「よかったです。ファイルをどう使いたいのかによって、どのOPENモードを使うべきかが変わってきますからね。」

生徒

「OUTPUTだとファイルが消える可能性があるって話、ちゃんと覚えておきます。大事なデータが飛んだら大変だし……」

先生

「その意識はとても大切ですね。特に業務プログラムではデータの消失が大きな損失につながりますから。」

生徒

「OPEN文のあとは必ずCLOSEっていうのも、きちんと習慣にしたいです。やっぱりプログラムも礼儀正しくしないと(笑)」

先生

「その心がけが一番大事です。次はWRITEやREADについて、さらに詳しく見ていきましょうか。」

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

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

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

COBOLのOPEN文とは何をする命令ですか?

COBOLのOPEN文は、ファイルを使う前に開くための命令で、読み取り(INPUT)、書き込み(OUTPUT)、追記(EXTEND)といった用途に応じて使い分けます。
カテゴリの一覧へ
新着記事
New1
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New2
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
New3
COBOL
COBOLの帳票出力を完全攻略!数値項目のカンマ・小数点編集例を徹底解説
New4
C#
C#の配列とListの違いを比較して理解しよう
人気記事
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#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.4
Java&Spring記事人気No4
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.8
Java&Spring記事人気No8
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法