他の方が作成されたアプリを使ってプログラムを作成したいのですが、どのようにしたらよいのでしょうか。
ご教示お願いいたします。
開発環境はOS:Windows Vista Business 開発言語:Microsoft Visual sutudio2005 C++ です。
手元にあるのはWindows インストーラ パッケージ(.msi)でインストールするとexeファイル・OCXファイル・XPRファイル・DLLファイル・だろ\\DATファイルがC\:program file\内に作成されます。
このアプリはある試験片のひずみデータをX線発生装置で計測し、出力されたテキストファイルデータをファイルを指定して読み込み計算して結果(強度や半値幅等)をExcel形式の表で表示するとものです。
私がやろうとしていることは現在毎度ファイルを指定してデータを読み込んでいるのをフォルダをしてファルダ内のファイルをすべて読み込ませるようし、Excel形式の表からデータを抜き出しどんな形式でもいいから結果データを保存できるような仕組みにしたいのです。
大変読みにくくて申し訳ないのですが、
全くどうしたらいいのかわからないのでご教示お願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
Excelのセルからデータを取って来たいと言う事でしょうか。
もしそうであるならば、以下が参考になると思います。
http://www.ujasiri.com/prglib/vc/excel/vc_excel. …
http://www-online.kek.jp/~keibun/pukiwiki/index. …
http://hp.vector.co.jp/authors/VA014436/prg_memo …
例えば、Office2003がインストールされている場合は以下の様に成ります(2つ目のURLにOfficeのバージョン別設定が書かれています)。以下参考程度に。
#include<windows.h>
#include<objidl.h>
#include<stdio.h>
//Office2003
#import "C:\Program Files\Common Files\Microsoft Shared\Office11\MSO.DLL" no_namespace rename("DocumentProperties", "DocumentPropertiesXL")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" no_namespace
#import "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces
static LPSTR UnicodeToAnsi(LPWSTR uni)
{
const DWORD size = ::WideCharToMultiByte(CP_ACP, 0, uni, -1, NULL, 0, NULL, NULL);
LPSTR p = (LPSTR)::malloc(size);
::WideCharToMultiByte(CP_ACP, 0, uni, -1, p, size, NULL, NULL);
return p;
}
static void DisplayXLS()
{
using namespace Excel;
_ApplicationPtr pXL;
//Excelの起動
pXL.CreateInstance(L"Excel.Application");
//Excelを非表示にする
pXL->Visible = FALSE;
//WorkBookを追加する
WorkbooksPtr pBooks = pXL->Workbooks;
//xlsファイルを開く
_WorkbookPtr pBook = pBooks->Open("C:\\Book1.xls");
_WorksheetPtr pSheet = pXL->ActiveSheet;
//取り出すセル位置
LPCSTR pszCellNames[] =
{
"A1", "A2", "B1", "B2"
};
//表示する(保存したければ、此処でデータを拾って保存する)
for(int i = 0; i < 4; ++i)
{
const _variant_t var = pSheet->Range[pszCellNames[i]][vtMissing]->Value2;
switch(var.vt)
{
case VT_BSTR://セルが文字列
{
LPSTR pAnsi = ::UnicodeToAnsi(var.bstrVal);
::printf("[セル番号 : %s][値 : %s]\n", pszCellNames[i], pAnsi);
::free(pAnsi);
}
break;
default://数値(その他いろいろあるが、割愛)
{
const LONG lVal = var;
::printf("[セル番号 : %s][値 : %d]\n", pszCellNames[i], lVal);
}
}
}
//Excelの終了
pXL->Quit();
}
int main()
{
::CoInitialize(0);
::DisplayXLS();
::CoUninitialize();
return 0;
}
No.1
- 回答日時:
ちょっと前提条件を整理させてください。
・実行プログラムはあるがソース(や附随する設計書)はない。
・「Excel形式の表で表示」を画面のみに行い、Excelファイルは存在しない。
であっていますでしょうか?
上記前提とすると、
>現在毎度ファイルを指定してデータを読み込んでいるのをフォルダをしてファルダ内のファイルをすべて読み込ませるようし
単純にはキーボードマクロのような一定動作をさせるアプリを使用して一連の動作を連続して行うようなものを作る形になりますが、一般的なアプリの内容からすれば、そんな簡単には行かない気がします。
既存アプリが起動時のパラメータとしてファイルを指定できるような作りであれば、バッチ処理で逐次実行してみるという手もないわけではありません。
>Excel形式の表からデータを抜き出しどんな形式でもいいから結果データを保存
画面表示だけで、表示前の情報が中間データとしてファイル出力されていなければ難しいです。
画面の表示データをクリップボードにコピーしたとしても、それは「画像データ」でしかないため、そこから必要なデータを抽出する画像解析処理が必要となります。
また、仮に中間データがあったとしても、そのデータのフォーマットが不明な場合には、その内容の特定(解析)に時間を必要とします。
個人的には「既存アプリのソースがないのであれば、新しいプログラムを一から作りなおしたほうがよい」って内容に思えますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(プログラミング・Web制作) 【python】Excelファイルを読み込む際の日付の表示形式を任意にする 2 2022/11/24 14:21
- Excel(エクセル) ドキュメントに保存していたエクセルのファイルが開きません。 2 2022/12/02 09:38
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- Word(ワード) PCで作ったwordをスマホで編集しようとすると「このファイルは読み取り専用です。」と表示される。 3 2023/05/30 14:51
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ページ読み込み時に自動的にsub...
-
EXCEL VBAでテキストファイルの...
-
DXFファイル用クラスライブラリ...
-
バッファとは何ですか
-
エラー:ストリームの終わりを...
-
バイナリファイル(画像等)デ...
-
【python】Excelファイルを読み...
-
バイナリエディタのつかいかた
-
ファイル読み込みエラーになる。
-
地熱発電などでいう「バイナリ...
-
エクセルVBA 2千万行のCSVファ...
-
ファイルをセーブする時のfopen...
-
バイナリファイルの検索について
-
C言語の質問です。バイナリ形...
-
VB5.0 SP3にてEXCE...
-
EXCEL VBAで、バイナリデータの...
-
画素値取得について
-
Paiza Cloudです。学籍番号と氏...
-
Paiza Cloudです。 どうやれば...
-
C言語初心者の質問失礼します。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
EXCEL VBAでテキストファイルの...
-
ページ読み込み時に自動的にsub...
-
エクセルVBA 2千万行のCSVファ...
-
VBA バイナリ―から文字列にす...
-
エラー:ストリームの終わりを...
-
入力ファイルをバイナリにする利点
-
バイナリエディタのつかいかた
-
MacからWinにファイルを添付す...
-
EOF
-
【python】Excelファイルを読み...
-
C言語の質問です。バイナリ形...
-
画像の保存方法。
-
テキストデータをSQLServerに取...
-
バイナリファイルの比較につい...
-
bitmap画像の保存がうまくいき...
-
なぜデータの整合性を確認する...
-
C言語とシリアル通信の送受信...
-
【Teraterm】filewritelnについて
おすすめ情報