• ベストアンサー

何カロリーかを出すマクロを組みたいのですが

200gあたり216カロリーの食材を140gあたり何カロリーかを出すマクロを組みたいのですが Sub test2() Dim int量 As Integer Dim intkcal As Integer int量 = 140 MsgBox int量 & "は、" & intkcal & "カロリーです" End Sub これしか式が作れなかったのですが どう計算すれば指定した量のカロリーを出せるのでしょうか? 小学生レベルだと思いますが教えてください。 食材サイトで検索したら答えは、152kcalでした。

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

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

エクセルの数式で簡単に出力できると思いますが、マクロで作るにしても所詮四則演算の計算に過ぎません。 以下のコードをMsgBoxで出力する前に追加してください。 intkcal = (216 / 200) * int量 216 / 200 = 1.08 ⇒1g当たりのカロリー算出 1.08 * 140 = 151.2 食材サイトの計算は切り上げになっているのでしょうね。 同じく切り上げにしたいのであれば Application.WorksheetFunction.RoundUp(intkcal,0) をかませばよいと思われます。

brwubwtompy
質問者

お礼

ありがとうございました。

関連するQ&A

  • 階乗のマクロ

    階乗のマクロを作りたいのですが、全然できません。どこを変えたらいいのか教えて下さい。ちなみに今こうなっています。 ------------------------------------------------ Sub exam5() Dim intA As Integer Dim intB As Integer Dim intC As Integer intA = Application.InputBox("数値を入力してください。") intB = (intA - 1) intC = (intA) * (intB) MsgBox (intC) End Sub Function kaijou(intA As Integer, intB As Integer) As Integer kaijou = intA * intB End Function ------------------------------------------------ どうかお願いします。

  • [と”の意味を教えてください。

    http://okwave.jp/qa/q5945112.html を参考に、 Sub test1() Dim i As Integer i = 2 If i Like "[1-3]" Then MsgBox i & "です" End If End Sub Sub test2() Dim i As Integer i = 2 If i Like "[1-5]" Then MsgBox i & "です" End If End Sub Sub test3() Dim i As Integer i = 2 If i Like "[1-10]" Then MsgBox i & "です" End If End Sub を作ったのですが、 test3はうまく行きません。 意味としては、 iが "[1-10]"の中の数字の間のどれかであれば、 MsgBox i & "です" を表示させたいです。 でも上記のマクロを実行させた結果、 "[1-10]"の中で計算が行われてるのではないかと思います。 だから、test3は、1-10=-9 という事になり、msgboxが反応しないのではないかと思っています。 でもそうすると、test2だって "[1-5]"は、-4になって、i=2とは違う値なのに なぜMsgBoxが反応してしまうのかわかりません。 でもそもそも[と”の意味が分からないのでそこから教えていただけませんか? “の意味、は二つで挟んで文字列にすると思っています。

  • VBE Excelのマクロがわかりません(IF関数)

    エクセルのマクロがわかりません。教えてください 問題は5人の簿記の点数を入力し5人の合計点・最高点・最低点を表示するプログラムを作成する。というものです。 Sub test() Dim boki as integer Dim sum as integer Dim max as integer Dim min as integer For A = 1 to 5 boki = InputBoxx("簿記の点数入力") goukei = goukei + boki ?????? Next A Msgbox"5人の合計点は"&A Msgbox"5人の最高点は"&A Msgbox"5人の最低点は"&A End Sub IF関数を使って??の部分を作るようなのですが、いまいちよく分からないので教えてください。 bokiは簿記 sumは合計 maxは最高 minは最低のことを現してます。

  • 列番号のAやBも、数値で指定するには

    Sub test() Dim int1 As Integer Dim int2 As Integer int1 = 1 int2 = 2 Cells(3, 1) = "=A" & int1 & "*B" & int2 End Sub このような場合、列番号のAやBも、 数値で指定するにはどうすればいいでしょうか?

  • マクロでの次の実行マクロへの記述

    下記のマクロを記述しました。 一つのマクロ処理を終わらせて、次のマクロ(例:test)を動かしたいのですが何処に 記述したら良いかわかりません。 教えてください。 Sub Macro1() Dim i As Integer Dim buff As String i = 2 While 1 If Range("B" & i).Value = "" Then End End If buff = Range("B" & i).Value Range("B" & i).Value = Left(buff, 7) + " " + Mid(buff, 8, 5) + " " + Right(buff, 6) i = i + 1 Wend   Call test →ここに仮に記述したのですが、testのマクロに行きません。 End Sub 以上

  • エクセルのマクロで exit について

    よろしくおねがいします 各々のシートのX1セルを値を参照して ゼロ以外の時は 印刷の処理をして ゼロの時は処理をしない という内容を書きたく思います。 このままで記述だとX1セルの値がゼロの場合 いきなりsubを抜けてしまうのですが 1,2枚目でゼロの場合 その次のシートにきちんと処理が 継続したいのですが どこを修正したらよろしいでしょうか? Sub マクロ() Dim shAry As Variant Dim i As Integer, cnt As Integer, x As Integer shAry = Array("東京", "千葉", "群馬") For cnt = LBound(shAry) To UBound(shAry) Sheets(shAry(cnt)).Select x = Int(((Range("x1").Value) - 1) / 5) + 1 If x = 0 Then GoTo ゼロの場合の処理 Else MsgBox "印刷枚数は " & x & "枚です" ここにいんさつの処理があります End If Next Exit Sub ゼロの場合の処理: MsgBox "印刷する内容はありません" End Sub

  • マクロ

    宜しくお願いいたします セルを選択するマクロですが、何処か間違っているので 実行すると、K25のみ選択されてしまいます 一行おきに選択したいのですが 以下のマクロです Sub セルの選択2() Dim ColPos As Integer Dim RowPos As Integer For ColPos = 1 To 11 Step 2 For RowPos = 5 To 25 Step 2 Cells(RowPos, ColPos).Select Next Next End Sub

  • マクロでセルの色を塗りたい

    マクロでセルの色を塗りたいです。 現在、予めRGBの値を取得しておいて Private Sub Worksheet_Change(ByVal Target As Range)   Dim R As Integer   Dim G As Integer   Dim B As Integer   R = 100   G = 50   B = 128   If Target.Value = "A" Then     Target.Interior.Color = RGB(R, G, B)   End If End Sub のように使っています。 このRGBの値を他の所で流用するに当たって、1つの変数のまとめたいのですが、 RGBをまとめて代入?する方法はあるでしょうか。 以下のような使い方をしたいです(勿論これはダメでしたけど。見るからにダメそうですし)。  Dim IRO As String  IRO = "100, 50, 128"  Target.Interior.Color = RGB(IRO) 不可能でしょうか?

  • wordマクロでの他文書参照

    wordマクロで他文書のwordのページ数をカウントしたいのですがどのようにすれば良いでしょうか? マクロ文書のページ数は以下でできたのですが。。。 Sub Test() Dim msg As String With Selection msg = .Information(wdNumberOfPagesInDocument) End With MsgBox msg Test = msg End Sub

  • 個人用マクロブックの有無

    エクセルVBAで現在ユーザーが使っているパソコンに個人用マクロブックが存在するかどうかを取得する方法を考えました。 まず、開いているBOOKを総当りして、エクセル2003までなら PERSONAL.XLS、2007からは"PERSONAL.XLSM がひらいているかどうかを調べる方法。 Sub test1() Dim wb As Workbook For Each wb In Workbooks If wb.Name Like "PERSONAL.XLS*" Then MsgBox "個人用マクロブックがあります。" Exit Sub End If Next MsgBox "個人用マクロブックはありません。" End Sub 最初から個人用マクロブックがあるものとして変数に入れ、エラーになったら無いと判断する方法。 Sub test2() Dim wb As Workbook Dim v As String v = IIf(Val(Application.Version) > 11, "PERSONAL.XLSM", "PERSONAL.XLS") On Error Resume Next Set wb = Workbooks(v) On Error GoTo 0 MsgBox "個人用マクロブックが" & IIf(wb Is Nothing, "ありません。", "あります。") End Sub でも、自分の端末はまだ2000で、しかも個人用マクロブックがあるので、ちゃんと判定できているのかどうか自信がありません。 これで正しいのでしょうか? また、test1とtest2ではどちらをつかえばいいのでしょうか? あるいは、もっと簡単なやりかたはないのでしょうか?

専門家に質問してみよう