プロが教える店舗&オフィスのセキュリティ対策術

例 C6セルの値 3
D6セルの値 2,400
E6セルの値 3年9ヶ月

  F6セルの値は41,400になる,
1行飛び置きに掛け算マクロコードを教えてください。
 D6セルの2,400/年
E6セル→3×(2400÷12)×69

質問者からの補足コメント

  • zongai様
    おはようございます。
    早速のご対応ありがとうございます。
    大変失礼いたしました、69という数字ではなく、45の方正しいです。

    45は3年9ヶ月の月数です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/10/02 05:40
  • 最終行はその時のデータ量によります。
    最終行は不定です。
    よろしくお願いします。

      補足日時:2020/10/02 05:44

A 回答 (2件)

質問というより完全な丸投げ依頼?



最終行の取得については
「excel VBA 最終行」
で検索すれば情報が見つかります。

月数については
「3年9ヶ月」という文字列から
「3」と「9」の数字を抽出する必要があるので、
これについては
「excel VBA 文字列 抽出」
で検索すれば情報が見つかります。
あとは、[年]×12+[ヶ月]で出すだけです。

検索のコツ、言葉を知っていれば自分でも解決できる場合もあると思うので、
今後の参考にしてください。

Sub sample()
  x = 6  '最初の行
  y = Cells(Rows.Count, 3).End(xlUp).Row '最後の行
  For i = x To y Step 2
    y = Left(Range("E" & i), InStr(Range("E" & i), "年") - 1)  '年
    m = Mid(Range("E" & i), InStr(Range("E" & i), "年") + 1, Len(Range("E" & i)) - 4)  'ヶ月
    mm = y * 12 + m '月数
    Range("F" & i) = Range("C" & i) * (Range("D" & i) / 12) * mm
  Next
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
お手数をおかけしました。

お礼日時:2020/10/02 12:10

例の内容と説明共に、よくわからない!


69ってどこから出てきた数字なのだ?

とりあえず、2行ごとに処理をする叩き台として、
ざっくり作ったものを挙げておきます。

Sub sample()
  x = 6  '最初の行
  y = 14 '最後の行
  For i = x To y Step 2
    Range("F" & i) = Range("C" & i) * (Range("D" & i) / 12) * 69
  Next
End Sub
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!