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

COBOLのINSPECT文を完全ガイド!初心者でもわかるTALLYING・REPLACINGの使い方

INSPECT文の使い方:TALLYING・REPLACINGなど
INSPECT文の使い方:TALLYING・REPLACINGなど

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

生徒

「先生、COBOLで文字列の中にある特定の文字を数えたり、置き換えたりする方法ってありますか?」

先生

「いい質問ですね。COBOLにはINSPECT文というとても便利な命令があります。これを使えば文字列の操作が簡単にできますよ。」

生徒

「具体的にはどんなことができるんですか?」

先生

「例えば、文字列の中に『A』がいくつあるか数えることや、『-』をスペースに置き換えるといったことができます。それでは実際に見ていきましょう!」

1. INSPECT文とは?

1. INSPECT文とは?
1. INSPECT文とは?

COBOLのINSPECT文は、文字列を調べたり加工するための命令です。英語で「検査する」という意味があり、その名の通り文字列の中を調査して数えたり置換したりできます。

プログラミング未経験の方にわかりやすく説明すると、文章を読みながら、特定の文字を探す係のようなものです。例えば「バナナ」という文字列を渡すと、INSPECTが一文字ずつ確認して「Aが2個あります」と数えてくれます。

2. INSPECT TALLYINGで文字数を数える

2. INSPECT TALLYINGで文字数を数える
2. INSPECT TALLYINGで文字数を数える

TALLYINGは「数える」という意味です。文字列の中に含まれる特定の文字の数をカウントすることができます。


       IDENTIFICATION DIVISION.
       PROGRAM-ID. COUNT-EXAMPLE.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 TEXT       PIC X(20) VALUE "BANANA APPLE".
       01 COUNT-A    PIC 9(2) VALUE 0.
       PROCEDURE DIVISION.
           INSPECT TEXT TALLYING COUNT-A FOR ALL "A".
           DISPLAY "Aの数は " COUNT-A.
           STOP RUN.

Aの数は 4

この例では「BANANA APPLE」という文字列の中に「A」がいくつあるか数えています。結果は4となります。文字列処理の基本テクニックとしてよく使われる書き方です。

3. INSPECT REPLACINGで文字を置き換える

3. INSPECT REPLACINGで文字を置き換える
3. INSPECT REPLACINGで文字を置き換える

REPLACINGは「置き換える」という意味です。文字列の中の特定の文字を別の文字に変更できます。


       IDENTIFICATION DIVISION.
       PROGRAM-ID. REPLACE-EXAMPLE.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 TEXT       PIC X(20) VALUE "123-456-789".
       PROCEDURE DIVISION.
           INSPECT TEXT REPLACING ALL "-" BY " ".
           DISPLAY "置換後: " TEXT.
           STOP RUN.

置換後: 123 456 789

この例では、文字列の中のハイフン(-)をスペースに置き換えています。電話番号のようにハイフン付きの文字列を整形する時に便利です。

4. TALLYINGとREPLACINGを組み合わせて使う

4. TALLYINGとREPLACINGを組み合わせて使う
4. TALLYINGとREPLACINGを組み合わせて使う

TALLYINGREPLACINGは別々に使うこともできますが、同時に利用して、数えた後に置き換えるといった処理も可能です。


       IDENTIFICATION DIVISION.
       PROGRAM-ID. MIX-EXAMPLE.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 TEXT       PIC X(30) VALUE "HELLO-WORLD-COBOL".
       01 COUNT-HYPHEN PIC 9(2) VALUE 0.
       PROCEDURE DIVISION.
           INSPECT TEXT 
               TALLYING COUNT-HYPHEN FOR ALL "-"
               REPLACING ALL "-" BY " ".
           DISPLAY "ハイフンの数: " COUNT-HYPHEN.
           DISPLAY "置換後: " TEXT.
           STOP RUN.

ハイフンの数: 2
置換後: HELLO WORLD COBOL

このプログラムでは、まずハイフンの数を数え、その後すべてスペースに置き換えています。文字列処理を効率よく行いたい時にとても役立つ方法です。

5. 初心者がつまずきやすいポイント

5. 初心者がつまずきやすいポイント
5. 初心者がつまずきやすいポイント
  • 大文字と小文字の区別:COBOLのINSPECTは大文字小文字を区別します。例えば「A」と「a」は別の文字と認識されます。
  • 全角と半角の違い:日本語の文字列を扱うときは全角と半角が区別されるため注意が必要です。
  • 文字列の長さPIC X(20)などで文字列の長さを決めています。指定より長い文字列を入れると切り捨てられます。

これらの基本を理解しておくと、COBOLの文字列操作をスムーズに行うことができます。

6. 実務での活用例

6. 実務での活用例
6. 実務での活用例

銀行や保険などのシステムでは、COBOLのINSPECT文を使って以下のような処理が行われています。

  • 入力された顧客データに禁止文字が含まれていないかチェックする
  • マイナンバーや電話番号のフォーマットを整える
  • 文字列の中から特定の記号や空白を取り除く

このように、文字列を検査・整形する処理は業務システムで頻繁に使われる重要な技術です。

まとめ

まとめ
まとめ

INSPECT文で身につく文字列操作の基本と考え方

この記事では、COBOLのINSPECT文について、TALLYINGとREPLACINGを中心に詳しく見てきました。 INSPECT文は、文字列を一文字ずつ確認しながら処理を行う命令であり、文字を数える、特定の文字を置き換えるといった操作を、 とても簡潔な記述で実現できるのが大きな特徴です。 プログラミング未経験者の方でも、「文章を目で追いながらチェックする作業」をイメージすると理解しやすく、 COBOLらしい分かりやすさを感じられる命令だと言えるでしょう。

TALLYINGは、文字列の中に含まれる特定の文字や記号を数えるために使われます。 入力データのチェックや、帳票出力前の事前確認など、実務の現場では数を把握する処理が頻繁に登場します。 そのような場面でINSPECT TALLYINGを使えば、複雑なループ処理を書かなくても、 短いコードで正確なカウント処理を行うことができます。 これは、COBOLが業務システム向けに発展してきた言語であることを強く感じさせるポイントです。

一方、REPLACINGは、文字列を加工したいときに非常に役立ちます。 ハイフンや記号をスペースに変換したり、不要な文字を別の文字に置き換えたりする処理は、 データを「人が読みやすい形」に整えるために欠かせません。 INSPECT REPLACINGを使うことで、元の文字列をまとめて書き換えることができ、 電話番号やコード値、入力データの整形など、さまざまな場面で活用できます。

また、TALLYINGとREPLACINGを同時に使える点もINSPECT文の大きな魅力です。 文字を数えながら置き換えることで、「どれだけ修正が行われたのか」を把握しつつ、 データを整形することができます。 このような処理は、業務プログラムの品質を保つうえで非常に重要であり、 単なる文字操作以上の価値を持っています。 INSPECT文を理解することは、COBOLによる文字列処理全体の理解につながります。

INSPECT文の動きを確認するまとめ用サンプル


       IDENTIFICATION DIVISION.
       PROGRAM-ID. INSPECT-SUMMARY.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 TEXT-DATA     PIC X(30) VALUE "COBOL-INSPECT-TEST".
       01 COUNT-HYPHEN  PIC 9(2) VALUE 0.
       PROCEDURE DIVISION.
           INSPECT TEXT-DATA
               TALLYING COUNT-HYPHEN FOR ALL "-"
               REPLACING ALL "-" BY " ".
           DISPLAY "記号の数:" COUNT-HYPHEN.
           DISPLAY "変換後:" TEXT-DATA.
           STOP RUN.

記号の数:2
変換後:COBOL INSPECT TEST

このサンプルでは、INSPECT文を使ってハイフンの数を数え、その後すべてスペースに置き換えています。 短いコードで「確認」と「加工」を同時に行えている点に注目してください。 このような処理を自然に書けるようになると、COBOLによる文字列操作への理解が一段と深まります。

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

生徒:「INSPECT文って、文字を調べるだけじゃなくて、数えたり直したりもできるんですね。」

先生:「そうですね。特に業務システムでは、文字列のチェックと整形がとても重要になります。」

生徒:「TALLYINGで数を把握できるのは安心感があります。」

先生:「何件修正したのかが分かるので、データの信頼性を確認しやすくなります。」

生徒:「REPLACINGを使えば、見やすい形に整えられるのも便利ですね。」

先生:「その通りです。INSPECT文は、COBOLの文字列処理を支える大切な命令です。」

生徒:「まずは簡単な文字列で、INSPECT文をたくさん試してみます。」

先生:「それが一番の近道です。慣れてくると、実務での使いどころも見えてきますよ。」

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