• ベストアンサー

~VBAで自動計算~

ボタンを押したら 材料購入費(円)+制作時間×チャージ=投資金額 となり、なおかつ 材料購入費と制作時間の数値は自由に入力でき、 チャージだけは (1)2,600円/時間 (2)43.3円/分 (3)0.72円/秒 の 三択から選び、それを計算し 計算結果はセルに表示される… といったマクロを作成したいのですが これはマクロで作成可能でしょうか?; 関数などを利用した方が良いのでしょうか; アドバイスをお願い致します; わかりづらい文章でしたらスミマセン;

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

こんな感じでどうでしょう? A1=材料購入費(円) B1=制作時間 として、結果を C1=投資金額 へ出力 但し、条件として制作時間の入力には 時間(HOUR)=1h、2.5h 分(MINUTE)=1m、5m 秒(SECOND)=1s、10s の様に各単位を半角で付けて入力 Sub test() Dim i As Single Select Case Right(Range("b1").Value, 1) Case "h": i = Left(Range("b1").Value, Len(Range("b1").Value) - 1) * 2600 Case "m": i = Left(Range("b1").Value, Len(Range("b1").Value) - 1) * 43.3 Case "s": i = Left(Range("b1").Value, Len(Range("b1").Value) - 1) * 0.72 Case Else: i = 0 End Select Range("c1").Value = Format(Range("a1").Value + i, "#.##") End Sub もう一つ 結果を入力したいセルを選択してから マクロ「test2」を実行してください Sub test2() Dim i As Single Dim 材料購入費 As Long Dim 制作時間 As String 材料購入費 = InputBox("材料購入費(円)を入力してください") 制作時間 = InputBox("制作時間の入力" & vbCrLf & _ "但し、単位を半角で付加してください" & vbCrLf & "(時間: h  分: m  秒: s )") Select Case Right(制作時間, 1) Case "h": i = Left(制作時間, Len(制作時間) - 1) * 2600 Case "m": i = Left(制作時間, Len(制作時間) - 1) * 43.3 Case "s": i = Left(制作時間, Len(制作時間) - 1) * 0.72 Case Else: i = 0 End Select Selection.Value = Format(材料購入費 + i, "#.##") End Sub 参考まで

moguraaaaa
質問者

お礼

お礼が遅くなり申し訳ありませんでした。 難しいマクロで作成されていて なかなか理解ができませんでしたが とても参考になりました! ありがとうございました!

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

できます。たいしたことないです。 まぁ、プロだから、これくらいは訳ないです。 先ず、「材料購入費と制作時間の数値」は 取得できますか? 次に三択を選ばせる画面の作り方、最後に 計算結果をセルに反映させる方法 これを細かく具体的に質問すれば、回答を 得られますので、それを繋ぎ合わせれば、 自然と希望のマクロを作ることが出来るように なるものです。

moguraaaaa
質問者

お礼

ただわからないわからないと言っている だけではダメですね わかるところはこれから書くように できるだけ具体的な質問文になるよう 努力します<(_ _)> アドバイスありがとうございました