ここから本文です

VBAでこのような条件が出ている場合、コードはどう書けばいいのでしょうか for...

アバター

ID非公開さん

2018/11/2611:26:32

VBAでこのような条件が出ている場合、コードはどう書けばいいのでしょうか

for文を使いセル「A1」~「A100」に「1」~「100」の値を入力しなさい。

ただし、3の倍数のときは数字の色を「青」、5のときは「黄色」、3と5の倍数のときは「緑」にすること。

値の入力と色の変更はRangeオブジェクトを使用すること。
例)
「A1」の値を1にするとき
Range("A1").Value= 1
「A1」の文字の色を青にするとき
Range("A1").Font.ColorIndex=5
黄色にするときは「6」緑にするときは「4」を代入する。
「A1」の値を変数「a」に代入するとき
Dim a As String
a = Range("A1").Value

閲覧数:
68
回答数:
3
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

yas********さん

2018/11/2612:19:58

はじめまして~

これでよいのでしょうか?

Sub Sample()
Dim i As Long
Dim a As String

For i = 1 To 100
With Range("A" & i)
.Value = i
a = .Value
If a Mod 15 = 0 Then
.Font.ColorIndex = 4
ElseIf a Mod 5 = 0 Then
.Font.ColorIndex = 6
ElseIf a Mod 3 = 0 Then
.Font.ColorIndex = 5
End If
End With
Next i
End Sub

いかがですか?

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

kik********さん

2018/11/2613:04:09

以下でどうなりますか

フォントの色 では確認しにくいので、背景色で・・・
フォントの色に変更するには、
★ の行をコメントに、次の行を有効にすれば・・・

3 と 5 の倍数をどう扱うか・・・が主ですよね?

どうなりますか



Option Explicit

Public Sub Samp1()
   Dim r As Range
   Dim vC As Variant
   Dim i As Long, k As Long, n As Long

   vC = Array(xlNone, 5, 6, 4) ' ★
'   vC = Array(xlAutomatic, 5, 6, 4)
   k = LBound(vC)

   i = 1
   For Each r In Range("A1:A100")
      With r
         .Value = i
         n = 0
         If ((i Mod 3) = 0) Then n = n Or 1
         If ((i Mod 5) = 0) Then n = n Or 2
         .Interior.ColorIndex = vC(k + n) ' ★
'         .Font.ColorIndex = vC(k + n)
      End With
      i = i + 1
   Next
End Sub

プロフィール画像

カテゴリマスター

lin********さん

2018/11/2612:38:01

Sub Sample()
Dim i As Long
For i = 1 To 100
If i Mod 3 = 0 And i Mod 5 = 0 Then
Cells(i, "A").Font.ColorIndex = 4
ElseIf i Mod 3 = 0 Then
Cells(i, "A").Font.ColorIndex = 5
ElseIf i Mod 5 = 0 Then
Cells(i, "A").Font.ColorIndex = 6
End If
Cells(i, "A").Value = i
Next i
End Sub

簡単な説明です。

For i = 1 To 100

1行目から100行目まで処理。

If i Mod 3 = 0 And i Mod 5 = 0 Then

もし、「i」の値が、「3」でも割り切れ、「5」でも割り切れれば、

「Mod」は、割った余りです。

「5÷3=1 余り2」の「2」です。

この余りが「0」になる、ということは「割り切れる」ということ、すなわち、その倍数です。

Cells(i, "A").Font.ColorIndex = 4

フォントの色を「4(青)」に設定しています。

ElseIf i Mod 3 = 0 Then

それ以外で、「3」でのみ割り切れた場合は、

Cells(i, "A").Font.ColorIndex = 5

フォントの色を「5(黄)」に、

ElseIf i Mod 5 = 0 Then

それら以外で「5」でのみ割り切れた場合は、

Cells(i, "A").Font.ColorIndex = 6

フォントの色を「6(緑)」に設定しています。

Cells(i, "A").Value = i

「i」の値を、セルに書き込んでいます。

Next i

を、1行目から100行目まで繰り返しています。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる