• ベストアンサー

VBAなんですが・・・うまく計算されません。

ローレル指数の計算がしたいのですが、 体重÷身長^3×10^7 が公式で、 エクセルのセル、 B2に身長、B3に体重を入力します。 私は、 cells(4,4)=cells(2,3)/cells(2,2)^3*10^7 と入力したけれご、エラーです。 どこがどう間違ってるのでしょうか・・・?

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

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.4

> cells(4,4)=cells(2,3)/cells(2,2)^3*10^7 > と入力したけれご、エラーです。 VBA のコードとして書いたなら、(多少問題はありつつも)実行できるレベルです。 このままでいいはずです。このままでもこちらの環境ではエラーは出ずに 実行できました。 セルに参照式のつもりで書いてもエラーにはならないでしょうし、これだけの 情報ではエラーを再現できませんでした。 > B2に身長、B3に体重を入力します。 B2に身長は合ってますが、C2に体重な気はしますが入力されていなくても 0として計算されるのでエラーは出ないです。 C2に文字とか入れてるとまずいですが。 どこがどう間違ってるのかは、エラーメッセージが言ってくれているはずです。 まずはそこから調査して下さい。 C2に文字を入れていると、文字の数式計算はできませんから 「型が一致しません。」というエラーが出ました。

その他の回答 (3)

  • picknic
  • ベストアンサー率25% (33/132)
回答No.3

VBAのコードで 指数計算をするときは WorksheetFunction.Power を使ってください。 Cells(4, 4) = Cells(2, 3) / WorksheetFunction.Power(Cells(2, 2), 3) * WorksheetFunction.Power(10, 7)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

<<追伸>> 122は身長170cm、体重60KGの場合です。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

ローレル指数がよくわからないのですが 122であっているのなら cells(4,4).value= Format(Cells(2, 3).Value / Cells(2, 2).Value ^ 3 * 10 ^ 7, "###.##") その式であっているようですが。。。

関連するQ&A

  • 太ってきました

    中3女子です 1年生の時は身長143.4体重30.6ローレル指数103.8 2年生の時は身長151.7体重36.2ローレル指数103.1 3年生の時は身長155  体重42  ローレル指数112.8というふうに3年生でちょっと太ってしまいました。 ところが今は身長162   体重51.5ローレル指数121.1です。決して太っているわけではないのは分かっていますが制服がちっちゃくなり元々痩せていたので少し太るととても目立ちます。どういうふうにすればよいでしょうか?

  • IFの使い方

    どうもうまく行きません。 体重が適正かどうかを知るための、ローレル指数を計算し、その数値によりテキストを表示させたいのです。 セルC6に、ローレル指数を求めるところまで出来ました。 求めた値に対して、下記のように表示させたいのです。 99以下 やせ 100~114 やや、やせ 115~144 標準 145~159 やや太り 160以上 太り と言う具合に、他のセルにIF関数を使って表示させる方法を教えて頂きたく、お願い致します。

  • 体格指数について

    解剖生理学の授業で、体重・身長からカウプ指数(BMI)・ローレル指数・リビ指数・ポンデラル指数を求めろという課題が出ました。このうちのリビ指数・ポンデラル指数だけが分かりません。表がないと、分からないらしいです。お恥ずかしいのですが、体重は54キロ・身長は162センチです。どなたか、分かる方がいましたらご助力お願い致します。因みにBMI=20.576、ローレル指数=127でした。

  • 痩せたいです。

    痩せたいです。 入学したときは身長が151.3で体重が50.1でローレル指数が144.7だったんですけど 3年生の今は身長が156で体重は61.8でローレル指数が162.8になってしまいました。 学校指定のジャージもムチムチしスカートも1回買い換えたんですけどそれもちっちゃいです。 ウエストは68センチもあります。夏になるとプールもあるので夏までに痩せたいです。

  • ローレル指数のグラフを探しています

    ローレル指数のグラフを探しています。 縦軸を身長、横軸を体重として(逆でもよい)、「やせすぎ」などの境目になる部分を曲線で区切ってあるものです。それを見た人に、自分の体重と身長を指でたどって状況を知ってもらうのが目的です。 紙に印刷した状態での利用を考えているので、体重と身長を入力すると計算結果がわかるプログラム等では対応できません。Web上でよいものがあれば、または、Excel97を持っているので、それでつくる方法があれば、教えてください。

  • VBA 別シートの計算表

    Excelについて。 シートAに、計算表があります。 セルa1に入力した値によって、いくつかのExcel関数を利用して、 セルb1に結果を出力しています。 いつも、手入力でセルa1に値を入力して結果を求めていますが。 今度、シートBに膨大な入力するための数値があるので、VBAで自動化できないかと考えています。 今回の質問は、VBAで記述する際に、シートAの入力セルa1に、シートBの入力値を1つずつ代入していき、結果のセルb1をシートBの入力値の隣に出力していこうと考えています。 シートAのa1に入力値を代入して、すぐに結果b1の値を結果出力セルに代入していいのでしょうか? 計算表(シートA)での計算を時間をおく必要があるのでしょうか?=一旦、他のセルを選択するなど。 よろしくお願いします。 ・計算表での計算時間は、1秒未満です。 ・計算表の計算過程もVBAで書けば済む話ですが、プログラミングには疎いので、計算表をそのまま利用したいと考えています。=入力の代入だけVBAで書いていきたいと思います。 ・その他、アドバイスなどいただければ幸いです。 よろしくお願いします。 Excel2010

  • VBAを使わず、計算式を使いまわし

    エクセルで勤務表を作っています。 たとえば、B2に出勤時間を、C2に退社時間を入力すると、D2に勤務時間が表示されます。 現在の計算手法は、A1、B1の値を別セルからそれぞれ参照し、計算をし、結果を別セルに表示させます。その結果をC1セルが参照して、C1セルに表示させるような手法をとっています。 ※話を簡単にするための一例です。この程度ならダイレクトにC1に結果を表示させることは簡単ですが、実際にはさまざまな条件があるため、計算はもっと複雑です。 この手法だと、同じ計算式を日にちごとに用意しなければいけません。 計算式がそこそこ複雑なので、毎日分用意すると、メンテナンスやファイルサイズの問題などあまり よろしくないと思っています。 そこで、VBAのFunctionプロシージャのように、計算式は1セットのみで、毎日の出勤、退勤時間を引数で渡して、結果を返すような方法はできないのでしょうか?

  • VBA SUM関数に変数を入れた計算式の書き方

    図のような表があります。 この表で、B1~B2、B6~B7は1行から4行の間で変化します。 ただし、B1~B2の行数とB6~B7の行数は同じです。 A10のセルに=SUM(B6,B7,(B6-C6*B2/100),(B7-C7*B3/100))という計算式を入れたいのですが 上記のように行数が変化するので B1=cells(gyou,2) B2=cells(gyou1,2) B6=cells(gyou+5,2) B7=cells(gyou1+5,2) c6=cells(gyou+5,3) c7=cells(gyou1+5,3) としています。ここでgyou1は1から4の間で変化します。 ほんとうは cells(gyou+9,1).Formula=SUM(cells(gyou+5,2):(cells(gyou1+6,2)-cells(gyou1+6)*cells(gyou1,2)/100)) とできると良いのですが、エラーになります。 SUM(cells(gyou+5,2):cells(gyou1+5,2))はOKですが、 SUM((cells(gyou+5,3)-cells(gyou+5,2)*cells(gyou,2)/100)):(cells(gyou1+5,2)-cells(gyou1+5,3) _   *cells(gyou1,2)/100))が、NGです。 これをどのようにコードを書くと良いのか教えて下さい。

  • エクセルで計算できない・・・

    初歩的な質問で申し訳ありませんが、困っておりますので教えて下さい。 エクセルで、計算式がフィルハンドルで効かなくなりました。 例えば、セルA1に「1」、セルA2に「2」、セルA3に「3」と入力し セルB1に「4」、セルB2に「5」、セルB3に「6」と入力します。 次にセルC1に「=SUM(A1:B1)」の計算式を入れると「5」と計算されますが、その後セルC1からセルC3までフィルハンドルを使うとセルC2、セルC3にも同じ計算がされて、セルC2「7」、セルC3「9」となるはずですが…セルC2、セルC3とも、セルC1と同じ「5」になってしまいます。 その場合も、セルC2には「=SUM(A2:B2)」、セルC3には「=SUM(A3:B3)」と、求めたい計算式は入っています。 今まで何ともなく使っていたエクセルのファイルがおかしいのです。 新規作成したエクセルファイルは何ともありません。 なぜこのような症状が出るのでしょう? 未熟者ですので解り易く教えていただけると助かります。 宜しくお願いいたします。

  • VBAで斜めの数字を計算させる

    excelシートに こんな感じです。 A1 B1 C1 A2 B2 C2 A3 B2 C3 A5 B5 C5 A1,B2,C3に500,000 / 600,000 / 700,000と数字がはいっています。 A5 B5 C5に A1,B2,C3の数字に×1.05した結果を表示させたいのです。 VBAで書くにはどうしたらよいでしょうか? Cells( , )*1.05 Cells( , )←このセルの指定を=ExcelのA1→B2→C3をというように変化させたいのです。 offsetなどを使ってみてもうまくいきません。 よろしくお願い致します。 next

専門家に質問してみよう