• ベストアンサー

エクセルVBAについて

pen_pen_penの回答

回答No.6

>Ahlebelの値が596 >Aoneの値が1194 >です。 は、本当にオーバーフローした瞬間にTextBox6_Changeの中で調べた値ですか? コマンドを実行したときにテキストボックスに入力した値ではないですか? TextBox16に値は表示されてるとの事なので、TextBoxに入力した時点での値に問題があるわけでは無いハズです。 「オーバーフローしました」というメッセージが出る直前のAhlebelとAoneの値が知りたいです。 コマンドボタンを押す前に > DtyA = Ahlebel / Aone * 100 にブレークポイントを入れて、コマンドボタンを押下。 するとこの行で止まるのでAhlebel、Aoneの値を見て下さい。 確認後にF8を押したら「オーバーフローしました」が出ればそれが知りたい値です。また教えて下さい。 コマンドボタンでTextBox6とTextBox16をクリアすると、0割りなら起きますが、オーバーフローは起きませんでした。 試していただきたいのが、2つ。 A.コマンドボタンでのクリアをやめてみる。TextBox6以外も全部。 B.コマンドボタンでのクリアをやめてみる。TextBox6だけ。 C.TextBox6_Changeで、Aoneの値が0ならExit Sub。 Cは変数で割る時は当然入れるべき処理だと思います。 というか、クリアすればAoneは0なので、入れないとコマンドボタン押したら確実にエラーになりますよね。 AとBとCをそれぞれ独立して試してみて下さい。 何か変わりましたか?

na714
質問者

補足

丁寧な指導ありがとうございます。 >DtyA = Ahlebel / Aone * 100 >にブレークポイントを入れて、コマンドボタンを押>下。 >するとこの行で止まるのでAhlebel、Aoneの値を見て>下さい。 >確認後にF8を押したら「オーバーフローしました」>が出ればそれが知りたい値です この作業を実行するとTextBox6に1文字(数字1桁)を入力するとプログラムの実行が中止になり、TextBox16の計算が実行されず、計算結果を確認できませんが・・・。すいませんが、この作業もう少し詳しく教えていただけないでしょうか? 申し遅れましたが、参考書片手の初心者作業なので専門的になるといまいちまだ実行できないんです。 >A.コマンドボタンでのクリアをやめてみる。TextBox6以外も全部。 >B.コマンドボタンでのクリアをやめてみる。TextBox6だけ。 >C.TextBox6_Changeで、Aoneの値が0ならExit Sub。 A→オーバーフロー、その他のエラーはおきませんでした。 B→オーバーフローがおきます。 C→すいません、詳しいコードをお教え願います。 Aを試したところ、エラーが発生せずプログラムが適切に実行できました。このクリアが関係しているのでしょうか? しかしこの作業は、次のデータの入力に備えて、どうしても入れたい作業なのですが、何かいい案はないでしょうか?

関連するQ&A

  • エクセル VBAにおける平均計算につきまして

    エクセルにおけるVBAの平均計算に対するプログラミングについて教えてください。 内容としては、 ある列に対して(ここではA列とします)数値が入力されており、 その入力されている範囲は毎回入力する度、入力範囲がまちまちになっているとします。 その「まちまちな入力範囲に対して」平均値をVBAにて求めたい場合、 Averageにて範囲指定を入力する際に、どのようにプログラミングすればよろしいのでしょうか? ※具体的にはA列の「数値が入力されているアクティブなセル」を指定したいのですか、どうすればよいでしょうか? 回答をお願い致します。

  • Excel VBAについて

    プログラミング初心者です。 Excelのデータを、VBAをつかって、テキストファイルにおとすよう指示されました。しかし、いまいちやり方がわかりません。 いろいろサイトを調べてみましたがよくわからなかったです。 どういうふうにコード入力していけばいいのでしょうか? ご存知のかた教えてください。 基本的な構文はわかりますのでサンプルを教えていただきたいです。 また、わかりやすい参照URLがあればそれでも結構です。

  • excelのvbaって?

    エクセルのvbaって何をするためにあるのですか? 昔あったプログラミング言語のbasicと何が違うのでしょう? どなたか簡単なコメントを下さい。 どうぞよろしくお願いいたします。

  • エクセルVBAで16の16乗を正確にさせるには?

    エクセルVBAにて16の16乗を取り扱いたいのですが.... データ型が、LongとCurrencyでは、オーバーフローしてしまいます。 そこで、SingleとDuobleですると   Singelでは、1.844674E+19   Doubleでは、1.84467440737096E+19 になります。 これを、正確に18446744073709551616とさせる方法を教示ください。 Dim Dec_data As Double Dec_data = 16 ^ 16 MsgBox Dec_data

  • エクセルVBA 一番端のセルの求め方について

    エクセル2003VBAを使ったプログラミングをしています。 シートにデータが入っていますが途中入っていないセルが多々ある状況です。 このような場合、 1.データの入っている一番したの行の行番号を取り出す方法 2.ある行で一番右側でデータの入っているセルの位置を取り出す方法 はありますでしょうか? データが続いている(空の行等がない)場合は Range("A1").CurrentRegion.rows.Count で出せることはわかっているのですが、違う表のようにデータがあちこちにあるという状況です。 何かいい方法がありましたら教えてください。 よろしくお願いいたします。

  • EXCELのVBAについて

    エクセルでVBAを使う場合に、変数や関数名に日本語を使うことが出来るみたいであまり知らなかったのですが、これは正式に使ってよい物なのでしょうか。わかる範囲で本などを調べてもこのことに触れてない(気が付かないだけかな?)ものですから、もし定義なりルールなりがあるようでしたら教えてください。

  • Excel VBAにてFFT

    Excel VBAにておよそ5万点のデータをFFTする方法についての質問をさせてください。 いつもはあるソフトを用いて実験データのFFTを行っているのですが、作業効率を改善したいと考えExcel VBAにてFFTをしたいと考えています。 私はC言語を少しですが学習したことがあるので、FFTWのようなFFT を実装したフリーソフトウェアが存在しているのを知っています。 時間節約のためExcel VBAにてFFTのコードを位置から書くのではなく、FFTWのアルゴリズムでExcel VBAで利用できるプログラムを使いたいと考えています。 この場合、自分でFFTWのコードを見ながらExcel VBA用にコードを書きかえるしか手はないのでしょうか。私はC言語もExcel VBAも未熟であるため、この作業を行うことができそうにありません、、、 Excel VBAで利用することのできるFFTのコードはあるのでしょうか。 なお、FFTするためのデータ点数は約5万点、多いと10万点ほどで、データ点数が2の累乗に限定しないものを使いたいと考えています。

  • エクセル(VBA)について

    現在契約社員でデータ入力をしています。 同じ会社に5年程勤めているのですが、 業務内容はシステムの人が作ったデータベースに、私がエクセル上で 入力し、その後はアクセスを使いそのデータを社員の人が管理するという内容です。 今更ですが、私は入力のみで全くエクセルを使えないので VBAやプログラミングについても勉強したいと思いました。 我流で勉強した方も多いようですが、簡単にマスター出来るものなのでしょうか? 専門学校等に通うべきなのでしょうか? ちなみに私は理系の頭ではなく文系です・・・。 本屋さんでもテキストを探したのですが、とても種類が多く どれがいいのか全く分からないので、お勧めの本等もありましたら教えてください。 よろしくお願いします。

  • Excel Vba でデータの範囲を知るには?

    Excelを使用していますが、マクロ(VBA)で、シートのデータの範囲を知るにはどうすればよいのでしょうか。  印刷プレビューを行うと、自動的にページ数が求めらていますが、これは、シートのデータの範囲(列及び行の最大値)を判別しているからできるのだと思います。  これを、VBAで行、及び列のMAX値を取得したいのですが、そのメソッド(プロパティ)を知りたいのです。  どなたかご教授ください。

  • Excel VBAでファイルの制御をしたい

    今、Excel VBAでファイル操作の制御スクリプトをくみたくて 悩んでおります。。 "test.xls"ファイルというエクセルの共有ファイルがあります。 そのファイルは日々様々なユーザーがデータを書き込みます。 この共有ファイルに対し、誰か一人がこのファイルを開いている際に 違う誰かがファイルを開こうとした場合に、警告メッセージを表示した後、強制的にファイルを閉じるというプログラムを組みたいのですが・・。 何せ、VBAでのプログラミングはまったくの初心者の為、 悪戦苦闘しております。 どなたか、良いアドバイスを頂けたら嬉しいです。 是非、宜しくお願い致します。