WindowsプログラミングのC++BuilderとVisual Basicでお聞きしたいことがあります。
ExcelファイルをWordファイルに変換したいんですが、
これっていうのはプログラムで変換出来るんでしょうか?
手動でなら保存の時にテキスト形式を選べばいいんですが、かなり量が多いので時間がかかってしまいます。
いろんな参考書を見てがんばってはみたんですが、行き詰まってしまいました。

少しでもアドバイスがいただければうれしいです。
どなたか分かる人や、いいサイトがあれば教えて頂きたいです。
お願いします。

A 回答 (4件)

VBからのコントロールですが、yochiさんの回答のVBAの


ようにVBから実行します

Private Sub Command1_Click()

Dim objExcel As Excel.Application
Dim objbook As Workbook

Set objExcel = CreateObject("Excel.Application")
Set objbook = objExcel.Workbooks.Open("C:\TEST1.xls")
objbook.Application.DisplayAlerts = False
objbook.SaveAs "C:\TEST1.TXT", xlText
objbook.Close False
objExcel.Quit
Set objbook = Nothing
Set objExcel = Nothing

End Sub

で、C++Builderからです

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <utilcls.h>

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//#include <system.hpp>
//#include <vcl\oleauto.hpp>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString sExcel = "Excel.Application";
Variant excel = CreateOleObject(sExcel);

//excel.OlePropertySet("Visible",-1);

Variant book = excel.OlePropertyGet("Workbooks").OleFunction( "Open","C:\\TEST1.xls");

excel.OlePropertyGet("Application").OlePropertySet("DisplayAlerts",0);

book.OleFunction( "SaveAs","C:\\TEST1.txt",-4158);

book.OleFunction( "Close",0);

book = Unassigned;

excel.OleFunction( "Quit" );

excel = Unassigned;

}
//---------------------------------------------------------------------------

エラー処理はしてませんので、ご注意を。

この回答への補足

プログラムまで書いて頂きありがとうございました。

質問なんですが、この回答っていうのはまずVisual Basicで実行してから
Builderで続けて実行するんですか? それともBuilder単独でもできますか?
Builderだけで実行したんですが、
[C++ エラー] sysvari.h(2583): E2451 Undefined symbol 'TAutoArgs'.
[C++ エラー] sysvari.h(2583): E2451 Undefined symbol 'args'.
のように、sysvari.hでエラーがかなり出ました。
難しいプログラムだったので、Formにも何を置いていいのか分かりませんでした。
出来れば教えて頂きたいです。

あと、Test1 - Test2 - Test3・・・のように一気にやるには、変換のところを
ループで回してやれば出来るんですかね?

補足日時:2001/06/24 10:29
    • good
    • 0
この回答へのお礼

プログラムは本当にありがとうございました。
やはりもっと勉強しなくてはいけませんね。
今回は本当にお世話になりました。

お礼日時:2001/07/31 11:20

はじめまして m(_ _)m



>ExcelファイルをWordファイルに変換したいんですが
ExcelならVBAを使用してはいかがですか?
例えば、
*******************************************************************
Option Explicit

Sub Samp()
ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\デスクトップ\Book1.txt", FileFormat _
:=xlText, CreateBackup:=False
End Sub
********************************************************************
上記は、ExcelのBook1の内容をテキスト形式で保存するものです。これだとWordで開く事が出来ます、この他にCSV形式で保存しても同様な事が出来ますがニュアンスが間違っていればごめんなさい f(^_^;
    • good
    • 0
この回答へのお礼

ニュアンスは大丈夫です。あっています。
大変助かりました。ありがとうございました。
VBだけではなくて、VBAもこれから頑張ります。

お礼日時:2001/07/31 11:16

>量が多い


最初にファイルを選び、
そのすべてに対してExcelで開く-テキスト保存 の処理をする
という方法があると思います。
    • good
    • 0
この回答へのお礼

すべてに対してExcelで開く、というところがちょっと分かりにくかったんですが、考えていただいて、ありがとうございました。

お礼日時:2001/07/31 11:08

Excelデータを「コピー」して、WORDへ「貼り付け」ではだめですか?

    • good
    • 0
この回答へのお礼

だめってわけではないんですけどね。
ファイルがたくさんあるから、ちょっとしんどいです。

お礼日時:2001/07/31 11:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報