質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

1413閲覧

Excel VBAで範囲から値を求めるには

koko2

総合スコア21

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2020/05/09 06:55

Sub max() Dim ws2 As Worksheet Set ws2 = Worksheets("Sheet2") Dim maxVal1 As Variant, maxVal2 As Variant Dim i As Variant, h As Variant Dim rng1 As Variant, rng2 As Variant Dim LASTROW As Long LASTROW = ws2.Cells(Rows.Count, 1).End(xlUp).Row rng1 = ws2.Range(Cells(2, 3), Cells(LASTROW, 3)) rng2 = ws2.Range(Cells(2, 4), Cells(LASTROW, 4)) maxVal1 = WorksheetFunction.max(rng1) maxVal2 = WorksheetFunction.max(rng2) For i = 2 To LASTROW Cells(i, 8).Value = Cells(i, 3) / maxVal1 Next For h = 2 To LASTROW Cells(i, 9).Value = Cells(i, 4) / maxVal2 Next End Sub

<エラー部分>
割り算を順にするのですが、I列が空欄となります。"I9"のセルが"0"と入力されてしまいます。修正すべき方法などお教えいただければ幸いです。

<やりたいこと>
①C列とD列、それぞれの列ごとに最大値を取得
②次にC2のセルですと H2=C2/C列の最大値、値をH2に貼り付け、
H3=C3/C列の最大値、最終行までデータ取得
③さらに、I2=D2/D列の最大値、値をI2に貼り付け、データ一番下行までデータ取得
下記のようにしたいと思っています。
イメージ説明

ご教示のほど、どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

For h = 2 To LASTROW

For i = 2 To LASTROW
に変えてください。

投稿2020/05/09 08:00

tatsu99

総合スコア5493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koko2

2020/05/09 08:09

教えてくださった通り修正しましたら問題なく出来ました。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問