
他の方が作成されたアプリを使ってプログラムを作成したいのですが、どのようにしたらよいのでしょうか。
ご教示お願いいたします。
開発環境は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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッファとは何ですか
-
エクセルVBA 2千万行のCSVファ...
-
Microsoft VBAで2GBを超えるフ...
-
EXCEL VBAで、バイナリデータの...
-
なぜデータの整合性を確認する...
-
テキストデータをSQLServerに取...
-
Javaでのエンディアン変換
-
画像の保存方法。
-
VBA バイナリ―から文字列にす...
-
ページ読み込み時に自動的にsub...
-
EOF
-
C言語でBMPファイルの内容を表...
-
EXCEL VBAでテキストファイルの...
-
ワードプレスhtmlファイルの保...
-
FTPでエクセルをPUTするとファ...
-
VBでCSVファイルを読み込む方法...
-
COBOL で組まれたシステムのデ...
-
バイナリファイルの検索について
-
HDDのバイナリイメージの取得方...
-
【python】Excelファイルを読み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
ページ読み込み時に自動的にsub...
-
エクセルVBA 2千万行のCSVファ...
-
EOF
-
VBA バイナリ―から文字列にす...
-
EXCEL VBAでテキストファイルの...
-
エラー:ストリームの終わりを...
-
入力ファイルをバイナリにする利点
-
【MFC】CFileでSeekした位置か...
-
C言語の質問です。バイナリ形...
-
【python】Excelファイルを読み...
-
MacからWinにファイルを添付す...
-
バイナリ形式のXMLファイルを読...
-
EXCEL VBAで、バイナリデータの...
-
テキストデータをSQLServerに取...
-
VBAでバイト型データをファイル...
-
HDDのバイナリイメージの取得方...
-
24ビットのWaveデータの中身に...
-
FMFファイルの構造を知りたいの...
おすすめ情報