人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

マクロの簡単なの質問をさせて下さい。

?右の列にある数字が、左の列にある場合は青色。
?右の列にある数字が、左の列にない場合は赤色。

というマクロを作りたいのですが、コードを教えて下さい。お願い致します。

あと、例は数字にしたのですが、文字に対応できるもだと助かります。

1205139256
●拡大する

●質問者: consultation10
●カテゴリ:コンピュータ インターネット
✍キーワード:コード マクロ 対応 数字 赤色
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● pahoo
●19ポイント

マクロとは、Excel VBAのことという前提で回答します。

ifステートメントとColorIndexプロパティを使って実現できます。具体的な方法については下記を参照下さい。


2 ● beatgoeson
●19ポイント

わざわざVBAを使わなくても、条件付き書式を使えばできそうです。

以下の例は、左の列がA1?A9まで数字が入力されていると仮定します。

(1) 右の列の最初のセル(例えばC1)にカーソルを移動して、メニューバーから「書式」→「条件付き書式」を選択

(2) 条件(1)に以下を設定

「数式が」

「=ISERROR(VLOOKUP(C1,A1:A9,1,FALSE))」

さらに、[書式]をクリックして、パターンから赤い色を選択し[OK]

(A列からVLOOKUP関数を使って探して、データが存在しなければISERROR関数がTRUEを返す)

(3) [追加]ボタンをクリックして条件を追加

(4) 条件(2)に以下を設定

「数式が」

「=NOT(ISERROR(VLOOKUP(C1,A1:A9,1,FALSE)))」

さらに、[書式]をクリックして、パターンから青い色を選択し[OK]

(A列からVLOOKUP関数を使って探して、データが存在すればISERROR関数がFALSEを返すので、NOT関数で逆のTRUEを返すようにした)

(5)C1が選択されている状態から、「書式とコピー/貼り付け」(ハケのボタン)をクリックする。

するとセルが点線で点滅してる状態になるので、 C2から数字が入ってるセルまでの範囲を選択

条件付き書式は、http://www.eurus.dti.ne.jp/~yoneyama/Excel/jyo-syo.html 辺りを参考に。


3 ● beatgoeson
●18ポイント

すみません、さきほどの回答に間違いがありました。

-----------------

わざわざVBAを使わなくても、条件付き書式を使えばできそうです。

以下の例は、左の列がA1?A9まで数字が入力されていると仮定します。

(1) 右の列の最初のセル(例えばC1)にカーソルを移動して、メニューバーから「書式」→「条件付き書式」を選択

(2) 条件(1)に以下を設定

「数式が」

「=ISERROR(VLOOKUP(C1,$A$1:$A$9,1,FALSE))」

さらに、[書式]をクリックして、パターンから赤い色を選択し[OK]

(A列からVLOOKUP関数を使って探して、データが存在しなければISERROR関数がTRUEを返す)

(3) [追加]ボタンをクリックして条件を追加

(4) 条件(2)に以下を設定

「数式が」

「=NOT(ISERROR(VLOOKUP(C1,$A$1:$A$9,1,FALSE)))」

さらに、[書式]をクリックして、パターンから青い色を選択し[OK]

(A列からVLOOKUP関数を使って探して、データが存在すればISERROR関数がFALSEを返すので、NOT関数で逆のTRUEを返すようにした)

(5)C1が選択されている状態から、「書式とコピー/貼り付け」(ハケのボタン)をクリックする。

するとセルが点線で点滅してる状態になるので、 C2から数字が入ってるセルまでの範囲を選択

条件付き書式は、http://www.eurus.dti.ne.jp/~yoneyama/Excel/jyo-syo.html 辺りを参考に。


4 ● SALINGER
●18ポイント

マクロだと

Sub Macro()
 Dim i As Long
 Dim obj As Object
 i = 1
 While Cells(i, 3).Value <> ""
 Set obj = Range("A:A").Find(Cells(i, 3).Value)
 If obj Is Nothing Then
 Cells(i, 3).Interior.ColorIndex = 3
 Else
 Cells(i, 3).Interior.ColorIndex = 5
 End If
 i = i + 1
 Wend
End Sub

ただし、これは条件付書式でできます。

C1セルの条件付き書式で数式を

青なら

=COUNTIF(A:A,C1)>=1

赤なら

=COUNTIF(A:A,C1)=0

にすればいいです。


5 ● dungeon-master
●18ポイント

マクロではなくて、条件付き書式で。


リストはA1?A100に収まっているとします。

C1のセルに条件付き書式で以下のように設定します。

条件1

「数式が」 =NOT(ISNA(VLOOKUP(C1,A$1:A$100,1,FALSE)))

書式を青に設定

条件2

「数式が」 =C1<>""

書式を赤に設定


あとは、C1をコピーして、必要なC列のセルに「形式を選択して貼り付け」で

書式だけコピーしていけばOKです。


条件1のVLOOKUP(C1,A$1:A$100,1,FALSE)では、A1?A100の中からC1の値に

完全一致でHitするものを探してきます。

Hitしたら該当するA列の値を返し、なければ#N/Aを返すので、NOT(ISNA())で判定。

条件成立(リストに見つけた)なら書式が青なり、そうでない場合は条件2を見ます。

条件2では入力値があれば書式を赤に、なければ書式指定なしとしています。


扱うデータは文字列でも数字でもOKのはずです。

ただし、たとえば数値の100がリストにあっても、文字列の100はHitしません。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ