Excel VBA質問箱 IV

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

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


10520 / 13644 ツリー ←次へ | 前へ→

【21311】別ブックのセルの値を比較 つっきー 05/1/18(火) 17:38 質問[未読]
【21314】Re:別ブックのセルの値を比較 IROC 05/1/18(火) 17:58 回答[未読]
【21322】Re:別ブックのセルの値を比較 つっきー 05/1/18(火) 18:54 質問[未読]
【21324】Re:別ブックのセルの値を比較 [名前なし] 05/1/18(火) 19:19 発言[未読]
【21338】Re:別ブックのセルの値を比較 G-Luck 05/1/19(水) 11:38 発言[未読]
【21339】Re:別ブックのセルの値を比較 つっきー 05/1/19(水) 11:58 お礼[未読]

【21311】別ブックのセルの値を比較
質問  つっきー  - 05/1/18(火) 17:38 -

引用なし
パスワード
   はじめまして。

book1の列A1、A2、A3、、、のセルの値を1つずつbook2の列A1、A2、A3、、、の
セルの値と比較し同じ値なら青色、違うなら赤色にするというような
マクロを作成したいのですが、下記でやってみたところ処理が終わらず
しまいにはエクセルが固まってしまいます。
何かよいやり方がないかご教授していただけるようお願いいたします


Sub test()

Dim i As Integer
Dim J As Integer

 Workbooks.Open Filename:="book1.xls"
 Worksheets(1).Range("A" & J).Select
 
 
 Workbooks.Open Filename:="book2.xls"
 Worksheets(1).Range("A" & i).Select
 
 J = 1
 i = 1
 
 Do While Range("A" & i).Value <> " "
    
    
    If Range("A" & i).Value = Range("A" & J).Value Then
      Range("A" & i).Interior.ColorIndex = 5
    Else
      
    Range("A" & i).Interior.ColorIndex = 3
    
    
    J = J + 1
    
    i = i + 1
    
    End If
    
  Loop
End Sub

【21314】Re:別ブックのセルの値を比較
回答  IROC  - 05/1/18(火) 17:58 -

引用なし
パスワード
   どちらのブックの色を変えるのでしょうか?
以下は Boo1 を基準にした場合です。

Dim i As Long
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Workbook

 Set wb1 = Workbooks.Open("C:\Book1.xls")
 Set wb2 = Workbooks.Open("C:\Book2.xls")
 
 Set ws1 = wb1.Worksheets(1)
 Set ws2 = wb2.Worksheets(1)
 
 With ws1
 
  For i = 1 To .Range("A65536").End(xlUp).Row
    
     If .Range("A" & i).Value = ws2.Range("A" & i).Value Then
       .Range("A" & i).Interior.ColorIndex = 5
     Else
       .Range("A" & i).Interior.ColorIndex = 3
     End If
  Next i
 
 End With

【21322】Re:別ブックのセルの値を比較
質問  つっきー  - 05/1/18(火) 18:54 -

引用なし
パスワード
   IROC さんありがとうございます。
色をかえたいのはbook1の方でした。
うまく動かすことができました。

追加で質問させていただきたいのですが
Book1のセルA1に対して、Book2のセルA1,2,3・・・と比較し、その後は
Book1のセルA2に対して、、、、Book2のセルA1,2,3・・・というように比較する
場合には i の他にもうひとつ 変数を定義して
for文で検索をまわせばできるものなのでしょうか?
質問ばかりで恐縮ですがご教授よろしくお願いいたします。

【21324】Re:別ブックのセルの値を比較
発言  [名前なし]  - 05/1/18(火) 19:19 -

引用なし
パスワード
   ▼つっきー さん:
>IROC さんありがとうございます。
>色をかえたいのはbook1の方でした。
>うまく動かすことができました。
>
>追加で質問させていただきたいのですが
>Book1のセルA1に対して、Book2のセルA1,2,3・・・と比較し、その後は
>Book1のセルA2に対して、、、、Book2のセルA1,2,3・・・というように比較する
>場合には i の他にもうひとつ 変数を定義して
>for文で検索をまわせばできるものなのでしょうか?
>質問ばかりで恐縮ですがご教授よろしくお願いいたします。

...は前のと同じ
for j = 1 to ...
for i = j to ...
 ...

【21338】Re:別ブックのセルの値を比較
発言  G-Luck  - 05/1/19(水) 11:38 -

引用なし
パスワード
   最初に書かれたプログラムについて
判定の部分が無限ループになっていますよ。
A1 = A1のときiもJも増加しない。
あと、" " と "" は違うので、気をつけたほうがいいですよ。
"" = 空白(長さ0の文字列)
" " = スペース
この場合はおそらく "" を使うべきでしょう。

書き直すなら

Do While Range("A" & i).Value <> ""
  If Range("A" & i).Value = Range("A" & J).Value Then
    Range("A" & i).Interior.ColorIndex = 5
  Else
    Range("A" & i).Interior.ColorIndex = 3
  End If
  J = J + 1
  i = i + 1
Loop

【21339】Re:別ブックのセルの値を比較
お礼  つっきー  - 05/1/19(水) 11:58 -

引用なし
パスワード
   ▼名前なしさん、G-Luck さんありがとうございます。

とても勉強になりましたし、
うまく動作確認もできました。
また、何かの際には投稿させていただき
ますのでよろしくお願いいたいます。

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