Q&A

  • 델파이에서 워드의 매크로를 실행하려면?
MS Word의 매크로를 실행시키려면 어떻게 해야 되나요?



감사합니다..



즐거운 하루 되세요

4  COMMENTS
  • Profile
    김주석 1999.12.30 01:03
    현나 wrote:

    > MS Word의 매크로를 실행시키려면 어떻게 해야 되나요?

    >

    > 감사합니다..

    >

    > 즐거운 하루 되세요



    일단 델파이에서 MS Word를 실행시킬 수 있거든요. 그런데 어떤

    매크로를 실행하려고 하시는지요? 아래는 현재까지 코딩해본거네요.



    procedure TForm1.Button2Click(Sender: TObject);

    var

    WordApp : Variant ;

    WinHandle : hwnd ;

    begin

    WinHandle := FindWindow( ???, nil );

    // findwindow문에서 winword의 classname을 모르겠네요.



    if WinHandle <> 0 then // 이미 winword가 실행되었으면

    WordApp := GetActiveOLEObject('Word.Application')

    else

    begin

    try

    WordApp := CreateOLEObject ( 'Word.Application') ;

    except

    Application.MessageBox ( 'MS Word를 열 수 없습니다' + chr(13) +

    'MS Word가 설치되어있는지 확인하십시요' , '알림' , MB_OK ) ;

    end; //try 문의 끝

    WordApp.Visible := True ;

    end; //if문의 끝



    SetForegroundWindow( WinHandle );

    WordApp.Documents.Add ;

    // word의 새문서 추가하기

    // 이후에 매크로 실행을 하면 되겠죠?





  • Profile
    현나 1999.12.30 02:30
    김주석 wrote:



    > 일단 델파이에서 MS Word를 실행시킬 수 있거든요. 그런데 어떤

    > 매크로를 실행하려고 하시는지요? 아래는 현재까지 코딩해본거네요.

    >

    > procedure TForm1.Button2Click(Sender: TObject);

    > var

    > WordApp : Variant ;

    > WinHandle : hwnd ;

    > begin

    > WinHandle := FindWindow( ???, nil );

    > // findwindow문에서 winword의 classname을 모르겠네요.

    >

    > if WinHandle <> 0 then // 이미 winword가 실행되었으면

    > WordApp := GetActiveOLEObject('Word.Application')

    > else

    > begin

    > try

    > WordApp := CreateOLEObject ( 'Word.Application') ;

    > except

    > Application.MessageBox ( 'MS Word를 열 수 없습니다' + chr(13) +

    > 'MS Word가 설치되어있는지 확인하십시요' , '알림' , MB_OK ) ;

    > end; //try 문의 끝

    > WordApp.Visible := True ;

    > end; //if문의 끝

    >

    > SetForegroundWindow( WinHandle );

    > WordApp.Documents.Add ;

    > // word의 새문서 추가하기

    > // 이후에 매크로 실행을 하면 되겠죠?



    제가 궁금한 것이 "// 이후에 매크로 실행을 하면 되겠죠?" 이 부분이거든요



    워드에서 만든 매크로를(아무거라도) 실행할수 있다면 워드의 어지간한 기능은 델파이에서 제어 할수 있지 않을까해서요..



    혹시 몰라서 간단한 매크로를 올립니다.

    그냥 선그리는 매크로 입니다.



    Sub Macro1()

    '

    ' Macro1 Macro

    '

    ActiveDocument.Shapes.AddLine(115.05, 112.05, 495.05, 112.05).Select



    End Sub



  • Profile
    김주석 1999.12.30 04:53
    현나 wrote:

    > 김주석 wrote:

    >

    > > 일단 델파이에서 MS Word를 실행시킬 수 있거든요. 그런데 어떤

    > > 매크로를 실행하려고 하시는지요? 아래는 현재까지 코딩해본거네요.

    > >

    > > procedure TForm1.Button2Click(Sender: TObject);

    > > var

    > > WordApp : Variant ;

    > > WinHandle : hwnd ;

    > > begin

    > > WinHandle := FindWindow( ???, nil );

    > > // findwindow문에서 winword의 classname을 모르겠네요.

    > >

    > > if WinHandle <> 0 then // 이미 winword가 실행되었으면

    > > WordApp := GetActiveOLEObject('Word.Application')

    > > else

    > > begin

    > > try

    > > WordApp := CreateOLEObject ( 'Word.Application') ;

    > > except

    > > Application.MessageBox ( 'MS Word를 열 수 없습니다' + chr(13) +

    > > 'MS Word가 설치되어있는지 확인하십시요' , '알림' , MB_OK ) ;

    > > end; //try 문의 끝

    > > WordApp.Visible := True ;

    > > end; //if문의 끝

    > >

    > > SetForegroundWindow( WinHandle );

    > > WordApp.Documents.Add ;

    > > // word의 새문서 추가하기

    > > // 이후에 매크로 실행을 하면 되겠죠?

    > WordApp.ActiveDocument.Shapes.

    AddLine(115.05, 112.05, 495.05, 112.05).Select ;



    > 제가 궁금한 것이 "// 이후에 매크로 실행을 하면 되겠죠?" 이 부분이거든요

    >

    > 워드에서 만든 매크로를(아무거라도) 실행할수 있다면 워드의 어지간한 기능은 델파이에서 제어 할수 있지 않을까해서요..

    >

    > 혹시 몰라서 간단한 매크로를 올립니다.

    > 그냥 선그리는 매크로 입니다.

    >

    > Sub Macro1()

    > '

    > ' Macro1 Macro

    > '

    > ActiveDocument.Shapes.AddLine(115.05, 112.05, 495.05, 112.05).Select

    >

    > End Sub

    >

    그냥 그다음 문장에 추가하면 실행되던데요? 말씀하신 부분이 MACRO1 , MACRO2등등

    을 실현하겠다?라는 말씀이셨나요? 구체적인 어떤 작업이 아니라요??



  • Profile
    현나 2000.01.04 01:55
    아!! 정말 잘 되는군요



    제가 착각했어요.



    그리고 한가지만 더 ...



    > > 김주석 wrote:

    > > > WinHandle := FindWindow( ???, nil );

    > > > // findwindow문에서 winword의 classname을 모르겠네요.



    이 부분은 없어도 돼는군요

    근데 왜 써주는 거지요?

    HELP를 보니까 상위 단계에서 파라미터값과 일치하는 일치하는 윈도우의 핸들값을 가져온다고 써 있는것 같은데 맞나요?



    HAPPY NEW MILLENNIUM!!

    • 박민철
    • 1999.12.29 23:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2000.01.01 04:03
      박민철 wrote: > 폼위에 번튼하나를 가져다놓고 그 버튼을 누르면 특정 실행파일이 실행이 되도록하는 프...
    • 현나
    • 1999.12.29 22:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.12.29 22:59
      제가 베이직은 하나도 모르지만... -.-;; 함수나 프로시져를 DLL 로 만드시면 됩니다. 그러면 델파이...
    • 유니
    • 1999.12.29 21:52
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 장지용
      1999.12.29 22:37
      유니 wrote: > 하나의 폼에 있는 여러개의 EditBox 를 방향키로 이동하고 싶습니다. > > 다음 Control...
    • 안치봉
      1999.12.29 22:07
      SelectNext 의 인자에 보면 boolean 값으로 이동하는 방향을 줄수가 있던데... GoForward 의 값으로 조...
    • 유니
      1999.12.29 23:38
      안치봉 wrote: > SelectNext 의 인자에 보면 boolean 값으로 이동하는 방향을 줄수가 있던데... > > Go...
    • 혀노
    • 1999.12.29 21:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 혀노
      1999.12.30 00:49
      해결했음 코드를 다른곳에 하니까 되더군요,,, 필드의 OnValidate 이벤트쪽에 코딩시키고 DBGrid 에서...
    • 장지용
      1999.12.29 23:39
      혀노 wrote: > DBGrid와 Table을 연결해놓았고요 > > DBGrid에서 두개의 필드에 값을 넣으면 그것을 계...
    • sunny
    • 1999.12.29 20:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.12.29 21:45
      무식한 방법인지는 모르지만 저는 당장 생각을 해보면... 리스트뷰의 FindCaption 함수를 쓰면 어떨까 ...
    • 이수진
    • 1999.12.29 20:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.12.29 21:42
      ParamCount, ParamStr ParamCount 에는 인자의 갯수가... ParamStr(0) = 실행파일이름 ParamStr(1) ...
    • 현나
    • 1999.12.29 20:00
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김주석
      1999.12.30 01:03
      현나 wrote: > MS Word의 매크로를 실행시키려면 어떻게 해야 되나요? > > 감사합니다.. > > 즐거운...
    • 현나
      1999.12.30 02:30
      김주석 wrote: > 일단 델파이에서 MS Word를 실행시킬 수 있거든요. 그런데 어떤 > 매크로를 실행하려...
    • 김주석
      1999.12.30 04:53
      현나 wrote: > 김주석 wrote: > > > 일단 델파이에서 MS Word를 실행시킬 수 있거든요. 그런데 어떤 ...
    • 현나
      2000.01.04 01:55
      아!! 정말 잘 되는군요 제가 착각했어요. 그리고 한가지만 더 ... > > 김주석 wrote: > > > ...
    • 장지용
    • 1999.12.29 19:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.12.29 22:07
      장지용 wrote: > 왼쪽의 메모를 스크롤하면 오른쪽의 메모가 왼쪽 메모와 > 동일한 위치에 있게하는 방법...
    • 박성훈
    • 1999.12.29 17:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.12.29 19:53
      폼의 onclose 이벤트에서 Action 에 caFree 를 넣으면 될겁니다. 하지만 동적,정적인생성폼에 주의를 하...
    • 신재식
    • 1999.12.29 06:07
    • 3 COMMENTS
    • /
    • 0 LIKES
    • DBIB
      1999.12.30 18:25
      신재식 wrote: > 안녕하세요... > > 아래의 db 한글문제에 대한 답변에 대한 또 다른 질문입니다. > ...
    • DBIB
      1999.12.30 20:09
      패스워드를 안넣어서 이렇게 추가합니다 > 첫번째 > Client에 Oracle for windows95가 설치되어 있을것이...
    • 신재식
      1999.12.30 23:36
      DBIB wrote: > 패스워드를 안넣어서 이렇게 추가합니다 > > 첫번째 > > Client에 Oracle for windows95...
    • 이주흥
    • 1999.12.29 04:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.12.29 06:21
      이주흥 wrote: > 안녕하세요.. > 음...저쪽 컴에서 이쪽컴에 강제로 메세지 박스 띄울수 있는 > 방법 ...
    • 배불뚝
      1999.12.30 23:39
      맨발의 청춘 wrote: > 전화번호를 입력시 처리 문제를 어떻게 하는게 가장 효율적일지 여러 델 선배님들께...
    • shinnine
      1999.12.29 18:57
      맨발의 청춘 wrote: > 제가 지금 하고 있는 프로그램에서는 > 판매와 상품관계에서 판매할 상품 목록을 ...
    • 이숙경
    • 1999.12.29 02:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.12.29 02:28
      제가 똑같이 해봤는데... 저는 아무이상이 없었습니다(델파이5) 아무래도 여러가지 이유로 메모리가 꼬...
    • 김매경
    • 1999.12.29 01:35
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.12.29 01:41
      김매경 wrote: > procedure TDataMod.CsocketRead(Sender: TObject; Socket: TCustomWinSocket); > begin...
    • 김매경
      1999.12.29 19:52
      구창민 wrote: > > > SendBuf, ReceiveBuf 메소드를 사용해보세요. > 그럼 즐거운 프로그래밍 하시구...
    • 박성훈
    • 1999.12.29 01:33
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강상훈
      1999.12.29 01:47
      박성훈 wrote: > var > Form: TForm1; > > Form:= TForm1.Create(Application); > try > ...
    • 박성훈
      1999.12.29 07:36
      강상훈 wrote: > 박성훈 wrote: > > var > > Form: TForm1; > > > > Form:= TForm1.Create(App...