Q&A

  • 예외처리가 되질 않습니다.
잘못된 형식의 엑셀파일을 열때 에러처리를 하려고 아래와 같이 코딩을
했는데, except 로 넘어가질않고 open 에서 멈추면서 '잘못된 파일형식'이라는 메세지 박스가 뜹니다.
왜 그런건지 모르겠습니다.
답변 부탁드립니다.

*************************** 소스 *******************
procedure TForm1.Button1Click(Sender: TObject);
var
  ExcelApp: Variant;
begin
try
    ExcelApp := CreateOLEObject('Excel.Application');
    ExcelApp.WorkBooks.open('C:1.xls');
    ExcelApp.visible := False;
except
   on E: Eoleexception do
   begin
        showmessage('error');
   end;
end;
end;

4  COMMENTS
  • Profile
    홍성락 2002.10.25 18:51
    이미 실행시 생성치 않는거와
    ole생성시 에러체크에 대한 예외처리보다 파일을 먼저 여는것도 좀 뒤로 보네구요.
    아래 예를 참조해보세요.
    procedure TFrmMeasureDataExcel.File_OPEN(file_name : string);
    var
        XL : Variant;
    begin
        try
          XL := GetActiveOLEObject('Excel.Application');
        except
          on E: EOleSysError do begin
             try
               XL := CreateOLEObject('Excel.Application');          //엑셀을 실행
             except
               MessageDlg('Excel이 설치되어 있지 않습니다.', MtWarning, [mbok], 0);
               XL.free;
               Exit;
             end;
          end;
        end;
        XL.WorkBooks.open(file_name);
        XL.visible := true;
    end;

    hsr////////////////////////////////////////////////////////////
  • Profile
    임혜옥 2002.10.25 19:24
    답변 감사합니다.
    그런데 제가 원하는것과 약간 거리가 있는것 같아서요..
    Except 를  다음과 같이 하라는 말씀이신것 같은데..
    제가 잘못이해한건가요? ^^

    procedure TForm1.Button1Click(Sender: TObject);
    var
      ExcelApp: Variant;
    begin
        ExcelApp := CreateOLEObject('Excel.Application');
    try
        ExcelApp.WorkBooks.open('C:1.xls');
        ExcelApp.visible := False;
    except
       on E: EOleException do
       begin
            showmessage('error');
       end;
    end;
    end;

    암튼 위와 같이 코딩해도 파일이 없을때는 예외처리상황으로 빠지지만.
    doc화일을 xls로 바꿔서 오픈을 하려고 하면 에러처리가 되질 않습니다.
    어떻게 해야 하는건가요?
  • Profile
    홍성락 2002.10.25 20:00
    디버깅모드에서는 에러메세지를 띄우지만 실행파일로 할경우는 try~except처리되어 원하는 실행을 하지 않나요?
    hsr/////////////////////////////////////////////////
  • Profile
    임혜옥 2002.10.25 20:08


    그렇군요..정말 감사합니다..
    어제부터 해결못했던 건데...^^