Q&A

  • Excel 매크로 를 델파이로...
  //아래는 매크로 내용입니다
     기존 Excel파일에 테투리없는 Text박스가 있습니다.
     매크로 기록을 하면 아래처럼 나오죠....

    ActiveSheet.Shapes("Text Box 4").Select
    Selection.Characters.Text = "(테스트)"
    With Selection.Characters(Start:=1, Length:=5).Font
        .Name = "돋움"
        .FontStyle = "보통"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
   //===================================================
   기존의 있는 텍스트 박스를 델파이 소스로는 찾을수가 없서서
   새로 만들어 넣는 소스 입니다.
   //상수선언
   const
  xlLeft = -4131;
  xlRight = -4152;
  xlTop = -4160;
  xlBottom = -4107;
  xlThin = 1;
  xlHAlignCenter = 1;
  msoShapeRectangle = 1; //직사각형
  msoShapeTrapezoid = 1; //사다리꼴
  msoShapeOctagon = 1;   //8각형
  msoShapeDiamond = 1;   //다이아몬드형
  msoShapeOval = 1;  //타원형
  msoShapeCube = 1;  //정육면제
  
  msoTextOrientationHorizontal = 1; //레이블관련
   .....
   ......

   EG := 'G' + inttostr(eno);
   if Tresult = True then begin
      try
        //라인그리기
        Excel.Range['A9',EG].Borders[xlRight].Weight := xlThin;
        Excel.Range['A9',EG].Borders[xlLeft].Weight := xlThin;
        Excel.Range['A9',EG].Borders[xlTop].Weight := xlThin;
        Excel.Range['A9',EG].Borders[xlBottom].Weight := xlThin;

        Sheet := Excel.Sheets['명세표'];

        //아래는 테두리없는 Text박스를 나타낸다..  
        //매체구분과 월을 나타낸다
        xlLabel := Sheet.Shapes.AddLabel(msoShapeRectangle,225,30,80,18).TextFrame;
        xlLabel.Characters.Text := '('+ac_bmyy.Text + '-' + ac_bmmm.text+ Copy(ac_ingu.text,3,8)+')';
        //광고주를 나타낸다
        xlLabel := Sheet.Shapes.AddLabel(msoShapeRectangle,110,60,80,18).TextFrame;
        xlLabel.Characters.Text := ac_clnm.text;
        //청구일을 나타낸다
        xlLabel := Sheet.Shapes.AddLabel(msoShapeRectangle,115,85,80,18).TextFrame;
        xlLabel.Characters.Text := cgdt;
        //담당팀을 나타낸다
        xlLabel := Sheet.Shapes.AddLabel
(msoShapeRectangle,120,113,80,18).TextFrame;
        xlLabel.Characters.Text := tmnm;  
        
      except
          showmessage('에러입니다');
      end;
      Excel.Range['A1', 'A1'].Select;
      Excel.Visible := true ;
   end else
   begin
      Showmessage('Excel Down 실패');
   end;
//여기까지 입니다. 이것 공부하는데 무려 3일 걸렸당... 에공....

질문] 엑셀파일에 이미 만들어져 있는 Text Box에 어떻게 값을 주나요?
        xlLabel := Sheet.Shapes('Text Box 4');
        이것도 안되고
        xlLabel := Sheet.Shapes('Text Box 4').Select;
        이것도 안되도 도대제 나보고 어쩌란 말이냐.........
        xlLabel.Characters.Text := '잘되나요?';

고수님들 가르쳐 주세요...
0  COMMENTS