ここから本文です

エクセル マクロ 検索して処理

lie********さん

2009/11/413:20:29

エクセル マクロ 検索して処理

表1に図のような値を入力します。
表2は,表1の中から値を選び,入力します。
表3は,残った値を表示します。(→これをマクロで処理)
(表3の値=表1の値から表2の値を取り除いた値)

[質問]
表3のようなマクロはどのようにすればできますか?

r.Value,Is Nothing Then,値,xlWhole,Rows.Count,エクセル,処理

閲覧数:
720
回答数:
2
お礼:
25枚

違反報告

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

hir********さん

2009/11/416:46:34

こんにちは、いろいろと方法はあると思いますが次のコードではどうでしょうか


Sub Test()
Dim Dat As String, i As Long, r As Range
For Each r In Range("D2:D6")
Dat = Dat & "," & r & ","
Next r
For Each r In Range("B2:B10")
If UBound(Split(Dat, "," & r & ",")) = 0 Then
Cells(i + 2, 6).Value = r
i = i + 1
End If
Next r
End Sub

この回答は投票によってベストアンサーに選ばれました!

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

1〜1件/1件中

yuu********さん

2009/11/1003:01:56

解読しやすいように
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1432488344
の質問欄のマクロの書き方で書いておきます。

Sub 表3へ書き込み()
Dim R As Range, 表1 As Range, 表2 As Range, 表3 As Range
Set 表1 = Range("B2:B10")
Set 表2 = Range("D2:D10")
Set 表3 = Range("F2:F10")
表3.ClearContents
For Each R In 表1
If 表2.Find(R.Value, lookat:=xlWhole) Is Nothing Then '①
Range("F" & Rows.Count).End(xlUp).Offset(1, 0) = R.Value '②
End If
Next
End Sub


本来は「表1,表2,表3」にいちいち範囲をSetせずに直接記入したほうが今回はすっきりするのですが、一応わかりやすいように範囲をSetしてみました。
馴染みのあるコードを使用していますので解読するのもそんなに問題ないと思いますが、一応「①,②」部分の和訳を書いておきます。

①の和訳
If 表2.Find(R.Value, lookat:=xlWhole) Is Nothing Then~
●直訳すると→表2の範囲内でRの値(R.Value)に完全に一致(lookat:=xlWhole)するものを探し(Find)、その結果がなし(Nothing)のときは~
●わかりやすく書くと→表2の範囲内にRの値と完全に一致するものがないときは~

②の和訳(ここは問題ないと思いますが一応書いておきます。)
Range("F" & Rows.Count).End(xlUp).Offset(1, 0) = R.Value
→F列の最終セルの一つ下のセルにRの値を記入する

。。。。。。。。。。。。。。
「余談」
一番上に書いたURLのページに「ステップイン(F8を押す)」について書きましたが、「ステップイン」はキーボード操作だけではなくマウスでも操作が可能です。
すでにご存知かもしれませんが一応方法を書いておきます。

手順
①Bookを開く
②「Alt+F11」でVBE(Microsoft Visual Basic~)を開く
③VBE(Microsoft Visual Basic~)の
「表示」→「ツールバー」→「ユーザー設定(C)」→コマンド→分類(G)の「デバッグ」をクリック
そして右側を探すと「ステップイン」がありますので、それをクリックしたまま上のメニューバーに落とし、「ユーザー設定」を閉じます。
あとは「F8」を押す代わりに、上のメニューバーに落とした「ステップイン」のボタンをクリックするだけで「F8」を押した動きと同じ動きをします。
キーボードではなくマウスを主に使用される場合はこちらのほうが便利です。

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

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

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

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

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

閉じる

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

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

閉じる