Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1817 / 13645 ツリー ←次へ | 前へ→

【71729】引き算し、一方を削除して、赤く染める 12/4/3(火) 13:54 質問[未読]
【71730】Re:引き算し、一方を削除して、赤く染める とおりすぎ 12/4/3(火) 15:42 回答[未読]
【71735】Re:引き算し、一方を削除して、赤く染める ドカ 12/4/4(水) 15:01 回答[未読]
【71743】Re:引き算し、一方を削除して、赤く染める 12/4/5(木) 10:17 お礼[未読]

【71729】引き算し、一方を削除して、赤く染める
質問    - 12/4/3(火) 13:54 -

引用なし
パスワード
   1回目
 A1〜A10=1,2,3,4,5,6,7,8,9,10
 に対して
 B1〜B10=100,110,120,130,140,150,160,170,180,190
 と入力。
2回目
 A11〜A18=2,4,6,8,10,12,14,16
 に対して
 B11〜B18=200,210,220,230,240,250,260,270
 と入力。
ここから質問です。
1.A列に同じ数値があれば、引き算 Ci=Bi−BJ を行い出力する。
 この場合ですと
 C2,C4,C6,C8,C10=-90、-80、−70、−60、−50 と出力
2.2回目のAi、Biを削除する。
 この場合ですと
 A11〜A15、B11〜B15を削除する。
3.Ciに出力したAiを赤く染める。
を、下記のステートメントにしてみました。が、
Range("Ci") = Range("Bi") - Range("Bj")
でエラーが発生します。
ご指導をお願いいたします。
Sub 引き算()
  
  Dim lastgyou As Integer
  Dim i    As Integer
  Dim j    As Integer
  Dim atai   As Integer
  
  Sheets("Sheet1").Select
  ActiveSheet.Range("A1").End(xlDown).Select
  lastgyou = ActiveCell.Row
  For i = 1 To lastgyou - 1
  atai = ActiveSheet.Cells(i, 1).Value
    For j = i + 1 To lastgyou
     If atai = ActiveSheet.Cells(j, 1).Value Then
      Range("Ci") = Range("Bi") - Range("Bj")
       If Range("Ci") < 0 Then
         Range("Ai").Interior.ColorIndex = 3
         Range("Aj:Bj").Delete
        End If
     End If
    Next
   Next
End Sub

【71730】Re:引き算し、一方を削除して、赤く染める
回答  とおりすぎ  - 12/4/3(火) 15:42 -

引用なし
パスワード
   Dim i as long
i=1
MsgBox "Ci"
MSgBox "C" & i

とか。

【71735】Re:引き算し、一方を削除して、赤く染める
回答  ドカ  - 12/4/4(水) 15:01 -

引用なし
パスワード
   ▼隼 さん

単純なミスだけ、直してみました。

Sub 引き算()
 
  Dim lastgyou As Integer
  Dim i    As Integer
  Dim j    As Integer
  Dim atai   As Integer
 
  Sheets("Sheet1").Select
  ActiveSheet.Range("A1").End(xlDown).Select
  lastgyou = ActiveCell.Row
  For i = 1 To lastgyou - 1
  atai = ActiveSheet.Cells(i, 1).Value
   For j = i + 1 To lastgyou
    If atai = ActiveSheet.Cells(j, 1).Value Then
      Range("C" & i) = Range("B" & i) - Range("B" & j)
       If Range("C" & i) < 0 Then
         Range("A" & i).Interior.ColorIndex = 3
         Range("A" & j, "B" & j).Delete
       End If
     End If
    Next
   Next
End Sub

【71743】Re:引き算し、一方を削除して、赤く染める
お礼    - 12/4/5(木) 10:17 -

引用なし
パスワード
   ▼ドカ さん:
回答に感謝いたします。

>▼隼 さん
>
>単純なミスだけ、直してみました。
>
>Sub 引き算()
> 
>  Dim lastgyou As Integer
>  Dim i    As Integer
>  Dim j    As Integer
>  Dim atai   As Integer
> 
>  Sheets("Sheet1").Select
>  ActiveSheet.Range("A1").End(xlDown).Select
>  lastgyou = ActiveCell.Row
>  For i = 1 To lastgyou - 1
>  atai = ActiveSheet.Cells(i, 1).Value
>   For j = i + 1 To lastgyou
>    If atai = ActiveSheet.Cells(j, 1).Value Then
>      Range("C" & i) = Range("B" & i) - Range("B" & j)
>       If Range("C" & i) < 0 Then
>         Range("A" & i).Interior.ColorIndex = 3
>         Range("A" & j, "B" & j).Delete
>       End If
>     End If
>    Next
>   Next
>End Sub

1817 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free