COBOL2002 ユーザーズガイド


25.2.3 OLEメソッドが返すOLEオブジェクトを利用した参照

OLEメソッドやOLEプロパティの参照には,コンテナやコレクションをすべて指定して参照する方法と,OLEメソッドが返すOLEオブジェクトを起点として参照する方法があります。

〈この項の構成〉

(1) コンテナやコレクションをすべて指定して参照する

セルのValueプロパティを使って値を設定するときに,生成したApplicationオブジェクトからのコンテナやコレクションをすべて指定して参照する例を次に示します。

参照例
       WORKING-STORAGE SECTION.
       01 AP-OBJ USAGE OBJECT REFERENCE OLE.
       PROCEDURE DIVISION.
           :
           INVOKE 'Excel.Application' 'CREATEOBJ'
                  RETURNING AP-OBJ.
           :
           SET 'Workbooks(1).Worksheets(1).Cells(1,1).Value'
                  WITH AP-OBJ TO 'ABCD'.
           SET 'Workbooks(1).Worksheets(1).Cells(1,2).Value'
                  WITH AP-OBJ TO 'ABCD'.
           SET 'Workbooks(1).Worksheets(1).Cells(1,3).Value'
                  WITH AP-OBJ TO 'ABCD'.
例の説明

Workbooks(1).Worksheets(1).Cells(1,n)(n=1,2,3)がコンテナやコレクションの参照です。

(2) OLEメソッドが返すOLEオブジェクトを起点として参照する

OLEオブジェクトの起点を変えてコンテナやコレクションを参照する例を次に示します。

参照例
       WORKING-STORAGE SECTION.
       01 AP-OBJ USAGE OBJECT REFERENCE OLE.
       01 CEL-OBJ USAGE OBJECT REFERENCE OLE. …1.
       01 CEL-IDX PIC 9 VALUE ZERO.
       PROCEDURE DIVISION.
           INVOKE 'Excel.Application' 'CREATEOBJ'
                  RETURNING AP-OBJ.
           :
           PERFORM SET-CELL 3 TIMES.
           :
       SET-CELL SECTION.
           COMPUTE CEL-IDX = CEL-IDX + 1.
           INVOKE AP-OBJ 'Workbooks(1).Worksheets(1).Cells'
                  USING VALUE 1 CEL-IDX
                  RETURNING CEL-OBJ. …1.
           SET 'Value' WITH CEL-OBJ TO 'ABCD'. …2.
例の説明
  1. Cellsメソッドが返すオブジェクトを起点とします。

  2. Cellsオブジェクトを起点として参照し,値を設定します。