VC++ で 複数にわたるExcelシートを加工する
プログラミングは可能でしょうか。
例えば、3つあるExcelファイルを1つにまとめたり、
シートを分割したり、グラフを作成したりとか。

その他の方法でも、比較的実現可能なら教えてください。
マクロはほとんど触ったことはありません。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ご質問の事柄をC++ではやったことはありませんが、


VB、VBAだと、EXCEL単体でできることは
ほぼすべて簡単にプログラムできます。

ただし、EXCELのオブジェクトライブラリの
『Excel VBAリファレンス』が手元にないと、
時間を浪費するだけでまず不可能だと思います。
    • good
    • 0
この回答へのお礼

他に回答がないところを見るとどうやらできないみたいですね・・・なんか外部パッケージとか用意したら出来
そうな気もしたのですが。
やはりVBAで無難にやることにします。
回答誠にありがとうございました。

お礼日時:2003/10/26 20:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qrequiredの読み方と発音

会話の中で「required」という単語が通じないことがよくあります。
「required」は何て読むのですか?自分が間違ってるようで心配です。
またアクセントの位置をご教授願えないでしょうか?

Aベストアンサー

「リクワイヤド」ですね。

Rの発音の仕方はとにかく舌が口のどこにも当たらないようにすることと、最後の「ド」の発音ははっきりと発音してはいけません。心なしに小声で(なんじゃそりゃ)ドゥ、と言う感じです。

アクセントの置き場所は、「ワイヤ」の部分です。

「リク(舌をどこにもつけずに)ワイヤ(少々大声で)ドゥ(心なしに小声で)」

という感じです。って難しくなってしまいましたが、
これです!!

QVC++ 2008

VC++2008(Express Edition)であるボタンを押したときの動作についてですが
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
richTextBox1->Text = "測定開始\n";
func();// ある測定の関数です
richTextBox1->Text += "測定終了";
}
上記のようなプログラムが実行されたとき、button1_Click()を抜けるまでテキストボックスに
測定開始
測定終了
の表示がされませんが何故でしょう?
func()自体の処理に1分程かかるため、ボタンを押してから1分程経たないとテキストボックスには何も表示されない状態です。
リアルタイムで表示することは可能でしょうか?

Aベストアンサー

> の表示がされませんが何故でしょう?

メッセージループが実行されていないからです。


> リアルタイムで表示することは可能でしょうか?

何をもってリアルタイムとするかは議論が分かれそうですが……。

今回の問題であれば,通常はマルチスレッドの出番です。
手っ取り早くすますのであれば,
・FormにBackgroundWorkerを貼り付ける
・button1_Clickに,"測定開始"の設定と,button1の再入禁止設定,貼り付けたBackgroundWorkerのRunWorkerAsyncメソッドの呼び出しコードを書く
・BackgroundWorkerのDoWorkイベントのハンドラにfuncの呼び出しを書く
・BackgroundWorkerのRunWorkerCompetedイベントのハンドラに"測定終了"の追記コードとbutton1の再有効化コードを書く
とすれば,DoWorkの中だけ別スレッドで走ってくれます。
# DoWorkの中からコントロールを扱わないように注意する事くらいか。

MSDN: BackgroundWorker クラス (System.ComponentModel)
http://msdn.microsoft.com/ja-jp/library/system.componentmodel.backgroundworker.aspx
MSDN: BackgroundWorker コンポーネント
http://msdn.microsoft.com/ja-jp/library/c8dcext2.aspx
Blog: とあるコンサルタントのつぶやき : Part 4. Visual Studio によるマルチスレッドアプリの開発
http://blogs.msdn.com/nakama/archive/2009/04/09/part-4-visual-studio.aspx

> の表示がされませんが何故でしょう?

メッセージループが実行されていないからです。


> リアルタイムで表示することは可能でしょうか?

何をもってリアルタイムとするかは議論が分かれそうですが……。

今回の問題であれば,通常はマルチスレッドの出番です。
手っ取り早くすますのであれば,
・FormにBackgroundWorkerを貼り付ける
・button1_Clickに,"測定開始"の設定と,button1の再入禁止設定,貼り付けたBackgroundWorkerのRunWorkerAsyncメソッドの呼び出しコードを書く
・BackgroundWor...続きを読む

Q英文法 is required to be accompanied by

英語で下記の様な文章は文法的に正しいでしょうか。

All documents are required to be accompanied by the attachment sheet below.

公式の文書としての文章なのですが、
are required の後に to be と受け身が続くのが
不自然に感じたので確認したい次第です。

どうぞ宜しくお願いします。

Aベストアンサー

一番様の回答通り、文法的にも間違い有りませんし公式文書では頻用されますが、普通の文章では余りお目に掛かりません。 命令口調ではない堅苦しくない普通の文章(例:商用文での依頼文等)では、、


All the documents are to be accompanied by the attachment sheet below.

と「required」と省略しても構いません。

公式文では、別に持って回ってこんな書き方もあります。

It is required that all the documents are accompanied by
the attachment sheet below.

QVC++ 2008 Form プログラミング

VC++ 2008 Form プログラミングで
添付した図のような、Formのウィンドウを上下2分割したいのですが
どこをどう操作すればよろしいでしょうか。
分かる方がいらっしゃいましたらご指導の程よろしくお願い致します。

Aベストアンサー

Formアプリケーションだったら、コンテナカテゴリのSplitContainerを配置して、OrientationプロパティをHorizontalにする……かな?
あなたがご要望の機能かどうかは実際にためしてみてください。

QWin32.VB.svhとは

最新のSpy-bot S&Dでスキャンしてみたところ
Win32.VB.svhというマルウェアが4つ検出されました。

Win32.VB.svh: [SBI $7E9215BC] 設定 (レジストリ変更, fixed)
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run\CTFMON.EXE

Win32.VB.svh: [SBI $7E9215BC] 設定 (レジストリ変更, fixed)
HKEY_USERS\S-1-5-19\Software\Microsoft\Windows\CurrentVersion\Run\CTFMON.EXE

Win32.VB.svh: [SBI $7E9215BC] 設定 (レジストリ変更, fixed)
HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Run\CTFMON.EXE

Win32.VB.svh: [SBI $7E9215BC] 設定 (レジストリ変更, fixed)
HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Run\CTFMON.EXE

一応削除(検疫?)はされたようですが、レジストリ変更などと書いてあって心配です。
タチの悪いマルウェアなのでしょうか?

最新のSpy-bot S&Dでスキャンしてみたところ
Win32.VB.svhというマルウェアが4つ検出されました。

Win32.VB.svh: [SBI $7E9215BC] 設定 (レジストリ変更, fixed)
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run\CTFMON.EXE

Win32.VB.svh: [SBI $7E9215BC] 設定 (レジストリ変更, fixed)
HKEY_USERS\S-1-5-19\Software\Microsoft\Windows\CurrentVersion\Run\CTFMON.EXE

Win32.VB.svh: [SBI $7E9215BC] 設定 (レジストリ変更, fixed)
HKEY_USERS\S-1-5-20\Software\Micro...続きを読む

Aベストアンサー

うちも昨日のUPDATE後、スキャンしたら同じようにWin32.VB.svhが
4つでました。
Win32.VB.svhをキーワード検索してみたら、XPマシンだとこれが検出されているようですよ。
(○CHのSpybotスレットに、XPを複数もっている方がスキャンしたところすべてのマシンで検出されたと書き込みしている方がいました)

おそらくSPYBOTの誤検出じゃないでしようか?
先週のUPDATEでもバグがあったし。。。
うちはしばらく様子見です。

QVC++ windows 64ビットプログラミング

VC++でのwindows 64ビットプログラミングを勉強しています。
以下のMSDNのページにたどり着き、サンプルプログラムを作りながら確かめているのですが、
http://msdn.microsoft.com/ja-jp/library/3b2e7499.aspx

以下の記述の意味がよく分からないので、教えてください。

---ここから---
int と long は、64 ビット Windows オペレーティング システムでは 32 ビット値です。 64 ビット プラットフォーム用にコンパイルする必要があるプログラムでは、ポインターを 32 ビット変数に割り当てないように注意してください。 ポインターは、64 ビットのプラットフォームでは 64 ビットなので、ポインターを 32 ビット変数に割り当てると、ポインター値を切り捨てることになります。
---ここまで---

intとlongのサイズが4バイトでこれは32ビットのときと変わらず、
ポインタのサイズが8バイトに拡張された(これはメモリアドレスが64ビットになったのだから当然)のは理解しているのですが、
http://msdn.microsoft.com/ja-jp/library/94z15h2c.aspx

「ポインターを 32 ビット変数に割り当てる」というのがどういうこと(どういうコード)なのかがわかりません。

こんなことかなとも思ったのですが、これはありえない記述ですよね

===============
int a = 0;
int *pt = NULL;

a = pt;//32ビット変数にポインタを割り当て???(というよりポインタを代入か)

error C2440: '=' : 'int *' から 'int' に変換できません。
1> この変換が可能なコンテキストはありません。
===============

32ビットでは問題にならなくて、64ビットになったから問題になって、どう変えれば問題なくなるのか
という感じで説明していただけると分かりやすいのかな思います。

よろしくお願いします。

VC++でのwindows 64ビットプログラミングを勉強しています。
以下のMSDNのページにたどり着き、サンプルプログラムを作りながら確かめているのですが、
http://msdn.microsoft.com/ja-jp/library/3b2e7499.aspx

以下の記述の意味がよく分からないので、教えてください。

---ここから---
int と long は、64 ビット Windows オペレーティング システムでは 32 ビット値です。 64 ビット プラットフォーム用にコンパイルする必要があるプログラムでは、ポインターを 32 ビット変数に割り当てないように注意してく...続きを読む

Aベストアンサー

>a = pt;//32ビット変数にポインタを割り当て???(というよりポインタを代入か)

その理解であってますよ。
実際のケースでは

a = (int)pt;

とするでしょうけど。
union {
int value;
void *ptr;
} a;
とすべき所を面倒がってintだけで済ませてしまうような場合ですね。

Qrequiredとessentialの違いを教えて下さい。

「required」と「essential」にはともに「必須の」という意味がありますが、これらのニュアンスの違いをご教授願います。

Aベストアンサー

required は「要求さている」必須
大学の選択科目に対する必須科目 required subjects

essential 基本的な意味です

形容詞は類似語が非常に多い品詞で決定的な違いが意味上ない場合も
ありますが、名詞との結合関係が決まっている組合わせ語とあります。
見分けるのは極めて難しく、英語国民でも完全に掌握はできません。
合成語を創造した専門用語の形容詞、あるいは口癖による組み合わせの仕方もあります。私たちも言葉の経験から好みでいつも同じ組み合わせで使うことはよくありますよね。
私は日本語の講師です。必要に応じて英語対訳辞書を仕事上作成しています。その際、できるだけ多くのネイティヴ研究者と連絡を取りながら適切な対訳語を決めていますが、中には違いはないと言う語も多くあります。ちなみに、質問の単語の類似語を以下に掲載しておきますので調べてみてください。
 
essential

basic, fundamental, first, primary, necessary, vital, required,
important, chief, principal, leading, major, main, significant,
weighty, valuable

それぞれに日本語対訳はありますが、基本的なからの派生語です。
参考にしてみてください。あまり言語学者でなければ気にしすぎる必要はないと思いますよ

required は「要求さている」必須
大学の選択科目に対する必須科目 required subjects

essential 基本的な意味です

形容詞は類似語が非常に多い品詞で決定的な違いが意味上ない場合も
ありますが、名詞との結合関係が決まっている組合わせ語とあります。
見分けるのは極めて難しく、英語国民でも完全に掌握はできません。
合成語を創造した専門用語の形容詞、あるいは口癖による組み合わせの仕方もあります。私たちも言葉の経験から好みでいつも同じ組み合わせで使うことはよくありますよね。
私は日...続きを読む

QVC++アプリの設定保存について

VC++でアプリを作成しているのですが、ラジオボタンとかチェックボックスとかをいっぱい持った
アプリの場合、次回開いたときに前回と同じ画面の設定、表示になるようにするような一括保存方法が無いか探しています。
そのような方法があれば教えて下さい。

Aベストアンサー

Profile機能を使います(iniファイル)

この様な記述のファイルが出来ます
[aaa]
bbb=0
ccc=1
[ddd]
eee=0
fff=1

記述の意味は↓
[セクション名]
キー名=値
http://msdn.microsoft.com/ja-jp/library/cc429763.aspx


参考
http://park1.wakwak.com/~ima/visualcpp_tips0005.html

QADOX フィールドのRequiredプロパティを

ADOX フィールドのRequiredプロパティをFalseにしたい

アクセスです。

Sub test()
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim idx As ADOX.Index
Dim varRet As Variant
Dim strMsg As String

Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection

Set tbl = New ADOX.Table
tbl.Name = "test"

tbl.Columns.Append "氏名ID", adInteger '手作業で数値型のフィールドを作るとこれがデフォルトになる
tbl.Columns.Append "氏名", adVarWChar, 50

cat.Tables.Append tbl

主キーを作る
Set idx = New ADOX.Index
idx.Name = "Primary"
idx.PrimaryKey = True
idx.Columns.Append "氏名ID"

tbl.Indexes.Append idx

MsgBox tbl.Name & "テーブルを作成しました。"

Set cat = Nothing
End Sub
**********************************************************

上記のコードでテーブルを作ると、RequiredをTrueにしてないのに、
実際にテーブルにデータを入れてる時に、NULLにしようとすると、

**********************************************************
フィールドに必要なプロパティが True に設定されているため、
このフィールド '<フィールド名>' には Null 値は挿入できません。値を入力してください。
**********************************************************
となります。

Requiredプロパティの規定値は、False になってますが、
なぜか値を要求されてしまいます。

ADOXで上記のコードに追加してRequiredをFalse にする方法を教えてください。、

ADOX フィールドのRequiredプロパティをFalseにしたい

アクセスです。

Sub test()
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim idx As ADOX.Index
Dim varRet As Variant
Dim strMsg As String

Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection

Set tbl = New ADOX.Table
tbl.Name = "test"

tbl.Columns.Append "氏名ID", adInteger '手作業で数値型のフィールドを作るとこれがデフォルトになる
tbl.Columns.Append "氏名", adVarWC...続きを読む

Aベストアンサー

当方、Access2010 です。同じ結果になりました。。
無理っぽいと思いつつGoogleと外人さんが教えてくれました。
http://www.pcreview.co.uk/forums/re-change-field-required-property-adox-t1685138.html

tbl.Columns.Append "氏名ID", adInteger '手作業で数値型のフィールドを作るとこれがデフォルトになる
tbl.Columns.Append "氏名", adVarWChar, 50
tbl.Columns("氏名").Attributes = adColNullable '追加

では?

QVC++2010 エディットボックス 数値検出

VC++2010 エディットボックス 数値検出について質問なんですが、
そういう関数とかありますか? 

数値が0.01~65536まで入力される仕様になっており
文字列を受信したら無効にするようにしたいのですが
よろしくお願いします

Aベストアンサー

strtodとかstrtofで数値に変換して,うまくいかなかったり範囲から外れていたら無効にすればどうかな?


人気Q&Aランキング

おすすめ情報