• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで値の取得)

VBAで値の取得

このQ&Aのポイント
  • VBAでエクセルの値を取得する方法について
  • エクセルのシートに計算した値をVBAで入れたい場合の方法
  • 値の取得を行うためにVBAのコードを修正する

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>Cells(Cnt, 6).Formula = "=TRUNC(1800 * Cells(Cnt, 2)) + TRUNC(1350 * Cells(Cnt, 3))" は、文字列という事の認識が無い初心者がよくやる事です。 変数名も""で囲って変数として機能しないようにしてしまいます。 Cells(Cnt, 6).Formula = "=TRUNC(1800 * " & Cells(Cnt, 2) & ") + TRUNC(1350 * " & Cells(Cnt, 3) ")" "" で囲んだ部分全てを文字として記入してしまうので、式として必要な部分と値(セルの値)として記入される部分をきちんと認識して記述する必要があります。

mnhc33
質問者

お礼

おっしゃる通りでした。 思っていた結果が得られました。 助かりました。ありがとうございました。

その他の回答 (2)

  • laputart
  • ベストアンサー率34% (288/843)
回答No.3

Sub Macro1() ' Dim LastR As Long LastR = Range("B65536").End(xlUp).Row If IsNumeric(LastR) Then For i = 3 To LastR Range("F" & CStr(i)).Value = Int(1250 * Range("B" & CStr(i)).Value) + Int(1000 * Range("C" & CStr(i)).Value) + Int(1250 * Range("D" & CStr(i)).Value) Next i End If End Sub --------------解説--------------------- 整数部を得る関数は INT(数字) Range(セル).value はセルの値になります。 Cstr(数字) は数字を文字列に変換する関数です

mnhc33
質問者

お礼

ありがとうございます。Intは使ったことがなかったので、勉強してみます。

noname#130090
noname#130090
回答No.2

これでどうでしょうか? Sub test01()   Dim LastR As Long, Cnt As Long '最終行と行番号   LastR = Range("A65536").End(xlUp).Row   For Cnt = 3 To LastR 'B3から最終行まで     Cells(Cnt, 6).Formula = "=TRUNC(1800 * " & Cells(Cnt, 2) & ") + TRUNC(1350 * " & Cells(Cnt, 3) & " )"   Next End Sub

mnhc33
質問者

お礼

ありがとうございます。おかげで思っていたような結果が得られました。

関連するQ&A