【COBOL】コメントの書き方完全ガイド|7桁目*・インライン*>・デバッグ行D・カラム構造・実践パターン

COBOLのコメント記法は「7桁目に*を書く」だけではありません。インラインコメント(*>)・デバッグ行(D)・ページ区切り(/)・IDENTIFICATION DIVISIONの文書化エントリ・自由形式のコメントスタイルと、固定形式のカラム構造を理解することが前提になります。

この記事ではCOBOLのコメント方法を網羅的に解説し、実際の業務コードで使われるヘッダーコメント・変更履歴・セクション区切りの実践パターンまで紹介します。

この記事でわかること

  • COBOLの固定形式カラム構造(7桁目インジケータの役割)
  • コメント行(7桁目*)とインラインコメント(*>)の違い
  • ページ区切り(7桁目/)とデバッグ行(7桁目D
  • IDENTIFICATION DIVISIONの文書化エントリ(AUTHOR・DATE-WRITTEN等)
  • 自由形式(FREE FORMAT)でのコメントの書き方
  • プログラムヘッダー・変更履歴・セクション区切りの実践コメントパターン
スポンサーリンク

COBOLの固定形式とカラム構造

COBOLのコメント記法を理解するには、まず固定形式のカラム構造を知る必要があります。COBOLの1行は最大80桁で、各桁の役割が厳密に決まっています。

桁範囲 領域名 用途
1〜6桁目 順序番号領域(シーケンス領域) 行番号やリビジョン番号を入れる。コンパイラは無視する。空白でも可
7桁目 インジケータ領域 *=コメント行, /=ページ区切り, D=デバッグ行, -=継続行, 空白=通常行
8〜11桁目 Aエリア DIVISIONやSECTIONの見出し・FD・01レベル・段落名を書く位置
12〜72桁目 Bエリア PROCEDURE DIVISIONの命令文・02〜49レベルのデータ定義を書く位置
73〜80桁目 識別領域(プログラム識別領域) コンパイラが完全に無視する。旧来のプログラムIDや管理番号の記入欄として使われた
カラム構造の視覚的な説明
*  1234567890123456789012345678901234567890...72  73..80
*  |seq# |I|  A  |             B             |  |ID area|
*  |----||*|      ← 7桁目が * でコメント行
       * このコメントは7桁目がスペース、8桁目が * のためコメントにならない(文法エラー)
*      ← これが正しいコメント行(7桁目に*)

       MOVE WS-DATA TO WS-RESULT  *> これはインラインコメント(*>以降がコメント)
「8桁目に*を書いてもコメントにはならない」
7桁目に*を書く必要があります。エディタによっては行頭から数えて8文字目が7桁目に見える場合があります(1始まりか0始まりかで混乱しやすい)。ソース上で行頭から7文字目のスペースが「7桁目インジケータ」の位置です。Emacs・Eclipse・VS Codeなどの専用COBOLプラグインではカラム位置がハイライトされます。

コメント行(7桁目アスタリスク)

COBOLの最も基本的なコメント記法です。7桁目(インジケータ領域)に*を書くと、その行全体がコメント行になります。8〜72桁目の内容はすべてコメントとして扱われ、コンパイラに無視されます。

コメント行の基本
      * ======================================
      * プログラム名: SALARY-CALC
      * 機    能  : 給与計算処理
      * 作  成  者 : 山田 太郎
      * 作  成  日 : 2026-04-14
      * ======================================
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SALARY-CALC.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
      * --- 給与計算用ワーク変数 ---
       01 WS-BASE-SALARY    PIC 9(7)V99.    *> 基本給
       01 WS-ALLOWANCE      PIC 9(6)V99.    *> 各種手当合計
       01 WS-DEDUCTION      PIC 9(6)V99.    *> 控除合計
       01 WS-NET-PAY        PIC 9(7)V99.    *> 手取り金額

       PROCEDURE DIVISION.
      *---------------------------------------
      * 給与計算メイン処理
      *---------------------------------------
           PERFORM READ-INPUT-DATA
           PERFORM CALC-DEDUCTION
           PERFORM CALC-NET-PAY
           STOP RUN.
項目 説明
コメント行として有効な書き方 7桁目(インジケータ)に*を書く。8〜72桁目が自由なコメントテキスト
コメント行として無効な書き方 8桁目以降に*を書いた場合は文法エラー(または意図しないコードとして解釈される)
コメント行に書ける文字 英数字・日本語(Shift-JIS/EBCDICの漢字対応環境)・記号すべて使用可能
コメント行と空白行の違い 空白行(何も書かない行)もコンパイラに無視されるが、可読性のためコメント行と使い分ける

インラインコメント(*>)

COBOL 2002以降の標準規格で導入されたインラインコメント記法です。行の途中に*>を書くと、*>以降から行末までがコメントになります。

インラインコメントの使い方
       PROCEDURE DIVISION.
           MOVE 0 TO WS-ERROR-COUNT     *> エラー件数の初期化
           OPEN INPUT  TRANSACTION-FILE *> 入力ファイルオープン
           OPEN OUTPUT RESULT-FILE      *> 出力ファイルオープン

           READ TRANSACTION-FILE INTO WS-INPUT-REC  *> プライミングリード
               AT END MOVE 'Y' TO WS-EOF-FLAG
           END-READ

           PERFORM UNTIL WS-EOF        *> EOF まで繰り返し
               PERFORM PROCESS-RECORD
               READ TRANSACTION-FILE INTO WS-INPUT-REC
                   AT END MOVE 'Y' TO WS-EOF-FLAG
               END-READ
           END-PERFORM

           CLOSE TRANSACTION-FILE      *> ファイルクローズ
           CLOSE RESULT-FILE
           STOP RUN.
項目 内容 補足
記法 *>以降から行末まで コードの後ろに説明を添えたいとき
使えるCOBOLバージョン COBOL 2002(ISO/IEC 1989:2002)以降 旧コンパイラ(COBOL 74/85)では使えない
固定形式での制限 インジケータ領域(7桁目)より後に書く必要がある 7桁目に*>と書いた場合はコメント行になる(*>ではなく*として扱われる)
自由形式での制限 行のどこにでも書ける 固定形式と同じ動作
*>はCOBOL 2002以降の機能です
IBM z/OS COBOLは比較的古いバージョンでもインラインコメントをサポートしていますが、一部の古いコンパイラではエラーになります。保守対象のシステムがどのCOBOLバージョンで動作しているかを確認してから使いましょう。GnuCOBOL(旧OpenCOBOL)やMicro Focus COBOLではいずれもサポートされています。

ページ区切り(7桁目スラッシュ)

7桁目に/(スラッシュ)を書くとコンパイラリスティングにページ区切りが挿入されます。コメントではありませんが、コードの区切りとして使われる記法です。

ページ区切りの使い方
       IDENTIFICATION DIVISION.
       PROGRAM-ID. BATCH-PGM.

      / ← このスラッシュでリスティングに改ページが入る

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

      / ← 各DIVISIONの区切りにも使える

       DATA DIVISION.
       WORKING-STORAGE SECTION.

      / 以下はファイル定義
       FILE SECTION.
       FD  INPUT-FILE.
項目 説明
7桁目/ コンパイラのリスティング(印刷時)に改ページを挿入する
コメントとしての機能 コメント行(*)と同様に実行時の動作には影響しない。ただし厳密にはコメントではない
現代での使い方 プリンタ出力が主流だった時代の名残。現代ではLST/PRINTリスティングより画面/IDEで確認するため、使用頻度は低下
コンパイラ依存 一部のコンパイラでは動作しない場合がある。IBM JCLのSYSPRINT出力では有効

デバッグ行(7桁目 D)

7桁目にDを書いた行はデバッグ行です。通常はコメント行と同様に無視されますが、WITH DEBUGGING MODEをENVIRONMENT DIVISIONで指定するとコンパイルされ実行されます。

デバッグ行の有効化と使い方
      * WITH DEBUGGING MODEを指定するとDの行がアクティブになる
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. IBM-Z WITH DEBUGGING MODE.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-COUNTER    PIC 9(5) VALUE 0.
       01 WS-AMOUNT     PIC 9(9)V99.

       PROCEDURE DIVISION.
           PERFORM VARYING WS-COUNTER FROM 1 BY 1
               UNTIL WS-COUNTER > 100

      D        DISPLAY 'LOOP COUNT: ' WS-COUNTER
      D        DISPLAY 'AMOUNT   : ' WS-AMOUNT

               PERFORM CALC-AMOUNT

           END-PERFORM

      * WITH DEBUGGING MODEが指定されていない場合、D行はスキップされる
           DISPLAY '処理完了'
           STOP RUN.
状態 条件 動作
デバッグ行 無効時(通常) WITH DEBUGGING MODEなし Dの行はコメント行と同様に無視される(実行されない)
デバッグ行 有効時 SOURCE-COMPUTER. xxx WITH DEBUGGING MODE. Dの行がコンパイルされ、通常のコードとして実行される
現代での評価 COBOL 2002でデバッグ行は非推奨(deprecated)扱い 新規コーディングでは*>インラインコメントか、専用デバッグロジック(88レベル+DISPLAY)を使う方が推奨
デバッグ行の削除忘れに注意
テスト環境でWITH DEBUGGING MODEを使っていたソースを本番環境に移す際に、SOURCE-COMPUTERの記述を削除するのを忘れると、デバッグ出力がDISPLAYで大量に表示されてしまいます。また、COBOL 2002以降の標準ではデバッグ行は非推奨とされているため、新規プログラムでのD行の使用は避けることを推奨します。

IDENTIFICATION DIVISIONの文書化エントリ

COBOLのIDENTIFICATION DIVISIONには、プログラムの文書情報を記述するための専用エントリがあります。これらはコンパイラに無視されますが、プログラムのメタデータとして重要です。

IDENTIFICATION DIVISIONの文書化エントリ一覧
       IDENTIFICATION DIVISION.
       PROGRAM-ID.  PAYROLL-CALC.      *> プログラム名(必須)

      * --- 以下の文書化エントリはコンパイラに無視される ---
       AUTHOR.
           YAMADA TARO.               *> 作成者名

       INSTALLATION.
           FINANCE DEPT TOKYO.        *> 所属部門・インストール先

       DATE-WRITTEN.
           2026-04-14.                *> 作成日

       DATE-COMPILED.
           2026-04-14.                *> コンパイル日(コンパイラが自動更新する場合あり)

       SECURITY.
           CONFIDENTIAL.              *> セキュリティ分類(社外秘など)

      * REMARKSは一部のCOBOL方言でサポート(標準外)
      * REMARKS.
      *     給与計算バッチ。月次締め処理用。
エントリ 必須/任意 標準対応 用途
PROGRAM-ID 必須 標準 プログラム名を定義。サブプログラムとして呼ばれるときの識別子になる
AUTHOR 任意(非推奨) COBOL 85まで。COBOL 2002で廃止 作成者名を記述
INSTALLATION 任意(非推奨) COBOL 85まで。COBOL 2002で廃止 所属・インストール先を記述
DATE-WRITTEN 任意(非推奨) COBOL 85まで。COBOL 2002で廃止 作成日を記述
DATE-COMPILED 任意(非推奨) COBOL 85まで。COBOL 2002で廃止 コンパイル日を記述。コンパイラが自動更新する場合がある
SECURITY 任意(非推奨) COBOL 85まで。COBOL 2002で廃止 セキュリティ分類を記述
文書化エントリはCOBOL 2002で廃止されたが業務コードでは健在
AUTHOR・DATE-WRITTEN等の文書化エントリはCOBOL 2002でオプショナルから非推奨・廃止に変わりました。しかし実際の業務COBOLプログラム(特に金融・官公庁・製造業の大規模システム)では、これらのエントリが今も広く使われています。IBM z/OS COBOLなど多くのコンパイラは後方互換として引き続きサポートしています。メンテナンス時は既存の記述スタイルに合わせるのが安全です。

自由形式(FREE FORMAT)でのコメント

COBOL 2002以降では>>SOURCE FORMAT FREE指示子で自由形式に切り替えられます。自由形式では固定カラム構造がなくなり、コメントの書き方も変わります。

自由形式のコメント記法
>>SOURCE FORMAT FREE
*> 自由形式では *> がインラインコメント(行の先頭でも使える)
*> 固定形式の7桁目 * は使えない(文法エラーになる)

IDENTIFICATION DIVISION.
PROGRAM-ID. FREE-FORMAT-SAMPLE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-COUNTER PIC 9(5). *> 自由形式では行末コメントもOK

PROCEDURE DIVISION.
*> 自由形式の場合、*> が唯一のコメント記法
    MOVE 0 TO WS-COUNTER
    PERFORM UNTIL WS-COUNTER >= 100 *> 100回ループ
        ADD 1 TO WS-COUNTER
    END-PERFORM
    STOP RUN.

>>SOURCE FORMAT FIXED
*  固定形式に戻した後は7桁目 * が使える
形式 行コメント インラインコメント 使われる場面
固定形式(FIXED) *(7桁目) *>(行の途中から) 伝統的なCOBOL。ほとんどの業務システム
自由形式(FREE) 使用不可(エラー) *>のみ(行頭でも可) COBOL 2002+。新規開発や近代的な環境
自由形式と固定形式の混在(>>SOURCE FORMAT指示子)
*  --- 固定形式ブロック開始 ---
       IDENTIFICATION DIVISION.
       PROGRAM-ID. MIXED-FORMAT.

>>SOURCE FORMAT FREE
*> 自由形式ブロック開始
WORKING-STORAGE SECTION.
01 WS-VALUE PIC 9(5).
*> 自由形式ではカラム位置を気にせず書ける

>>SOURCE FORMAT FIXED
      * 固定形式に戻る。以降は7桁目 * が有効
       PROCEDURE DIVISION.
           MOVE 100 TO WS-VALUE
           STOP RUN.

継続行(7桁目ハイフン)

コメントではありませんが、コードの可読性に関連する7桁目の記法として継続行があります。72桁を超えるリテラルや長い記述を次の行に続けたいときに使います。

継続行の書き方
      * --- 継続行を使わない場合(72桁に収める)---
           MOVE 'SHORT TEXT' TO WS-MSG.

      * --- 継続行を使う場合 ---
      * 前の行の末尾で文字列を途中で切り、次の行の7桁目に - を書く
           MOVE 'THIS IS A VERY LONG MESSAGE TEXT THAT DOES NOT FI
      -    'T IN ONE LINE AND MUST BE CONTINUED' TO WS-LONG-MSG.

      * --- 注意: *> インラインコメントは継続できない ---
      * 継続行は文字列リテラルや長い命令のみに使う
      * インラインコメントを72桁で切る場合は次の行に新しいコメント行を書く
継続行(-)はリテラルの続きに使う専用機能
7桁目の-は前の行の文字列リテラルを続けるためのものです。コメント行を継続することはできません。コメントが長くなる場合は*行を複数行書きましょう。また自由形式では継続行の概念自体がなく、単純に次の行に続けて書けます。

実践コメントパターン

プログラムヘッダーコメント

プログラムの冒頭に書く標準的なヘッダーコメントです。プログラムの概要・作成者・変更履歴をまとめて管理します。

プログラムヘッダーの標準パターン
      *================================================================*
      * プログラム名: PAYROLL-CALC                                    *
      * 機    能  : 月次給与計算バッチ処理                           *
      *             - 基本給・各種手当の合算                         *
      *             - 社会保険・所得税の控除計算                     *
      *             - 給与明細ファイルへの出力                       *
      *----------------------------------------------------------------*
      * 入力ファイル: EMPLOYEE.DAT   社員マスタ                      *
      *             : ATTENDANCE.DAT 勤怠データ                      *
      * 出力ファイル: PAYSLIP.DAT    給与明細ファイル                *
      *             : PAY-ERR.LOG    エラーログ                      *
      *----------------------------------------------------------------*
      * 作  成  者 : 山田 太郎 (経理システム部)                      *
      * 作  成  日 : 2026-01-10                                       *
      *----------------------------------------------------------------*
      * 変 更 履 歴:                                                  *
      * 2026-02-15 鈴木 二郎: 軽減税率対応(食料品8%追加)          *
      * 2026-03-20 田中 花子: 育児休業控除ロジックを修正(#2341)    *
      * 2026-04-14 山田 太郎: 定額減税2026年度対応                   *
      *================================================================*
       IDENTIFICATION DIVISION.
       PROGRAM-ID. PAYROLL-CALC.

セクション・処理ブロックの区切りコメント

PROCEDURE DIVISIONの段落を視覚的に整理するための区切りコメントです。特に長いプログラムでは可読性が大幅に向上します。

セクション区切りコメントのパターン
       PROCEDURE DIVISION.
      *================================================================*
      * メイン処理フロー                                               *
      *================================================================*
       MAIN-LOGIC.
           PERFORM OPEN-FILES-SECTION
           PERFORM READ-INPUT-SECTION
           PERFORM CALC-SECTION
           PERFORM WRITE-OUTPUT-SECTION
           PERFORM CLOSE-FILES-SECTION
           STOP RUN.

      *----------------------------------------------------------------*
      * ファイルオープン処理                                           *
      *----------------------------------------------------------------*
       OPEN-FILES-SECTION SECTION.
           OPEN INPUT  EMPLOYEE-FILE
                INPUT  ATTENDANCE-FILE
                OUTPUT PAYSLIP-FILE
                OUTPUT ERROR-LOG-FILE.
       OPEN-FILES-END.
           EXIT.

      *----------------------------------------------------------------*
      * 計算メイン: 基本給計算→控除計算→手取り計算                  *
      *----------------------------------------------------------------*
       CALC-SECTION SECTION.
           PERFORM CALC-BASE-PAY
           PERFORM CALC-DEDUCTION
           PERFORM CALC-NET-PAY.
       CALC-END.
           EXIT.

データ項目へのコメント

DATA DIVISIONのデータ項目にインラインコメントや直前のコメント行を使って説明を付けるパターンです。

データ項目へのコメント付け
       DATA DIVISION.
       WORKING-STORAGE SECTION.

      * --- 処理制御フラグ ---
       01 WS-CONTROL-FLAGS.
          05 WS-EOF-FLAG      PIC X(1) VALUE 'N'. *> N=処理中 Y=EOF到達
             88 WS-EOF        VALUE 'Y'.
          05 WS-ERR-FLAG      PIC X(1) VALUE 'N'. *> N=正常 Y=エラーあり
             88 WS-HAS-ERROR  VALUE 'Y'.
          05 WS-FIRST-READ    PIC X(1) VALUE 'Y'. *> Y=初回読み込み前

      * --- 集計カウンタ ---
       01 WS-COUNTERS.
          05 WS-INPUT-COUNT   PIC 9(7) VALUE 0.   *> 入力件数
          05 WS-OUTPUT-COUNT  PIC 9(7) VALUE 0.   *> 正常出力件数
          05 WS-ERROR-COUNT   PIC 9(5) VALUE 0.   *> エラー件数

      * --- 計算用ワーク変数 ---
      * COMP-3(パック10進)はバイナリよりも精度が高く金額計算に適している
       01 WS-SALARY-WORK.
          05 WS-BASE-SALARY   PIC 9(7)V99 COMP-3. *> 基本給
          05 WS-OVERTIME-PAY  PIC 9(6)V99 COMP-3. *> 残業代
          05 WS-TOTAL-ALLOW   PIC 9(6)V99 COMP-3. *> 手当合計
          05 WS-HEALTH-INS    PIC 9(5)V99 COMP-3. *> 健康保険料
          05 WS-PENSION       PIC 9(5)V99 COMP-3. *> 厚生年金
          05 WS-INCOME-TAX    PIC 9(6)V99 COMP-3. *> 所得税
          05 WS-NET-PAY       PIC 9(7)V99 COMP-3. *> 手取り(最終結果)

コードのコメントアウト(一時的な無効化)

デバッグやテスト時に処理を一時的に無効化する方法です。行頭を7桁目に移してコメント行にするか、インラインで*>を使います。

コードのコメントアウト
       PROCEDURE DIVISION.

      * --- 旧ロジック(2026-03消費税計算方式変更により無効化)---
      *    COMPUTE WS-TAX = WS-AMOUNT * 0.08
      *    COMPUTE WS-TOTAL = WS-AMOUNT + WS-TAX

      * --- 新ロジック(軽減税率対応) ---
           IF WS-FOOD-FLAG = 'Y'
               COMPUTE WS-TAX ROUNDED = WS-AMOUNT * 0.08  *> 食品: 8%
           ELSE
               COMPUTE WS-TAX ROUNDED = WS-AMOUNT * 0.10  *> 通常: 10%
           END-IF
           COMPUTE WS-TOTAL = WS-AMOUNT + WS-TAX

      * --- デバッグ用DISPLAY(本番ではコメントアウト)---
      *    DISPLAY 'DEBUG: AMOUNT=' WS-AMOUNT ' TAX=' WS-TAX
      *    DISPLAY 'DEBUG: TOTAL =' WS-TOTAL

TODOコメントと問題点の記録

将来の改修が必要な箇所や既知の制限事項をコメントで残すパターンです。チームでの保守時に役立ちます。

TODOコメントと制限事項の記録
      * TODO: 2026-06 担当: 田中
      *       月中入社社員の日割り計算未対応。現状は満額支給。
      *       ATTENDANCE-FILEに入社日が含まれるようになったら対応予定。

      * FIXME: 2026-04-01 山田
      *        WIN計算で1円単位の端数が累積するケースを確認。
      *        100件以上のレコードで合計が1円ずれる。要調査。
      *        チケット番号: #3145

      * NOTE: 上限チェック(9999999円)はシステム要件による制約。
      *       PIC 9(7)の上限を超える場合はON SIZE ERRORで検知する。

           COMPUTE WS-NET-PAY
               ON SIZE ERROR
                   MOVE 9999999.99 TO WS-NET-PAY  *> 上限でキャップ
                   ADD 1 TO WS-CAP-COUNT
           END-COMPUTE

よくある落とし穴と対策

落とし穴 症状 対策
7桁目がズレてコメントにならない エディタでカラム位置を誤認識し、8桁目に*を書いてしまう。文法エラーまたは意図しないコードとして解釈される COBOLプラグイン(VS Code: COBOL拡張・Eclipseなど)のカラムルーラーを使う。7桁目を視覚的に確認する
73桁目以降に書いた内容がコンパイラに無視される 固定形式では73〜80桁目は識別領域でコンパイラに無視される。長いコメントを73桁以降に書いてもコードに影響しないが意図通りに残らない コメントは8〜72桁目に収める。72桁を超える場合は次のコメント行に続ける
旧コンパイラで *> を使ってエラーになる COBOL 74/85のみ対応のコンパイラではインラインコメント(*>)が構文エラーになる 対象コンパイラのCOBOLバージョンを確認する。旧環境では7桁目*のコメント行のみを使う
デバッグ行(D)が本番環境で有効になっている SOURCE-COMPUTERにWITH DEBUGGING MODEを残したまま本番にデプロイすると、D行のDISPLAYが実行される 本番コンパイル前にWITH DEBUGGING MODEを削除する。または最初からD行を使わずに88レベルのデバッグフラグを使う
自由形式で7桁目*を使いコメントにならない >>SOURCE FORMAT FREEの後は固定形式のカラム構造がなくなる。7桁目に*を書いてもコメント行にはならず文法エラーになる 自由形式では*>のみを使う。固定形式と自由形式を混在させる場合は>>SOURCE FORMAT指示子の切り替えタイミングを明確にする

よくある質問

QCOBOLで日本語コメントは使えますか?
Aコンパイラと文字コード設定によります。IBM z/OS COBOLではEBCDICの日本語(JIS X 0208)が使えるため、「*コメント内容」に漢字・ひらがなを書けます。GnuCOBOLではUTF-8のソースファイルを使えば日本語コメントを書けます。実際の業務COBOLプログラムでは日本語コメントが多用されており、可読性向上に非常に効果的です。
Q*と*>はどちらを使うべきですか?
A環境のCOBOLバージョンによって使い分けます。COBOL 2002以降が使える環境であれば、コードの直後に短い説明を付けたい場合は*>インラインコメントが便利です。行全体をコメントにする場合や、区切り線・ヘッダーを書く場合は7桁目の*を使います。旧コンパイラとの互換性が必要な場合は*だけを使うのが安全です。
QPROCEDURE DIVISIONに書いたコメントは実行速度に影響しますか?
Aありません。コメント行はコンパイル時に完全に除去され、オブジェクトコードには含まれません。コメントをどれだけ書いても実行速度・メモリ消費には影響しません。可読性とメンテナンス性のために積極的にコメントを書きましょう。
Q既存のプログラムのコメントが全部英語です。日本語に変えても問題ありませんか?
Aコンパイラが日本語をサポートしている環境であれば問題ありません。ただし、ファイルの文字コードがシフトJISやEBCDICである場合、編集ツールの文字コード設定を合わせる必要があります。また大規模システムではコーディング規約でコメントの言語が決まっている場合があるため、チームのルールを確認してから変更しましょう。
QCOBOLのコメントにバグを仕込むことはできますか?
Aできません。コメント行はコンパイラに完全に無視されるため、どんな内容を書いても動作に影響しません。ただし、コメントアウトしたつもりのコードが実は7桁目のズレで有効なコードとして残っているケースが稀にあります。コメントアウト後は必ずコンパイルして警告がないことを確認する習慣をつけましょう。

まとめ

COBOLのコメント記法は固定形式のカラム構造と密接に関係しています。

記法 用途 対応バージョン/備考
7桁目 * 行全体をコメントにする。最も基本的で互換性が高い 固定形式のすべてのCOBOLバージョン
*>(インライン) 行の途中から行末までコメントにする COBOL 2002以降(IBM/GnuCOBOL等で対応)
7桁目 / コンパイラリスティングに改ページを挿入する(コメントではない) 固定形式。現代では用途が少ない
7桁目 D WITH DEBUGGING MODEのときだけ実行されるデバッグ行 COBOL 2002以降は非推奨
IDENTIFICATION DIVISION文書化エントリ AUTHOR・DATE-WRITTEN等のメタデータ。コンパイラに無視される COBOL 85まで標準。現代の業務コードでも現役
*>(自由形式) 行頭を含む行のどこにでも書けるインラインコメント >>SOURCE FORMAT FREEの後

実際の業務COBOLプログラムでは、プログラムヘッダーに概要・担当者・変更履歴を記載し、セクション区切り線でPROCEDURE DIVISIONを整理し、データ項目にインラインコメントで型・用途を説明するスタイルが標準的です。IF文PERFORM文などの条件分岐・ループ処理にコメントを添えることで、複雑なビジネスロジックの意図が格段に伝わりやすくなります。

コメントを残すことはコードの品質を保つだけでなく、5年後・10年後に保守する後任者へのメッセージでもあります。COBOLシステムの平均寿命は30〜40年とも言われており、COBOLのコメントは他の言語以上に「将来への投資」としての意味を持ちます。COBOLの需要と将来性についてはCOBOLを学習する価値はあるのかもあわせてご覧ください。