ここから本文です

VBAを始めたばかりで動作の不具合が分からず困っています。 やりたい内容 別の...

sho********さん

2017/4/1111:58:12

VBAを始めたばかりで動作の不具合が分からず困っています。

やりたい内容
別の場所に保存したDATABOOKから条件を読み出しアクティブセルの数値に上限・下限で色を反映させるといった感じです。

動作不具合の内容は
標準モジュールの中入れたプログラムは正常に動作します。
PERSONAL.XLSにプログラムを入れて実行するとデバックエラーは出ないのですが何の変化も起きずプログラムがうまく動作してない感じです。

PERSONAL.XLSを使った理由はbookが50以上その中sheetも複数ありそのsheet全てにコマンドボタンを配置する必要があり出来るだけ簡単にマクロを反映させたいと思い素人ながら考えた結果です。

プログラムの修正または何か他の良い方法があればと思い投稿しました。
何卒よろしくお願いします。


↓プログラムはこちら↓
Public Sub 長()
Application.ScreenUpdating = False
Workbooks.Open "C:¥DATA.xls" 'DATAを開く
ThisWorkbook.Activate
Application.ScreenUpdating = True

Dim ws1 As Worksheet, ws2 As Worksheet
Dim a, b, i As Long, j As Long
Set ws1 = Workbooks("DATA.xls").Worksheets("Sheet1") 'DATA参照
Set ws2 = ActiveSheet
a = ws1.Cells(Rows.Count, "A").End(xlUp).Row
b = ws2.Cells(Rows.Count, "F").End(xlUp).Row
For i = 22 To b
For j = 2 To a
If ws2.Cells(i, "G").Value = ws1.Cells(j, "C").Value Then
If ws2.Cells(i, "F").Value > ws1.Cells(j, "A").Value Then
ws2.Cells(i, "F").Resize(1, 2).Interior.ColorIndex = 6 '背景黄
ws2.Cells(i, "F").Resize(1, 2).Font.ColorIndex = 3 '文字赤
Exit For
ElseIf ws2.Cells(i, "F").Value < ws1.Cells(j, "B").Value Then
ws2.Cells(i, "F").Resize(1, 2).Interior.ColorIndex = 5 '背景青
ws2.Cells(i, "F").Resize(1, 2).Font.ColorIndex = 2 '文字白
Exit For
Else
ws2.Cells(i, "F").Resize(1, 2).Interior.ColorIndex = xlNone
ws2.Cells(i, "F").Resize(1, 2).Font.ColorIndex = 0

Exit For
End If
End If
Next j
Next i
Workbooks("DATA.xls").Close SaveChanges:=False 'DATAを閉じる
End Sub

補足条件付き書式も検討しましたが元となる番号が50種類以上ありその条件が変わった場合いちから変更する必要や文字だけでは説明が長くなるので割愛しますが他にも複数の問題があり断念しました。

F&amp;quot,Font.ColorIndex,DATA.xls&amp;quot,ws1.Cells,Value Then,条件付き書式,リアルタイム

閲覧数:
42
回答数:
1

違反報告

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

プロフィール画像

カテゴリマスター

san********さん

2017/4/1113:42:47

他のブックから転記するのはマクロでやるのは良いとして...

数値の条件に対して色を変える程度なら
条件付き書式のほうが良いと思います。

リアルタイムに判断してくれるので
修正したいときにも便利だと思いますよ。

  • 質問者

    sho********さん

    2017/4/1118:13:16

    回答ありがとうござます。
    条件付き書式も検討しましたが元となる番号が50種類以上ありその条件が変わった場合いちから条件付き書式を変更する必要があることや他の不具合となる条件が複数あるためマクロでやることにしました。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/4/11 20:26:43

戻るブックをオブジェクト型変数に格納しておく方法で自己解決しました。

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

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

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

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

閉じる

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

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

閉じる