Sub jouken_hantei1()
Dim k
For k = 2 To 11
If Range("c" & k).Value > 100 Then 'c2が100より大きかったら(条件)
With Range("A" & k)
.Value = "○" 'A2を「○」にする(処理)
.Font.Name = "meiryo ui"
.Font.Color = vbBlue
.Font.Size = "15"
End With
Else
With Range("A" & k)
.Value = "×" 'A2を「×」にする(処理)
.Font.Name = "meiryo ui"
.Font.Color = vbRed
.Font.Size = "15"
End With
End If
Next
End Sub
with~はネットで調べました。 似た要領で、元に戻す方法もマクロを作ってみました。
Sub jouken_hantei1_sakujo()
Dim k
For k = 2 To 11
With Range("A" & k)
.Value = ""
.Font.Name = "MS明朝"
.Font.Color = vbBlack
.Font.Size = "10"
End With
Next
End Sub
jouken_hantei1 では、やはり、インデントがおがしいです。 dim k, for k = 2 to 11 のところが、一段多すぎです。 作業のプロセスを今一度点検してください。
あと、if文で分岐したあとにやっていることが重複しているので、僕なら、以下のどちらかで↓書きます。
Sub jouken_hantei1_ogawa0()
Dim k
For k = 2 To 11
Range("A" & k).Font.Name = "meiryo ui"
Range("A" & k).Font.Size = "15"
If Range("c" & k).Value > 100 Then
Range("A" & k).Value = "○"
Range("A" & k).Font.Color = vbBlue
Else
Range("A" & k).Value = "×"
Range("A" & k).Font.Color = vbRed
End If
Next
End Sub
Sub jouken_hantei1_ogawa1()
Dim k
For k = 2 To 11
With Range("A" & k)
.Font.Name = "meiryo ui"
.Font.Size = "15"
End With
If Range("c" & k).Value > 100 Then
With Range("A" & k)
.Value = "○"
.Font.Color = vbBlue
End With
Else
With Range("A" & k)
.Value = "×"
.Font.Color = vbRed
End With
End If
Next
End Sub
あるいは、実は、with ... end with の中に if 文を入れられるので、以下。 もはや基礎編の演習をはじめたばかりの方向けの情報ではないですが...。
Sub jouken_hantei1_ogawa2()
Dim k
For k = 2 To 11
With Range("A" & k)
.Font.Name = "meiryo ui"
.Font.Size = "15"
If Range("c" & k).Value > 100 Then
.Value = "○"
.Font.Color = vbBlue
Else
.Value = "×"
.Font.Color = vbRed
End If
End With
Next
End Sub
浦山大さんの投稿
(投稿ID: 3352)
[1]書式も付けてみたかったので、自分なりに調べて動くマクロを作りました。
with~はネットで調べました。
似た要領で、元に戻す方法もマクロを作ってみました。
※元に戻す時に、「標準設定に戻す」って簡単に書けないか?
と感じました。
調べているとありそうですが、きっともっと先のことだろうと考えます。
今は基礎を固める時期かと思いますので、まず課題として与えられていることを吸収しに次に行きたいと思います。
小川慶一さんのコメント
(コメントID: 4812)
>※元に戻す時に、「標準設定に戻す」って簡単に書けないか?
>と感じました。
jouken_hantei1_sakujo は、「書式を元に戻して」いるのではなく、厳密には、「標準設定と同じ書式に設定して」います。
標準設定に戻す方法を知るには、導入編で学んだ「自動記録」を活用できます。
自動記録しつつ、リボンの[ホーム]→[編集]グループ内、[書式のクリア]を選択。
すると、 Selection.ClearFormats というコードを得られます。
そして、 Selection の部分を Range("A" & k) 等に書き直します。
jouken_hantei1 では、やはり、インデントがおがしいです。 dim k, for k = 2 to 11 のところが、一段多すぎです。
作業のプロセスを今一度点検してください。
あと、if文で分岐したあとにやっていることが重複しているので、僕なら、以下のどちらかで↓書きます。
あるいは、実は、with ... end with の中に if 文を入れられるので、以下。
もはや基礎編の演習をはじめたばかりの方向けの情報ではないですが...。