エクセルシートの操作方法

[戻る]
鎌倉 2002/11/05(火) 15:06:03
エクセルを起動してセルの中に値を入れる処理を行いたいと思っています。
ここの過去ログや関連ウェブサイトなどに多数の質問が見られましたが
いまいちどれを読んでも把握できませんでした。
具体的なソースを教えてくれる方いませんでしょうか?

処理の流れはこんな感じです。
MFCダイアログベースに作られたボタンを押すと
エクセルを起動して、A1に30という数字を打ち込む
別のボタンを押すとエクセルを閉じる。

今のところ出来ているのがエクセルを起動するまでです。
ShellExecute関数でエクセルを起動しているのですが
この後値が入力できません。

CString file_name;
file_name = "C:\\test.xls" ;
ShellExecute(NULL ,"open", file_name, NULL, NULL, SW_SHOWNORMAL);

いろいろ方法はあるようなんですが、この先の目的である
セルの書式変更や編集ロックの操作なども含めて
一番最適と思われる方法を教えてください。

VC++6.0
オフィス2000インストール

鎌倉 2002/11/05(火) 15:16:42
できれば
ShellExecuteのように既存のファイルを開くのではなく
エクセルを直接起動して(見えないように)セルに書き込んだ後
どこか任意のフォルダに保存してくれるという方法が良いです。

・・・ 2002/11/05(火) 17:02:32
「猫でもわかるプログラミング」 に載ってます。
http://www.kumei.ne.jp/c_lang/

>具体的なソースを教えてくれる方いませんでしょうか?
ちなみにこれでは質問ではなく、作ってくれと言っているのと同じです。
もっとご自分で調べる努力をしましょう。

鎌倉 2002/11/05(火) 17:23:52
そのHPは以前から見ていますが最初のページから理解不能で
へこんでしまいます。(コンパイルすら通らない)
150章からのエクセルについての記述も読みましたが
サーバーとクライアントの通信というものが出てきて
いまいち簡潔ではない気がします。

自分でも、かなりいろいろ調べてみましたが
詳細に書いてあるページを見つけることが出来ませんでした。

手順の書いてあるHPでもいいので教えてください。
お願い致します。

・・・ 2002/11/05(火) 18:02:27
本当にもうこれ以上ないって位、調べましたか?(色々な検索サイト、キーワードを使うなどし
て)
今、検索をかけてみたところ、あっさりとサンプルソースのあるHP等が複数見つかりましたが…
イジワルしているように感じるかもしれませんが、自分で調べる事はとても大切です。
もう一度あらゆるサイトを検索してみて下さい。
それでもダメなら何をキーワードにして検索したか、どこの検索サイトを使ったか教えて下さ
い。
※ちなみにソースをみても全く分からないってのは問題外です。
その場合はそこに至るまでの基礎を勉強してからこの問題に挑んだ方がいいです。

君は僕の太陽暦だ! 2002/11/05(火) 18:21:45
http://www.net24.ne.jp/~kenji/p_ddeexcel/ddeexcel.html
これは参考になりますか?

猫さんのHPのサンプルの方が詳しいしと思うのですが・・・。
とりあえず、MFCで動くサンプルみたいです。

ちなみにGoogleで「DDE通信 エクセル」で検索したら
1番上に出てきたです。

「動いたから終わり」では、なくて
「どうして(どうやったら)動いたのか?
 なぜ自分のではうごかなかったのか?」
を重視してくださいね

・・・ 2002/11/05(火) 18:35:06
とても優しい方がいらっしゃったようですので、
もう調べないでしょうからとりあえず答えを。
結構簡単に見つけられるんだけどなぁ…

http://www.jsdlab.co.jp/~kei/studio/excel/index.html
http://www1.neweb.ne.jp/wa/junneko/tec/tec001.html
http://www1.plala.or.jp/knambo/vc/usemore.html#EXCEL

君は僕の太陽暦だ! 2002/11/05(火) 19:24:42
ありゃ、・・・さんの書き込みをみないで検索結果を
書いてしまいました。
・・・さん、ごめんなさい。

でも、私も基本的に・・・さんと同じ意見です。
検索のコツをつかんでもらうためにあくまで一例として
「DDE通信 エクセル」で検索したと書きました。

VC++でエクセルを操作するというのはわりと良くある
要求です。
鎌倉さんも、検索のコツをつかんでWebの情報を上手に
使えるようになってくださいね!!!

wood 2002/11/05(火) 19:37:31
VC++ & EXCEL API
こんなキーワードでプロジェクト付のソースを公開しているの
見つけること出来ましたよ

・・・ さんのやり取り見てましたけど
本人の努力の結果見れてからでも遅くないと思っていたのですけど
取り合えづ キーワード だけ書かしてもらいます

鎌倉 2002/11/06(水) 09:50:35
必死で猫を読んでみたらなんとなく分かってきました。
1点分からない点がありましたので、お聞きします。

リソースファイルを手動で編集するにはどうしたらよいでしょうか?
ワークスペースで、.rcファイルを開くとリソース一覧のツリーが出てきて
編集できません。

お願いします。

君は僕の太陽暦だ! 2002/11/06(水) 09:57:54
VC以外のほかのエディターで、開いてみる。

鎌倉 2002/11/06(水) 10:18:17
>> 君は僕の太陽暦だ!
ありがとうございます。出来ました。

ちょっと他のところで調べてみて使うにあたって
エクセル関連をインポートする必要が在るということがわかりました。
そこで下の3行をダイアログ.cppの先頭に書いてみたところ
エラーと警告が出まくってしまいました。
何がいけないのか分かりません。

#import "C:\Program Files\Microsoft Office\Office\MSO9.DLL"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files\Microsoft Office\Office\excel9.olb"

c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\mso9.tlh(931) : warning C4146: 符号付きの値を代入する変数は、符号付き型に
キャストしなければなりません。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(10494) : warning C4003: マクロ 'DialogBoxA' に指定された実引数の
数が少なすぎます。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(10494) : error C2059: 構文エラー : ','
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(45992) : warning C4003: マクロ 'DialogBoxA' に指定された実引数の
数が少なすぎます。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(45992) : error C2059: 構文エラー : ','
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(62035) : warning C4003: マクロ 'RGB' に指定された実引数の数が少な
すぎます。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(62035) : error C2629: 'long (' は不正です。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(62035) : error C2238: ';' の前に不正なトークンがあります。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(62955) : warning C4003: マクロ 'DialogBoxA' に指定された実引数の
数が少なすぎます。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(62955) : error C2059: 構文エラー : ','
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(69139) : warning C4003: マクロ 'DialogBoxA' に指定された実引数の
数が少なすぎます。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(69139) : error C2059: 構文エラー : ','
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(74348) : warning C4003: マクロ 'RGB' に指定された実引数の数が少な
すぎます。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(74348) : error C2589: '(' : スコープ解決演算子 (::) の右側にあるト
ークンは使えません。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(74348) : warning C4091: 空白の宣言が見つかりました。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(74348) : error C2143: 構文エラー : ';' が '::' の前に必要です。
c:\documents and settings\administrator\デスクトップ\エクセル操作テスト
\debug\excel9.tlh(74348) : error C2059: 構文エラー : '::'

ずっく 2002/11/06(水) 15:12:53
#import "C:\Program Files\Microsoft Office\Office\MSO9.DLL"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files\Microsoft Office\Office\EXCEL9.OLB" \
  rename("DialogBox", "DialogBoxForExcel") \
  rename( "RGB", "RGBForExcel") \
  rename("DocumentProperties", "DocumentPropertiesExcel")


に変更でエラーは消えますね。

鎌倉 2002/11/06(水) 16:37:26
駄目です!
エラーや警告が消えてくれません!
しかもリビルドするたびにエラーや警告が出たり消えたりで
何がなんだか分かりません!

よく出る警告は3種類で
warning C4146: 符号付きの値を代入する変数は、符号付き型にキャストしなければなりませ
ん。
warningC4192: 'IFont' を自動的に除外し、タイプ ライブラリ 'C:\Program Files\Microsoft 
Office\Office\EXCEL9.OLB' をインポートします
warning C4192: 'IPicture' を自動的に除外し、タイプ ライブラリ 'C:\Program 
Files\Microsoft Office\Office\EXCEL9.OLB' をインポートします

たまに出るエラーは
#import "C:\Program Files\Microsoft Office\Office\MSO9.DLL"が開けません
#import "C:\Program Files\Microsoft Office\Office\EXCEL9.OLB" \が開けません

エラーなんかは特に意味が分かりません。
このファイルはあるのにないとか言われますし。

鎌倉 2002/11/06(水) 16:40:41
enum MsoMixedType
{
    msoIntegerMixed = 32768,
    msoSingleMixed = -2147483648
};←ここの部分で出る

warning C4146: 符号付きの値を代入する変数は、符号付き型にキャストしなければなりませ
ん。
のワーニングは発生頻度が高くリビルドするたびに発生します。
あと上の投稿は2回目のビルドで警告が消えたとかではなく
何もせずただリビルドを繰り返すだけでエラーや警告の数が変わってくるのです。

鎌倉 2002/11/06(水) 16:48:42
エラーの数などが変わる手順が分かってきました。

1.まずダイアログベースで新規プログラムを作成する。
2.ダイアログ.CPPの上のほうにずっくさんの6行を入れる。
3.F7を押す(エラー1つ)MSO9.DLLが開けません。
4.F7を押す(警告3つ)
5.リビルドを押す(警告1)
6.リビルドを押す(警告1)

という感じです。
エラーがF7を押しただけで消えたりって言うのは何なんでしょうか?

tib 2002/11/06(水) 17:14:06
>enum MsoMixedType
>{
>    msoIntegerMixed = 32768,
>    msoSingleMixed = -2147483648
>};←ここの部分で出る

>warning C4146: 符号付きの値を代入する変数は、
>符号付き型にキャストしなければなりません。

「〜しなければならない」と言ってるんだから、すればいいんじゃないでしょうか。

enum MsoMixedType
{
    msoIntegerMixed = 32768,
    msoSingleMixed = (signed int)-2147483648
};

これで出なくなりますか?

tib 2002/11/06(水) 17:15:54
イマイチenumで宣言しなくてはならない必然性が見えてこないので、
#define msoIntegerMixed (0x8000)
#define msoSingleMixed (0x80000000)
でもいいかも。

鎌倉 2002/11/06(水) 17:18:25
ところで今猫でも分かるページを見て勉強しているのですが
150章の始めのところから関数がずらずら並んでいて
「さて、必要な関数が揃いました」
と言っていきなりコードが出てきますが
こちらはぜんぜん準備が揃っていないようで、呼び出すことすら出来ません。
あの関数を使うための何を何処に宣言をしなければならないのでしょうか?

教えてくださいお願いします。

鎌倉 2002/11/06(水) 17:24:37
>>これで出なくなりますか?
消えません。同じメッセージが出ます。

>>#define msoSingleMixed (0x80000000)
駄目でした。

あば 2002/11/06(水) 19:47:20
> 150章の始めのところから関数がずらずら並んでいて
> 「さて、必要な関数が揃いました」
> と言っていきなりコードが出てきますが
> こちらはぜんぜん準備が揃っていないようで、呼び出すことすら出来ません。
> あの関数を使うための何を何処に宣言をしなければならないのでしょうか?

 話をうかがってますと何か『猫でも・・・』のページに不備があって思うようにいかないと言っ
てるように聞こえるのですがそれはどうも変ではないですか。

 私はあのページは頭から読み込んでいけば”初心者”にもよく分かるように説明してくれてい
るページだと思います。それこそあなたが『呼び出すことすらできません。』と言っているペー
ジですら試しに今、そのまま下のソースコードをコピーアンドペーストしてソースファイルを作
り、リソースファイルを作り、当然必要になってくるIDをresource.hに追加してビルドしてみ
たら何のことなく通りますけど・・・

 それこそワーニングだぁエラーだぁと騒ぐ前に基本的な構文を学んだほうがよろしいのではな
いでしょうか。それにうってつけなのが『猫でも・・・』のページだと思います。第一章から順番
に読破されてはいかがですか?(私もあのページはずいぶん参考にさせていただきました。)

 せっかくあれだけまとめてくれているのですから都合のいい部分だけ抜き出そうなんていうの
も失礼な様に思います。そういうのは基本的な部分は(VSのアプリケーションウィザードが吐き
出すスケルトンレベルのもの)は何も見なくても自分でコーディング出来る人のする事ではない
でしょうか。

少々気になったもので・・・横やりでした。

あば 2002/11/06(水) 20:41:22
 ちなみに今さらですが私がリソースファイルを手動で編集する時はIDE上で[ファイルを開
く]
ダイアログで、一番下の用途の[自動]となっているところを[テキスト]にしてフォルダ内の
xxx.rcをクリックしリソースファイルを開いています。

鎌倉 2002/11/07(木) 09:12:15
1.DdeInitialize関数でDDEを初期化します。
2.DdeConnect関数で通信開始。
3.DdeClientTransaction関数でトランザクションをサーバーに転送
4.DdeGetData関数などでデータを取得
5.DdeDisconnect関数で通信終了
6.DdeUninitialize関数でDDEアプリケーションではなくなったことを
  サーバーに通知

上記のような猫のページ150章の1〜6という手順を踏むにあたって
1手順のDdeInitialize関数を使うにはどうしたらいいかだけでいいので
教えてください。

今までやったところはMFCでダイアログベース新規作成をしました。
そこから先が分かりません。

お願いします。

鎌倉 2002/11/07(木) 09:32:42
もう1つ質問です。
あばさんのいうとおりもう一度1章から読んでみようと思いまして
上から順にやってみたところの手順で行き詰ってしまいました。

まずVC++6.0を起動して
ファイルC++ソースファイルを選択しました。
続いて何も考えずに貼り付ければいいソースファイルを貼り付けて
F7を押したところ以下のエラーが出て駄目でした。

error C2440: '=' : 'void *' から 'struct HBRUSH__ *' に変換することはできませ
ん。(新しい動作 ; ヘルプを参照)

コンパイルの仕方が間違っているのかと思い
57章を見てみましたが、このページでコンパイルの方法を見つけることも
出来ませんでした。

何が間違っているのでしょうか?

鎌倉 2002/11/07(木) 09:34:42
すみません、1章ではなくイントロダクションでした。

君は僕の太陽暦だ! 2002/11/07(木) 10:24:04
質問攻めですねぇ。
失礼ですが鎌倉さん、問題解決のために
ご自身でどのくらい努力されました?

エラーの件も、DDEの件も、
Helpはごらんになりました?
DDEの件はHelpをよくみて、なにが足りないか
考えてみてください。
エラーの件はC2440を見てみてください。

あなたの文章からは、努力した痕跡が残念ながら
読み取れません。
(ここは文字だけのやり取りなので、もし努力を
されていても文章にでないとわからいですよね?!)
質問することは悪いことだとは思いませんが、
あまり「教えて君」になりすぎるとみんなから良い顔
はされませんよー!

あば 2002/11/07(木) 10:39:00
 基本的にあの『猫でも・・・』のページは”最初から順を踏んで読めば”分かるようにW32アプ
リケーションがベースとなっています。ので、まず参考にしたい(ソースをそのままぱくりた
い?)のであればW32アプリケーションで新規プロジェクトを生成しましょう。

 そのうえでコピペでソース、リソースファイルを作りresource.hにIDを追加すれば何も問題
なく通るはずです。(実は今の手順だと後一つ、つまずくはずなんですけどね。それはやっての
お楽しみ)

 参考にしたいと言うのなら、コンパイルが通らないと言うのなら、なぜいきなりMFCダイアロ
グベースなのですか?まず参考通りにSDKで作って見てそれこそ内容を”参考”にされて理解さ
れた上でご自分のアプリケーションモデル(ダイアログだろうとSDIだろうとMDIだろうとMFCだ
ろうと)に適用なされればいいじゃないですか。

 なぜわざわざ自分で問題を発生させるような手順を踏まれているのか私にはよく理解出来ませ
ん。

鎌倉 2002/11/07(木) 10:40:02
3ヶ月ぐらい前から悩んでいます。
それなりの努力もしているつもりです。ヘルプも見ています。
分からないことを全部書くとものすごい量になるので
要点を絞って質問しているつもりです。

http://www.kumei.ne.jp/c_lang/setvc.htm
も読んでみました。
蛇足の部分に私の直面している問題があるようです。

著者が言うには
>エラーメッセージを読めばどこをどう直せばよいかすぐにわかると思います。
とありますのでヘルプのC2440を読みました。
技術資料:: 向上した ANSI C++ への適合性を最初から読んでみましたが
具体的に私のやりたいことに当てはまるのがどの記述であるのか
読み取れませんでした。
どうしても分からない場合は問い合わせてくれとある
著者にメールを送りました(2ヶ月ほど前、返事無し)

ただ、質問がいろいろ飛んでいます。
私はイントロダクションのコンパイル方法も知りたいですが
今回一番知りたいのはエクセルファイルの操作方法です。

猫のページの解説は置いておいて、そちらを教えてください。
よろしくお願いします。

あば 2002/11/07(木) 10:51:08
> 蛇足の部分に私の直面している問題があるようです。

ふしぎですね〜。私のVC++は鎌倉さんと同じ6.0で問題なく作業出来ているんですがねぇ?
ただしSP5ですけど・・・

鎌倉 2002/11/07(木) 11:10:07
VCはSP5.0です。もちろん設定は書いてあるとおりやっています。
操作ミスでどこか見落としがないかと何回もプロジェクトを作り直しても見ました。

まったく関係ないかもしれませんが
OSはXP-プロフェッショナルです。

鎌倉 2002/11/07(木) 11:15:46
>なぜわざわざ自分で問題を発生させるような手順を踏まれているのか私にはよく理解出
>来ません。

質問の当初にあるとおり、やりたいことはダイアログのボタンでエクセル操作したいので
す。
というよりダイアログでやることにより、W32アプリケーションでは出ない
問題がここで起こるのでしょうか?

君は僕の太陽暦だ! 2002/11/07(木) 11:22:50
そういえば、以前わたしが教えた
http://www.net24.ne.jp/~kenji/p_ddeexcel/ddeexcel.html

は、参考になりませんでしたか?
ちなみにあのキーワードで検索しました?

ほかにもたくさん検索にひっかかってたと思うのですが・・・。

鎌倉 2002/11/07(木) 11:35:23
はい、もちろんそのページも全部読み
ファイルもダウンロードしてみました。
そこでも疑問が出ましたが質問は辞めておきました(膨大になるため)

まず、ファイルを落として空のプロジェクトにすべて追加して
ビルドしてみましたらエラーが2つ出ました。

error LNK2001: 外部シンボル "__endthreadex" は未解決です。
error LNK2001: 外部シンボル "__beginthreadex" は未解決です。
fatal error LNK1120: 外部参照 2 が未解決です。

とりあえず、動くプロジェクトがあればそれを検証して
自分のプロジェクトに取り組めると思うのですが、、、、

もちろん、検索に関してもやってみました。
ヤフーサイトですが、先頭に出てくるページ以外も
すべて紫になっているぐらいです。
どれを見ても理解できませんでした。

そのほかに使用したキーワードは
エクセル、excel、VC、操作、初心者、解説、サンプル、例、書籍

などを組み合わせて、ありとあらゆるページを見てきました。
私の質問は、かなり難しい問題なのでしょうか?

鎌倉 2002/11/07(木) 11:40:45
本当にとりあえず、既存ファイルでもいいのでエクセルを起動して
セルに値を入れることだけが分かればいいのですが
VCではその問題は相当レベルの高い問題なのでしょうか?

どなたかサンプルを提示していただけないでしょうか?

君は僕の太陽暦だ! 2002/11/07(木) 11:41:18
いや、空のプロジェクトをつくってファイルを
入れる必要はありません。
DdeExcel.mdp
というファイルをクリックすればいいです。
メッセージが出て、かってに変換してくれるはずです。
(あのプロジェクトはおそらく旧バージョンのVCで作られていると思います)

がんばって!もう一度トライ!

君は僕の太陽暦だ! 2002/11/07(木) 11:43:10
ん?
サンプルなら、みなさん提示されてるじゃないですか!!!!!

鎌倉 2002/11/07(木) 11:47:53
>>君は僕の太陽暦だ!様
すごい!出来ました!有難うございます!
直ちに解析してみることにします!

・・・ 2002/11/07(木) 11:57:06
またか…と思われるかもしれませんが再登場です。

>質問攻めですねぇ。
>失礼ですが鎌倉さん、問題解決のために
>ご自身でどのくらい努力されました?
君は僕の太陽暦だ!さんにこう言われても仕方ないですよね?(私も最初に言いましたけど)
ちょっと調べれば分かる事でもすぐに掲示板に書き込んでませんか?

>3ヶ月ぐらい前から悩んでいます。
>それなりの努力もしているつもりです。ヘルプも見ています。
>分からないことを全部書くとものすごい量になるので
>要点を絞って質問しているつもりです。
三ヶ月も調べて参考になるHPも探し当てられないとは考えづらいですよ…
そもそも私がHPは参照されましたか?
そのまま使えるサンプルソースが載っていたはずですが?
もし見ていたのであれば途中にあった質問(warning C4146)等は
ご自分で解決できたのではないですか?
正直今まで掲示板で貰った情報から問題を解決できないのであれば、
あばさんの言う通り、まず基本的な事を習得してからでないと
無理だと思います。
ちなみに嫌がらせではなく、助言のつもりです。
今後の事を考えたらここで一度よく考えた方がいいと思いますよ。

鎌倉 2002/11/07(木) 13:42:39
勘違いされているようですが三ヶ月間、朝から晩までエクセルについてだけ
考えていたわけではありません。
考えにくくてもみんなが・・・さんのようにレベルが高いわけでもありません。

基本を理解してから来いというのはかなりつらい言葉です・・・
質問している自分も情けなくなります。

基本とは何なのでしょう?
まず何を勉強してからここにくればよいのでしょうか?
それを教えてくれれば勉強してから再度質問してみたいと思います。
これぐらいの質問は問題ないですか?
DDCの基礎?VCの使い方?ヘルプの見かた?

エクセル操作は相当敷居の高いものなのですね・・・

鎌倉 2002/11/07(木) 13:46:33
>基本とは何なのでしょう?
>まず何を勉強してからここにくればよいのでしょうか?
>それを教えてくれれば勉強してから再度質問してみたいと思います。
>これぐらいの質問は問題ないですか?
>DDCの基礎?VCの使い方?ヘルプの見かた?

ちょっと書き方が変ですね。
今回聞きたいのはエクセル操作を実行するためには何を
勉強すればいい項目は何でしょうか?ということです。
例えばDDE通信についてとかVCの使い方についてとかヘルプの見かたを学んで来い!
とか言う回答をいただければ幸いです。

あば 2002/11/07(木) 14:06:18
 正直なところと言えばまず質問に答えてくれている皆さんの言葉が理解できるレベルになって
きた方がいいかと思います。

> 例えばDDE通信についてとかVCの使い方についてとかヘルプの見かたを学んで来い!

 ご本人冗談で書き込んだのかもしれませんが最初のDDEは別としてVCの使い方、ヘルプの見方
は当たり前でしょう。私が勘違いしていなければここはきっとVisual Studioの使い方を一から
教えてくれる通信講座ではないのでしょうから。

 そしてそれに付随して追加するとすればコンパイルエラー、ワーニングなどは自分で解決する
問題だと思います。調べれば分かることですから。それが自分で解決出来ないという事から、ま
わりの人からみればC言語の説明からしなければならないと言う状況になってしまいとてもエク
セルがどうのこうのなんてレベルまで到達するのは先のまた先となってしまうのではないでしょ
うか。

 そうなってくるとここで何が聞けるかと言うと一番最初のあなたの質問でいいのかもしれませ
ん。ただ今回の件は普通ならそれ以降の皆様のアドバイスで十分解決してしまっていたと思われ
るのです。

なぜそうならないかと言うと、あなたが言う

> VCの使い方についてとかヘルプの見かたを学んで来い!

そしてコンパイルエラー、ワーニングなどは自分で解決出来ない。

という悪循環から端を発している事に尽きると思います。

鎌倉 2002/11/07(木) 14:14:06
ひとつ気づいた点というか確認しておきたい点があります。
エクセルを操作する方法は2種類ありますよね?
COM経由で操作する方法とDDE通信経由で送信する方法で
それがごちゃごちゃになっているような気がします。
インポートするのがCOM経由で
太陽暦さんの教えてくれたURLではDDE通信の制御ということですよね?

ここまでは私の考えで合っているでしょうか?

また、別の掲示板ではCOM経由の操作が簡単であるという事を聞いたので
まずは簡単な方をやってみたいと思います。
サンプルコードが載っていたのですが
まず最初のところでインポートすらできません。
これは前の質問ですね。ここから解決お願いします。

1行目でエラー、ファイルがありません。
エクスプローラーで確認するとある。

#import "C:\Program Files\Microsoft Office\Office\MSO9.DLL"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files\Microsoft Office\Office\EXCEL9.OLB" \
  rename("DialogBox", "DialogBoxForExcel") \
  rename( "RGB", "RGBForExcel") \
  rename("DocumentProperties", "DocumentPropertiesExcel")

鎌倉 2002/11/07(木) 14:19:47
他の質問は諦めます。
上の質問だけでいいので解決方法を教えてください。

ただ1点だけです。お願いします。

鎌倉 2002/11/07(木) 14:44:34
#import "C:\Program Files\Microsoft Office\Office\MSO9.DLL"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files\Microsoft Office\Office\EXCEL9.OLB" \
  rename("DialogBox", "DialogBoxForExcel") \
  rename( "RGB", "RGBForExcel") \
  rename("DocumentProperties", "DocumentPropertiesExcel")

/////////////////////////////////////////////////////////////////////////////
// アプリケーションのバージョン情報で使われている CAboutDlg ダイアログ

class CAboutDlg : public CDialog

///////////////////////////////////////////

この6行をダイアログベースのMFCで作った
***Dlg.CPPの上の方(アプリケーション〜のコメントの上)に
書いたときにエラーがでなくなる方法だけです。

どうかお願い致します。

君は僕の太陽暦だ! 2002/11/07(木) 15:15:59
・・・さんが以前、鎌倉さんに教えてくださった3つのURLの先の
サンプルに、鎌倉さんが欲している答えと、欲している動作が出来そうな
クラスのサンプルがありましたよ。(VCからエクセルに書くって動作)
どれとはいいません。探してください。試行錯誤してください。
悩んでください。色々努力してください。
そして、今度、人に教えれるくらいにその知識を確かなものにしてくさい。

前も書いたけど、動いたら終わりではなく、なぜ動いたのか、何故ダメだったのかを
重視してくださいね。

・・・ 2002/11/07(木) 15:25:05
あぁ、言ってしまいましたか…(^_^;)
やっぱり「君は僕の太陽暦だ!」さんはいい人ですね。
私は何も言わなければ「鎌倉」さんがこの掲示板を最初から見直すかな?
とかすかな希望を抱いておりました。
結局のところ、せっかく教えた情報にすら目を通していなかったという事ですね…

君は僕の太陽暦だ! 2002/11/07(木) 15:39:16
ちょっとだけ、こつ書きましょうか。
これは我流なので、賛否両論かもしれませんが。。。

何かWeb等でサンプルが見つかったとして、その後、僕が
踏む手順(手順というかやること)

1.まず、サンプルをそのまま動かす。
2.コンパイルは通るはずだし、動きもするはず。
3.なぜ、コンパイルが通るかわからないなら、適当に
  めぼしをつけて、何行か消してみる。
  例えば、消したことによってコンパイルが通らなく
  なったんであれば、それのお陰でコンパイルは通っていたわけなので、
  そのことについてHelp、Web、書籍などで調べる。
  それでも分らなければ、こういうところで質問するのもよいかも
  しれません。
4.なぜ動いたか解析する。ステップ実行してみたり、適当に
  改造してみたりして、動きと処理を把握する。
5.動きと処理、つまり何故動いたかが把握できれば、後は
  自分のプロジェクトに処理をいれるのはそう難しくないでしょう。

デバッグのときなどで分らないことが合った時によくやる方法ですが、
小さいプロジェクトを作って怪しいところだけを動かして試してみる
というのは割とよくやる手法ですよね?!

だいたいこんな感じかな。恐らく鎌倉さんは検索にしろなんにしろコツがつかめてないんじゃ
ないでしょうか?コツさえつかんでいればいままでの情報で十分やりたいことは
達成できてると思いますよ!!

君は僕の太陽暦だ! 2002/11/07(木) 15:42:40
・・・さん、ごめんさない。
言っちゃいました・・・。

でも、あのサンプルすごいですね。感動しました。

あば 2002/11/07(木) 15:49:55
> でも、あのサンプルすごいですね。感動しました。

同感・・・

 私、基本的に技法的なことは何も知らないもんでぶつかった時にはネットの中をさまよい歩い
てる方が多いんです。いつも必要に迫られて調べまくるもので・・・

今回のサンプルもそのうちきっと役に立つ日が来るでしょう。
あっ、近々使わなければならないような気がする・・・

うん、その時は質問すればいいか!(フクロダタキニアイソウ(・・;))

鎌倉、 2002/11/07(木) 15:54:28
>あのサンプル
どれですか?
私の質問を1つくらい教えてください。

・・・ 2002/11/07(木) 16:33:12
> でも、あのサンプルすごいですね。感動しました。
私もあれを見つけた感動しました。

>私、基本的に技法的なことは何も知らないもんでぶつかった時にはネットの中をさまよい歩い
てる方が多いんです。いつも必要に迫られて調べまくるもので・・・
私も同じです。知らない事が多すぎるのでいつも懸命に調べまくってます。(^^ゞ


>どれですか?
>私の質問を1つくらい教えてください。
こうなると冗談で言っているか、もしくは場を荒らす為にワザと怒らせようとしているとしか思
えない…

tib 2002/11/07(木) 16:41:34
鎌倉さん:
>どれですか?
試してみたらいかがですか?たかが3択でしょ?
「1番目はこういう手順でビルドしたけどこういうエラーが出た、こうやって対処を試み
たが事態はこうなった。2番目は...」というような「ご自身の努力」があなたの発言から
は読みとれないのです。「膨大になるので割愛」というのなら、どこかwebサイトにでも
まとめて「私の努力の跡はここを参照」という感じにしたっていいじゃないですか。

結局最初から続いていた質問者の「教えて」という姿勢と回答者の「自助努力を」という
姿勢は最後までかみ合わないようですね。

君は僕の太陽暦だ! 2002/11/07(木) 16:53:38
鎌倉さん
こういう言葉をご存知ですか?
「おなかのすいた子どもに、一匹の魚を与えれば、その日だけの食べ物にしかなりません。しか
し、魚のとり方を教えれば、一生の食べ物をあげたことになります。」


説教じみて聞こえるでしょうが、今あなたの質問に
FAQ的に答えを示すことは可能です。
しかしそれでは、一匹の魚をあたえたことにしかなりません。
色々苦労して、覚えたことじゃないと印象が薄くてすぐ忘れてしまい、
あなたのスキルになりません。
だから、みなさん、直接答えをいわず、ヒントやコツなどをしめしているのですよ!
その点を「意地悪」とは勘違いなされないでください。
この件に関しては、先に挙げられているサンプルに答えあるのですから、それは
ご自分で探されてください。そして解析して、技術を習得してください。

たくさん悩んで、苦労して目的を達成して、来年とかもし後輩が同じようなことで
悩んでいたら教えれるくらい理解を深めましょうよ!

walQ 2002/11/07(木) 21:41:22
大変勉強になりました。
52件は長かったけど。
それと、エディターxyzzyていいですよね。

ずっく 2002/11/07(木) 22:15:38
忙しくて見ない間に、すごい数の質疑応答ですね
#import ですが、エラーがでたそうですが、こちらではコンパイルは通ります。
なぜなんでしょうね?

ダイアログベースのMFCで作ったそうなので、試してください。
#import は使いません。

ダイアログベースのMFCの新しいプロジェクトをつくる。
今までのはプロジェクトが変になっているかも、必ず新しいプロジェクトで、
そのとき、オートメーションにチェックを入れる。

クラスウィザードのクラスの追加タイプライブラリからで、
"C:\Program Files\Microsoft Office\Office\EXCEL9.OLB" を選んで

_Application
Range
_Worksheet
Workbooks
Worksheets

など必要なものを選ぶ。
この時点ではコンパイルは通りますか?
もしコンパイルエラーがでるなら、インストールし直しかもです。

僕もあまり詳しくないので、はんと、不完全なコードで、不必要なもの、足りないもの
あると思います。
動きも実際変ですし。参考になれば、幸いです。


#include "excel9.h"

void CExcel9Dlg::OnButton1() 
{
    // TODO: この位置にコントロール通知ハンドラ用のコードを追加してくださ
い
    CoInitialize(NULL); 

    CLSID clsid;
    ::CLSIDFromProgID(L"Excel.Application.9", &clsid);
    _Application    m_App;
    LPDISPATCH    pDisp;
    LPUNKNOWN    pUnk;
    if(::GetActiveObject(clsid, NULL, &pUnk) == S_OK) {
        VERIFY(pUnk->QueryInterface(IID_IDispatch,(void**) &pDisp) 
== S_OK);
        m_App.AttachDispatch(pDisp);
        pUnk->Release();
    } else {
        if(!m_App.CreateDispatch("Excel.Application.9")) {
            MessageBox("Excel 2000 Error !!");
        }
    }
    ShellExecute (NULL, "open", "test.xls", NULL, NULL, SW_SHOW) ;

    LPDISPATCH    pRange, pWorkbooks;
    Workbooks    m_Workbooks;
    Worksheets    m_Worksheets;
    _Worksheet    m_Worksheet;
    Range        m_Range;

    CWnd* pWnd = CWnd::FindWindow("XLMAIN", NULL);
    if (pWnd != NULL) {
        pWnd->ShowWindow(SW_SHOWNORMAL);
        pWnd->UpdateWindow();
    }

    m_App.SetSheetsInNewWorkbook(1);
    VERIFY(pWorkbooks = m_App.GetWorkbooks());
    m_Workbooks.AttachDispatch(pWorkbooks);

    LPDISPATCH pWorksheets = m_App.GetWorksheets();
    ASSERT(pWorksheets != NULL);
    m_Worksheets.AttachDispatch(pWorksheets);
    LPDISPATCH pWorksheet = m_Worksheets.GetItem(COleVariant((short) 1));

    m_Worksheet.AttachDispatch(pWorksheet);

    VERIFY(pRange = m_Worksheet.GetRange(COleVariant("a1"), COleVariant
("a1")));
    m_Range.AttachDispatch(pRange);
    m_Range.SetValue(COleVariant("testA1"));

    m_Range.ReleaseDispatch(); 
    m_Worksheet.ReleaseDispatch(); 
    m_Worksheets.ReleaseDispatch(); 
    m_Workbooks.ReleaseDispatch();
    m_App.ReleaseDispatch();

    CoUninitialize();
}

wood 2002/11/08(金) 08:01:29
woodです、

エクセルへの書き込みに興味を今まで持っていなく、MFCでODBC
プログラミングのほんの初歩を学習するために、2年くらい費やして
ようやくシングルドキュメント・シングルビューから
シングルドキュメント・複数ビューの利用が出来るようになったばかり
で、これ以外SDKなど全然わからず、意識なくどこかでSDKを使用
していて、本業が忙しいとVC/C++の学習を怠けながらやっている
わたしのような話について行けそうに無い、私の勝手な評価です

わかりやすそうに見えるけど目的とするMFCにあっていない
http://www.kumei.ne.jp/c_lang/

わかりにくい
http://www.jsdlab.co.jp/~kei/studio/excel/index.html
http://www1.neweb.ne.jp/wa/junneko/tec/tec001.html
http://www1.plala.or.jp/knambo/vc/usemore.html#EXCEL

目的にあってなさそう
http://www.kumei.ne.jp/c_lang/setvc.htm
MFCで作ろうとしているのにSDK関連みて理解可能なのでよしょうか?

目的達成できそう
http://www.net24.ne.jp/~kenji/p_ddeexcel/ddeexcel.html

---------------------------------------------------------------------
私の勝手な疑問

一番最初に書かれてある
>MFCダイアログベースに作られたボタンを押すと

鎌倉さんは、皆さんにMFCを主体としたプログラミングをしたいのか
SDK主体としたプログラミングしたいのか
ここまでで強調したことありますか

皆さんのお答えは、MFC,SDKの回答が両方混在していてどの技法を
中心に質問されているのかわかりません

何でもかんでも意見取り込んで理解可能な方なのでしょうか?
参考になる意見、参考にならない意見にはっきり回答すべきではないでしょうか


・・・さんの 2002/11/05(火) 17:02:32
の回答におもいっきり回答したところから、SDKでのプログラミングしたいのかな?
に皆さんを思わせていませんか?

鎌倉さんの 2002/11/07(木) 11:47:53
>すごい!出来ました!有難うございます!
>直ちに解析してみることにします!
これはMFCプログラミングみての話でしょう

鎌倉 2002/11/07(木) 14:14:06
なんでわざわざSDK質問しなきゃいけないの?

こんなんで皆さんを混乱に招いていませんか?

的は何?、エクセルを自分のAPから起動して、起動したアプリがエクセルの
1.新規作成したブックの、特定シートの、特定セルへ値を書き込みたいのか?
2.既存のXLSを呼び出す制御をさせ特定シートの、特定セルへ値を書き込みたいの
か?

どちらなのでしょうか

一番最初に書かれてある

>file_name = "C:\\test.xls" ;
これはエクセルを起動すると言うより、拡張子XLSを持ったファイルデータが関連付
けされている、アプリ(エクセル)が起動されるように設定できた程度ではないのです
か
アプリとしてのエクセルはEXEのはずですが、私の疑問は待ちがっているのでしょう
か

鎌倉 2002/11/08(金) 09:08:20
というより、MFCしかやったこと無いので
SDKって良く分かってません。
質問が混乱を招いてしまったことはすまなかったのですが
Woodさんの言うとおり私はMFCで教えてほしいと最初に言っています。
MFCとSDKの違いをよく把握しておらず、すべての回答が
MFCでも導入可能なものと考えてしまい、反応してしまっていたので
誤解を招いたのかもしれません。

とりあえず今日1日掛けて、MFCのエクセル操作を学びたいと思っています。
SDKの文法はMFCでは流用不可能ということが分かっただけで1つ進歩です。

鎌倉 2002/11/08(金) 09:23:17
仕切りなおし!
最終的な目標を書きます。(今回の質問はセルに書き込む方法についてした)
分かりにくかったら指摘してください。

ベースはVC++6.0にてMFCを使用したプログラミングになります。
新規プロジェクト作成でダイアログベースにてボタンを1つ作成します。
ボタンを押すと指定フォルダにエクセルシートを新規作成して
セルに値を代入します。
またセルによっては、フォント、背景色、文字色変更なども行います。

出来るかどうかはわかりませんが、私の持っている動作イメージとしては
エクセルクラスを取得して(仮にCexcelとする)下のようなメンバー関数を扱えるとベス
トであると思っています。

Cexcel.SetTextCell(row,col,100) //列=ROW、行=COLに100が代入される。
Cexcel.ChengeBackColor(row,col,ox000000) //列=ROW、行=COLの背景色が変更
Cexcel.ChengeMojiColor(row,col,ox000000) //列=ROW、行=COLの文字色が変更

またエクセルは起動せずに書き込めたりすると非常にベストです。
【そこで質問】
・Cexcelのようなクラスはあるのでしょうか?
・あるとしたら呼び出し方はどうすればいいのでしょうか?
・それはエクセルを起動せずにアクセスできるものなのでしょうか?
・関数の一覧はどのヘルプに載っているのでしょうか?

こんなところです。

///////////////////////////////////////////////////

上の目的を達成するために
ためになったのは(ズックさんのアドバイスはこれから試しますが・・・)

>目的達成できそう
http://www.net24.ne.jp/~kenji/p_ddeexcel/ddeexcel.html

のHPだけです。
仕組みはかなり難解でしたが予め用意してあった関数を使い
セルの値を代入できるようになりました。

あば 2002/11/08(金) 10:10:52
> SDKの文法はMFCでは流用不可能ということが分かっただけで1つ進歩です。

 この件に関しては分かったと終わらせない方がのちのちのためだと思いますよ。(このスレッ
ドで続けろと言う意味ではないですけど。)不可能じゃないですもん。MFCから直接API呼ぶ事あ
りますよね?頭に::つけて。

MFCはAPIのただのラッパークラスなんですから。

以下はwoodさんに

> わかりやすそうに見えるけど目的とするMFCにあっていない
> http://www.kumei.ne.jp/c_lang/

 確かにそうですね。でも分かりやすく事実ビルドしてみりゃ問題なく通り動作する訳ですから
後は肝心となるDDE関係の関数の使い方を解析すればいいだけでは?このときの問題になったの
はご本人がコンパイルエラーになったと言ってそれを解消する事ができず投げ出してしまった事
ではないのですか?『エラーが消せないからエラーが出ない他ののサンプルをくれ。』じゃ誰し
もうんざりするのではないですか?大体にしてご本人が150章だと言っていたので私も気づかず
直接150章を見に行ってしまいましたが後で見たら151章にちゃんとダイアログベースでセルの
位置とデータを入力すればエクセルにデータを書き込めると言うそのままの例があったではない
ですか。(SDKですけどね)

> わかりにくい
> http://www.jsdlab.co.jp/~kei/studio/excel/index.html
> http://www1.neweb.ne.jp/wa/junneko/tec/tec001.html
> http://www1.plala.or.jp/knambo/vc/usemore.html#EXCEL

 そんな事は答えてくださっている皆さんにしてみれば相手のスキルレベルなんて把握出来よう
筈もありませんからしかたのない事でしょう。分かりにくかろうと自分では全く検索等で調べる
事ができなかった状態のところに一筋の光の様に参考例を示していただいているのですからそれ
を知ろうとする努力をするべきではありませんか?はっきりいって『分かりにくい』は失礼でし
ょうね。まぁ本人が言ってる訳ではないですからいいですけど。

 流れを見ていると単純に『ダウンロードしてビルドしてエラーワーニングも何も出ずそのまま
実行出来るサンプルをくれ。』と言っているようにしか聞こえませんけど違いますか。そのよう
なサンプルがあったとして果たしてそれは”参考”にしているのでしょうか?ただ動いてくれさ
えすれば後はそれを流用するだけで動作を理解し追求する事などするはずもないような様子に取
れますが。

> 目的にあってなさそう
> http://www.kumei.ne.jp/c_lang/setvc.htm

 これは本人がエラーでぶつかってその時に示されたリンクですよね?目的にあっていないと言
うのはなんの意味ですか?

> MFCで作ろうとしているのにSDK関連みて理解可能なのでよしょうか?

 MFCで作っているからといってSDKを理解出来ないかどうかなど誰が判断出来るのですか?そ
れよりもMFCで探したけれども参考例としてこれはいいなと思ったら示してあげるのは迷惑な事
なのですか?いちいち質問者の方に『あなたはSDKを理解出来ますか?』と聞いてから解答して
あげなければいけないのですか?

ずいぶんと過保護なご意見ですね。

PS: 私自身、始めた時は右も左もわからずにMFCから始めてしまいました。後からSDKという形
式があることを知りなるほどと思ったものです。でも新ためて見てみればそんなに理解不能と思
えるようなものではないと私は感じたのですが?実にその時参考にさせてもらったのが『猫で
も・・・』のページでした。それ以降は途中まで読んでSDKの基本路線は分かったのでやめてしま
いましたが。(三日坊主)

 ただ思えば私はそれこそ切羽詰まった場合はネットなどで近道をするのではなく専門書を自腹
を切って買いに走っていたという事です。事実ここで解答してくださっている皆さんは大半はそ
うして自分で学んでスキルアップをして来た方々ではないかと思います。そういった方々がする
アドバイスというのは直接の解答ではなくどのようにすれば解答にたどりつけるかというヒント
を与えてくれるだけだと思います。

 なぜなら自分がたどってきた道筋を質問者にもたどって欲しいからと思っているからに違いな
いでしょう。

その方が実際身につくと信じているし本人の為だと思っているからです。

ただいじめられていると思うようじゃただの被害妄想ですよ。

鎌倉 2002/11/08(金) 10:13:12
ずっくさんのソース動きました!
有難うございます。
ただ、ものすごく難しいんですね・・・

これ、何をしようとしているのか教えてもらえませんか?
もう少し簡単にならないでしょうか!

2002/11/08(金) 10:26:35
> ・Cexcelのようなクラスはあるのでしょうか?

http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/vclib/html/_mfc_hierarchy_chart.asp

2002/11/08(金) 10:32:11
改行入っちゃうな?
続けていれて。

http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/vclib/html/_mfc_hierarchy_chart.asp

tib 2002/11/08(金) 10:50:41
これならどうでしょう?
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_mfc_hierarchy_chart.asp

2002/11/08(金) 11:15:10
m(__)m

鎌倉 2002/11/08(金) 14:52:38
>これならどうでしょう?
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_mfc_hierarchy_chart.a
sp

そのURLは何なのでしょうか??
見てもエクセルらしいクラスは載ってませんが・・・?

2002/11/08(金) 15:34:54
じゃぁ無いんだろ。
そのチャート、VS買ったならでっかい紙で入ってるはずだろ。
目の前に広げて見てたまには見れば?

鎌倉 2002/11/08(金) 15:45:39
> ・Cexcelのようなクラスはあるのでしょうか?

>http://www.microsoft.com/japan/msdn/library/default.asp?
>url=/japan/msdn/library/ja/vclib/html/_mfc_hierarchy_chart.asp

>見てもエクセルらしいクラスは載ってませんが・・・?

>じゃぁ無いんだろ。

・・・・・。

tib 2002/11/08(金) 15:48:52
>>じゃぁ無いんだろ。
>・・・・・。
仮にそういうクラスがあったとしたら、そういうクラスを多用するサンプルを皆さん提示
してくれいただろう、とは思わなかったのでしょうか。

鎌倉 2002/11/08(金) 18:58:57
[[解決]]
1日考えたけど駄目でした。
土日で考えてきてどうしても分からなかった点だけ月曜日に聞かせて頂こうと思います。
その際はよろしくお願い致します。

また、開くのがすごい重いため、一回閉じます。
『まだ、未解決です。』

wood 2002/11/08(金) 19:22:32
ご回答者の皆様には大変失礼いたしました
あば さん ご指摘ありがとうございます
>ずいぶんと過保護なご意見ですね。
ごもっとも

ずっくさんのソースを見て
>これ、何をしようとしているのか教えてもらえませんか?
>もう少し簡単にならないでしょうか!

こんな回答しか出来ないのですか

ふざけんな!!
簡単になるかどうかは自分で考えろ!
ここまでソース提供されかつプロジェクトの作り方まで丁寧に
注意事項まで記述してあるんだよ
ましてや
>何をしようとしているのか
だって!

何をしているかわかっていないやつに、どうやったら
「簡単にしてくれ」なんて言葉だせるんだ!

自分が何を質問しているかわかっているんですか?、内容そのままじゃないですか

最低限 ずっくさんのソースをみて何をしているのか自分で解析してから
質問あげろ、MSDNくらいもっているんだろ!
クラス、変数宣言 全部調べてからしろよ!

>そのとき、オートメーションにチェックを入れる。
何のためにこれやってるか、わかってのか!

自分で作る姿勢くらいみせてみろ、今までどう見ても、
「誰かに作らせただそれを利用しよう」
そんな風にしか見えません

ほかの人も何度も同じ事言っているでしょ!!

鎌倉 2002/11/10(日) 22:22:28
>wood
とりあえず使用上の注意を読んでよ
>・個人への批判・・・
のところね。
理解できないなら、ここにくる必要ないよ。

あー、あと他の人に迷惑なんでこれ以上文句があったら
雑談掲示板のほうに新規投稿してください。

以下Woodの返事は一切不要

鎌倉 [E-Mail] 2002/11/10(日) 22:24:24
雑談に乗せるのも良くないな
私への批判でしたら、直接メールお願い

切れるのもいいけど、場所を考えてよ・・・

トスポ 2002/11/11(月) 03:04:23
なぜキレられたかを考えないんだな・・。

>とりあえず使用上の注意を読んでよ
>>・個人への批判・・・
>のところね。
>理解できないなら、ここにくる必要ないよ。

うん。そりゃあキレるのは良くないけどね、wood氏の普段の活躍を見る限り
気持ちは理解出来るよ。

君も「使用上の注意」のこれを読んだのかな?
>■誰もレスポンスをしてくれない。すぐ批判されてしまう方へ。

最後に

>以下Woodの返事は一切不要

他の人からのレスも期待出来ない気がする。
まあここの人達は優しいからね・・どうなることやら。

wood 2002/11/11(月) 06:25:47
>切れるのもいいけど、場所を考えてよ・・・
こう受け取りましたか

>以下Woodの返事は一切不要
勝手に発言しているバカですから、無視してやってください

>発言される前に「使用上の注意」を必ずお読み下さい。
ここにも黙殺してくださいって書いてあったでしょ

当然この答え解決してから戻ってきたんでしょうな
>最低限 ずっくさんのソースをみて何をしているのか自分で解析してから
>質問あげろ、MSDNくらいもっているんだろ!
>クラス、変数宣言 全部調べてからしろよ!

ご自身こんな書き込みしたんでしょ

>鎌倉 2002/11/07(木) 13:46:33
>>基本とは何なのでしょう?
>>まず何を勉強してからここにくればよいのでしょうか?
>>それを教えてくれれば勉強してから再度質問してみたいと思います。
>>これぐらいの質問は問題ないですか?
>>DDCの基礎?VCの使い方?ヘルプの見かた?
>ちょっと書き方が変ですね。
>今回聞きたいのはエクセル操作を実行するためには何を
>勉強すればいい項目は何でしょうか?ということです。
>例えばDDE通信についてとかVCの使い方についてとかヘルプの見かたを学んで来い!
>とか言う回答をいただければ幸いです。

いい題材「ずっく さんのソース」があったので回答したつもりでしたけど

それにこのスレッド、解決済みマーク入っていますから、回答しなくてもいいんでしょ

Yamashita Goro 2002/11/17(日) 19:02:43
もう解決されているみたいですけど、過去ログのデータベースとして。
CDaoDatabase はどうですか。起動しないですみますよ。
※過去ログあまり読んでないんで、他の方のレスと重複してしまったらすいません。

CDaoDatabase Database;
try
{
 CString Path( "C:\\myfile.xls" );
 Database.Open( Path , FALSE, TRUE, "Excel 8.0;");

 CDaoRecordset Recordset( &Database );
 CString SQLQuery("select * from [");
 SQLQuery +="Sheet1$]";
 Recordset.Open(dbOpenSnapshot, SQLQuery );
 short fields = Recordset.GetFieldCount( ), nIndex;
 for ( nIndex = 0; nIndex < fields; nIndex++ )
 {
  CDaoFieldInfo fieldinfo;
  Recordset.GetFieldInfo( nIndex, fieldinfo );
 }
 Recordset.MoveLast();
 long records = Recordset.GetRecordCount( ) ;
 for ( ; records > 0; records-- )
 {
  for ( nIndex = 0; nIndex < fields; nIndex++ )
  {
   COleVariant strValue = Recordset.GetFieldValue( nIndex );
  }
  Recordset.MovePrev();
 }
 Recordset.Close();
 Database.Close();
}
catch ( CDaoException* e )
{
 e->Delete();
}


※Database.Open( Path , FALSE, TRUE, "Excel 5.0;");
の"Excel 5.0;"はExcelのバージョンによって以下のように変えてください。
Excel 3.0 "Excel 3.0;" 
Excel 4.0 "Excel 4.0;" 
Excel 5.0/Excel 95 "Excel 5.0;" 
Excel 97 "Excel 97;" 
Excel 2000 "Excel 8.0;"

Yamashita Goro 2002/11/17(日) 19:08:18
ああーっ!!

>鎌倉 2002/11/08(金) 09:23:17
>Cexcel.ChengeBackColor(row,col,ox000000) //列=ROW、行=COLの背景色が変更
>Cexcel.ChengeMojiColor(row,col,ox000000) //列=ROW、行=COLの文字色が変更

CDaoDatabase 使ったら背景色や文字色の変更なんてできませんね。
失礼しました。

古いスレッドには追加発言できません。