他の方が作成されたアプリを使ってプログラムを作成したいのですが、どのようにしたらよいのでしょうか。
ご教示お願いいたします。
開発環境は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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッファとは何ですか
-
EOF
-
ページ読み込み時に自動的にsub...
-
VBA バイナリ―から文字列にす...
-
テキストデータをSQLServerに取...
-
Microsoft VBAで2GBを超えるフ...
-
正の実数のみで書かれたバイナ...
-
PHPのfgetcsvの処理容量について
-
テキストデータをバイナリデー...
-
バイナリーデータの一部データ...
-
【python】Excelファイルを読み...
-
【MFC】CFileでSeekした位置か...
-
画像の保存方法。
-
EXCEL VBAでテキストファイルの...
-
Javaでのエンディアン変換
-
ゲームのパラメータの読み込み...
-
機器とRS232Cクロスケーブルで...
-
エンディアンと2の補数表現
-
FMFファイルの構造を知りたいの...
-
C言語初心者の質問失礼します。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
EXCEL VBAでテキストファイルの...
-
エクセルVBA 2千万行のCSVファ...
-
Microsoft VBAで2GBを超えるフ...
-
EOF
-
入力ファイルをバイナリにする利点
-
VBA バイナリ―から文字列にす...
-
エラー:ストリームの終わりを...
-
【MFC】CFileでSeekした位置か...
-
ページ読み込み時に自動的にsub...
-
MacからWinにファイルを添付す...
-
24ビットのWaveデータの中身に...
-
FTPでエクセルをPUTするとファ...
-
【python】Excelファイルを読み...
-
EXCEL VBAで、バイナリデータの...
-
バイナリファイルの比較につい...
-
PHPのfgetcsvの処理容量について
-
バイナリーデータの一部データ...
-
ビットマップファイル生成(C言...
-
FMFファイルの構造を知りたいの...
おすすめ情報