• ベストアンサー

VBAでC言語

本日登録しました。よろしくお願いします。 質問ですが、エクセルVBAでいろいろ始めたのですが この中でC言語は利用できるのでしょうか。 計算をする事に使用したいのです。 勤怠管理で50人ほどの給与計算などを作ったのですが、 皆勤賞・精勤賞なども自動でやるので、関数も多様しています。 このためか、どうも動作がぎこち無いです。 C言語とかは計算が早いという事を聞いたので、 使うことが出来ないかと考えました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

C言語は難しすぎますし、VBAからC言語のソフトを起動できないと思いますし、出来てもワークシート1枚分しか認識しません。 VBAでもう少しロジックを整理してトライしてみてください。ロジックを整理するとスムーズに行くことがあります。 今のPCは昔よりスピードが滅茶苦茶速いですから、どの言語がどうのと論じても何の意味も有りません。 一度友人と数万回の計算をした場合VBとVC++でどの位差がでるか試したことがあります。 クロック(周波数)1MHzでVC++が40秒でVBが46秒位です。数万回でこれしか差が出ません。

sgw_7151
質問者

お礼

あれもこれもと作っていったので、つぎはぎだらけです。 大して時間の差は無いのですね。 無駄な処理もあると思うので、もう一度見直してみます。 ありがとうございました。

その他の回答 (1)

  • 6dou_rinne
  • ベストアンサー率25% (1361/5264)
回答No.2

C言語を利用すると言う意味がいまひとつはっきりしませんので的を得た答えになるかどうかわかりませんが、C言語が計算が早いと言うのではなく、C言語はコンパイルして実行形式にしますし、ライブラリも軽くできていますので、実質的にはマクロであるVBAより早くなります。 ですから、根本的に異なるC言語をVBAの中で使うということはできませんし、VBAのなかでC言語式のコーディングをしてもエラーになるだけです。

sgw_7151
質問者

お礼

やはりダメですか・・・ もう一度見直して、無駄な箇所などを検証してみようと思います。 ありがとうございました。

関連するQ&A

  • vbaとc言語の関連性について

    VBAを学習しようと考えている者です。ただし、プログラミング言語に関しては全くの素人なのでご容赦下さい。 質問の核となるのは、 「vbaを学習する際に、C言語を学習して知識を得る事は、その後のvbaの学習・習得に役に立つかどうか?」です。 なぜ、そのような質問をするかと言いますと、とある大学でvbaの習得を学生にお教えされている方の論文を拝見した際に、 「VBAというプログラミング言語は、C言語を最低でも1年間学習した人間でなければ、文法や規則性を記憶したり、定着したりする事が難しい。」 との情報が文章として記載されていたため、突然私のように、言語の学習経験のないものが手を出すと挫折をしたり、理解のスピードが追いつかないのではないかと考えたからです。 様々な質問箱に、VBAと他のプログラミング言語との難易度等の比較は記載されていますが、情報が氾濫していて、どの言語から手をつけてよいか混乱しています。 将来は、VBAを習得できたら少なくとも損をすることは無いだろうと思っています。 どうかどなたか私に知恵や指針を与えて下されば嬉しく思います。 どうかよろしくお願いいたします。m(__)m

  • C言語について。

    ここでいうC言語のモジュールとは、関数の事でしょうか?教えていただけると嬉しいです。以下の文章です。 C言語のプログラムは、通常いくつかの関数によって構成されています。この関数とは、1つの処理単位を表すものでモジュールともいいます。

  • c言語教えてください

    C言語のBCC Developerで、「二つの三次元ベクトルの内積を計算する関数を作成する」をつくってもらえませんか?

  • 計算速度の速いC言語を教えてください!

    C++、C++/CLI、C#のどれかを初めて勉強しようと思っているのですが、どの言語を学んだらよいでしょうか? 主にやりたいことは、スプレッドシート上での計算を数千万回繰り返す計算とグラフ描写です。 これまでVBAを使って為替相場の価格変動をシミュレートするプログラムを組んで、4万行の計算x300回程度の計算をずっとしてきました。ただ、EXCELのグラフ機能に不満なので、計算とグラフ描写もするソフトを自分で作ろうと思っています。VBAは基本的な構文(For,If, Whileなど)を理解して使っています。プログラミングはVBA以外に触れたことがないのですが、永くコンピュータと付き合いたいのでC言語を新しく勉強したいと思ってます。 そこで教えて頂きたいのですが、C++、C++/CLI、C#のどれを勉強するのがよいでしょうか?上記のような計算をした時に速度に大きな違いが出るのでしたら速い言語を勉強したいです。 あまり違いが出ないのでしたら、上記のような目的のソフトをWindows上で趣味として作り、末永く付き合える言語を教えてください。 ちなみに上記のような計算で、VBAでは10時間程度かかります。 質問が長くなってしまってすいません。C言語をご存知の方、ご教授くださいm(_ _)m

  • C言語について知りたい!!

    C言語を勉強しようと思ったのですが、 C言語って数学ができないとヤッパリ上達しないのでしないのでしょうか??それとも、別に数学はできなくてもC言語の知識をつける事は可能なのでしょうか?? C言語を勉強する上で必要になってくる数学って一体何でしょうか?? 関数とかでしょうか?? 必要になってくる数学の知識について教えてください! よろしくお願いしますm(_ _)m

  • C言語 関数の呼び出し関係について

    C言語を習い始めてから、1ヶ月も経っていないんですが、長いプログラム(1万行くらい)の読解という課題が出ました。 読解を円滑に進めていくためのコツとして、「関数の大まかな呼び出し関係」を調べればよい、と学びました。 そこで質問させてもらいたいのですが、「関数の呼び出し関係を調べる」とは、具体的にどういうことなんでしょうか?関数が関数を呼び出しているんですか?? もうひとつC言語について質問です。 今回与えられたプログラムは1万行くらいあるのですが、そのうちmain関数は50行くらいしかありません。 これって、残り9950行はすべて、main関数の動作のためにあるんですか?? 以上、初歩的な質問かもしれませんが、ご指導願います。

  • 乱数をC言語で

    乱数をC言語でプログラムしたいのですが、 rand関数を使わずに作らなきゃいけないという事なんですが 一度作ってはみたもののうまく乱数にできずに困っています できれば教えていただきたいです

  • C言語を始めようと考えている者です

    某国立大理学部数学科の1回生です 4月から2回生の講義でC言語の講義があります。 以下がその内容となります 授業の到達目標 (1) 2進整数の計算、浮動小数点数の計算ができる。 (2) コンピュータが計算を行う基本的な仕組みがわかる。 (3) (2)の内容を実際にC言語で確認できる。 (4) C言語で簡単な数学の問題を解くプログラムを書くことができる。 授業スケジュール 講義  1. 計算と計算機の歴史  2. 2進整数の計算  3. 補数の考え方  4. 浮動小数点数の計算  5. 基本的なデータ型  6. プログラムの条件分岐構造  7. 中間試験  8. プログラムの繰り返し構造I  9. プログラムの繰り返し構造II 10. 配列I 11. 配列II 12. 関数 13. 素数に関する問題を解くプログラム 14. 微積分に関する問題を解くプログラム 15. 学期末試験とその解説 僕は今まで全くC言語プログラミングをしたことがありません。 他の言語も同様です。 http://www.forest.impress.co.jp/library/software/gakucgengo/ このサイトに出ている文法を学ぶことができる開発環境はダウンロードしました。 卒業後はgoogleに就職したいので今のうちからC言語は学んでおきたいのですが 先ず、何を学べばよいのかわかりません… 「アルゴリズム」や、「コンピュータの計算の仕組み」などを学ぶ必要もあると思うのですが 何から手を付ければよいのでしょうか? 考えが煮詰まってしまっています。アドバイスなどお願い致します。 因みに、現在用いているOSはwindows7です。 もしよろしければ、C言語初心者が学び始めるにあたって力強い書籍、サイトなど ありましたら教えてください。 よろしくお願い致します。

  • C言語の開発環境

    C言語のクオリティの高いフリーの開発環境を探しています。 Javaの開発環境として、Eclipseが良かったので、C言語も Eclipseでやってみたものの、Javaに比べて、自動的に文法 チェックや関数の補完、コンパイルへのショートカットがない、 コンパイルがかなり面倒と結構つかいにくく、他にいいのが ないか探しています。 C言語のオススメの開発環境、教えてください。

  • 離散フーリエ変換をC言語でどの様に書けばいいですか?

    C言語でDFT離散フーリエ変換を書くにはどの様に書けばよろしいですか? Googleで検索すれば書き方は出てくるのですが、使ってる関数がいまいちよく分かりません。 ・データの入力 ↓ ・フーリエ変換の計算 ↓ ・結果の出力というのをやればいいのは理解できるのですが、C言語でどの様に書けばいいか分からなくて…

専門家に質問してみよう