Excel VBA 質問スレッド No.62 (解決済)

特定の列に数値が入っていたら、計算をしてほしい

投稿者 : ちゃむた     投稿日時 : 2020/02/15(Sat) 22:25:40     OS : Windows 10     EXCEL : Excel 2016
VBAの超初心者です。
現在勉強中ですので、よろしくお願い致します。
内容は以下の通りです。

 A   B   C   D   E   F
1       1  100
2       2  500
3       3  250

5       1  600

この場合、C列に数値が入っていた場合、D/Cを実行して結果をBに表示する
コードを書きたいのですが、ご教授お願いいたします。
なお私が自分で考えた過程は以下の通りです。

Sub keisan()
'計算するやつ
Range("B2").Value = Range("D2") / Range("C2")

End Sub


Sub もしものやつ()


'ifの条件式
If Range("C2") <> "" Then Range("B2").Value = Range("D2") / Range("C2")

End Sub

Sub retunikaeru()

'上記を列に変換

If Columns(3) <> "" Then Columns(2).Value = Columns(3) / Columns(2)

列に変えるコードは上手くいかずに躓いてしまいました。
よろしくお願いいたします。



End Sub

[返信 1] Re : 特定の列に数値が入っていたら、計算をしてほしい
投稿者 : すずけん     投稿日時 : 2020/02/16(Sun) 08:12:39
セルのアクセス方法は Range 以外にも Cells を使う方法があります。
ループ処理もfor文やDo until文などありますので、
両方覚えてそのときの状況に応じて使い分けてください。


Sub sample()

' データ行を表す変数
Dim row As Long

' データ行に対してループ処理
' データ行の範囲は適宜変更してください。
For row = 1 To 10

' C列に値が入っていた場合
If Cells(row, 3) <> "" Then

' 割り算の結果をB列に代入
Cells(row, 2) = Cells(row, 3) / Cells(row, 4)

End If

Next

End Sub

[返信 2] Re : 特定の列に数値が入っていたら、計算をしてほしい
投稿者 : ちゃむ     投稿日時 : 2020/02/16(Sun) 14:58:51
■[返信 1] すずけんさん(2020-02-16 08:12:39)の記事
> セルのアクセス方法は Range 以外にも Cells を使う方法があります。
> ループ処理もfor文やDo until文などありますので、
> 両方覚えてそのときの状況に応じて使い分けてください。

すずけんさんありがとうございました!
この問題は解決できました。
変数の使い方とループの考え方が慣れない部分があります。
列を一括で指定すれば良いと思ってたのですが、セルを1つ指定して、
それを変数の値までループさせると言う点が勉強になりました!

当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2021-05-10 03:56:32 )

Page
Top