エクセルシートの操作方法 – プログラミング – Home

エクセルシートの操作方法
 
通知
すべてクリア

[解決済] エクセルシートの操作方法

固定ページ 1 / 6

鎌倉
 鎌倉
(@鎌倉)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

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

処理の流れはこんな感じです。
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インストール


引用未解決
トピックタグ
鎌倉
 鎌倉
(@鎌倉)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

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


返信引用
・・・
 ・・・
(@・・・)
ゲスト
結合: 23年前
投稿: 16
 

「猫でもわかるプログラミング」 に載ってます。
http://www.kumei.ne.jp/c_lang/

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


返信引用
鎌倉
 鎌倉
(@鎌倉)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

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

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

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


返信引用
・・・
 ・・・
(@・・・)
ゲスト
結合: 23年前
投稿: 16
 

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


返信引用
君は僕の太陽暦だ!
 君は僕の太陽暦だ!
(@君は僕の太陽暦だ!)
ゲスト
結合: 23年前
投稿: 17
 

http://www.net24.ne.jp/~kenji/p_ddeexcel/ddeexcel.html
これは参考になりますか?

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

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

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


返信引用
・・・
 ・・・
(@・・・)
ゲスト
結合: 23年前
投稿: 16
 

とても優しい方がいらっしゃったようですので、
もう調べないでしょうからとりあえず答えを。
結構簡単に見つけられるんだけどなぁ…

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


返信引用
君は僕の太陽暦だ!
 君は僕の太陽暦だ!
(@君は僕の太陽暦だ!)
ゲスト
結合: 23年前
投稿: 17
 

ありゃ、・・・さんの書き込みをみないで検索結果を
書いてしまいました。
・・・さん、ごめんなさい。

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

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


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

VC++ & EXCEL API
こんなキーワードでプロジェクト付のソースを公開しているの
見つけること出来ましたよ

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


返信引用
鎌倉
 鎌倉
(@鎌倉)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

必死で猫を読んでみたらなんとなく分かってきました。
1点分からない点がありましたので、お聞きします。

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

お願いします。


返信引用
君は僕の太陽暦だ!
 君は僕の太陽暦だ!
(@君は僕の太陽暦だ!)
ゲスト
結合: 23年前
投稿: 17
 

VC以外のほかのエディターで、開いてみる。


返信引用
鎌倉
 鎌倉
(@鎌倉)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

>> 君は僕の太陽暦だ!
ありがとうございます。出来ました。

ちょっと他のところで調べてみて使うにあたって
エクセル関連をインポートする必要が在るということがわかりました。
そこで下の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: 構文エラー : '::'


返信引用
ずっく
 ずっく
(@ずっく)
ゲスト
結合: 23年前
投稿: 2
 

#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)

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


返信引用
鎌倉
 鎌倉
(@鎌倉)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

駄目です!
エラーや警告が消えてくれません!
しかもリビルドするたびにエラーや警告が出たり消えたりで
何がなんだか分かりません!

よく出る警告は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 \が開けません

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


返信引用
鎌倉
 鎌倉
(@鎌倉)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

enum MsoMixedType
{
msoIntegerMixed = 32768,
msoSingleMixed = -2147483648
};←ここの部分で出る

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


返信引用
固定ページ 1 / 6

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました