No.5ベストアンサー
- 回答日時:
それほどヒマでもないのですが、乗りかかった船だと思って作ってみました。
まず新しいブックを作成してください(ブック内にSheet1~Sheet3があることを確認、なければ作ってください)
Sheet1のA列にリストAの内容をコピーしてください。
Sheet2のA列にリストBの内容をコピーしてください。
次にメニューバーから「ツール」→「マクロ」→「VisualBasicEditor」を選びます。VisualBasicEditorが別ウィンドウで起動します。VisualBasicEditorのメニューバーの「挿入」→「標準モジュール」を選びます。
画面の右半分に真っ白な広いウィンドウが開きますので、ここに下記の点線内の内容を貼り付けます。
'-----------------------------------------
Sub データ比較()
Dim sa(65536) As Byte
Dim ii, fg, de1, de2 As Integer
Dim c1, c2, c3 As Integer
Dim c As Variant
Set WS1 = Worksheets("Sheet1")
Set WS2 = Worksheets("Sheet2")
Set WS3 = Worksheets("Sheet3")
de1 = WS1.Range("A1").End(xlDown).Row
de2 = WS2.Range("A1").End(xlDown).Row
WS3.Range("A1") = "AB両方"
WS3.Range("B1") = "Aのみ"
WS3.Range("C1") = "Bのみ"
WS3.Range("A2:C65536").ClearContents
For Each c In WS1.Range("A1:A" & de1)
fg = 0
For ii = 0 To de2 - 1
If StrComp(c, WS2.Range("A1").Offset(ii, 0).Value) = 0 Then
WS3.Range("A2").Offset(c1, 0).Value = c
sa(ii) = 1
fg = 1
c1 = c1 + 1
ii = de2
End If
Next
If fg = 0 Then
WS3.Range("A2").Offset(c2, 1).Value = c
c2 = c2 + 1
End If
Next
For ii = 0 To de2 - 1
If sa(ii) = 0 Then
WS3.Range("A2").Offset(c3, 2).Value = _
WS2.Range("A1").Offset(ii, 0).Value
c3 = c3 + 1
End If
Next
End Sub
'-----------------------------------------
貼り付けたら、Excelのほうに戻って、
メニューバーから「ツール」→「マクロ」→「マクロ」を選びます。「マクロ」と書かれたウィンドウが画面上に開きます。「データ比較」という行が反転していることを確認して(反転していないときは、クリックして反転させる)「実行」ボタンを押します。Sheet3に実行結果が書き出されます。
以上です。お望みのような結果が得られましたでしょうか?
(ふぅ、しんど)
No.7
- 回答日時:
#3です。
条件、というのは、色を付けるために使っている条件です。
条件付き書式を使用しているということは、
その設定においてある数値以上であるとか、等しいとかの
条件をつけているのではありませんか?
その条件式を作業列にもってくればできるのではないかと。
例えば「=a1=p1×0.5」という式で条件付けをしているなら、
作業列に=if(a1=p1×0.5,1,0)とすれば
条件を満たしている場合は、「1」となります。
この列をキーにしてオートフィルタで抽出できないか、
ということです。
No.6
- 回答日時:
あまりあれこれ言っても puriboo さんをお忙しくさせるだけと思っていましたが、
ちょっとだけ書かせていただきますね。
どこかのシートにSheet1のデータの下にSheet2のデータをつぎ足す形でコピーします。
もちろん見出しは1行目だけにあります。
データは上から隙間なく詰めてあるとします。
これを、名前をキーにして並べ替えます。
そして、名前がA列だとすると
B2に =IF(A1=A2,"",1) として、B1の右下の小さな黒いハンドルをWクリックして下までコピーして下さい。
自分より一つ前の行のセルが同じ行のセルと一致したら「1」が戻ります。
(重複しているという事です)
B列を選択してコピーし、値の貼り付けをします。
今度はB列をキーにして並べ替えます。
あとは1が立っている行を削除します。
No.4
- 回答日時:
> おっしゃるとおり、先程紹介していただいた
> 条件付書式で色をつけました。
> これでは不可能のようですね・・・。
そうですね、お役に立てなくて申し訳ありません。
しかし前のご質問に関数で比較する方が簡単ですというご回答がありますので
参考にされてみてはいかがでしょうか。
応用が利きますよ。
削除したい行、または削除したくない行に関数で○など戻るようにしておいて、
その上でフィルタオプションを使って絞込みをする、という手があります。
No.3
- 回答日時:
最終形をどうしたいのか、がいまいち見えてないので
的外れの回答でしたらすみません。
条件付き書式で色をつけているということは、
何らかの条件を満たす行を表示、もしくは非表示したい、
ということですよね?
例えば作業列を作り、その条件を満たすものを「1」
満たさないものを「0」とする計算式(if式)を入力して
それでオートフィルタをかける、という手法では
できませんか?
この回答への補足
説明不足で申し訳ないです。
具体的にしたいことは
リストA、リストB があり
重複するレコードを抽出したい
ということです。
まず重複リストを条件付書式で色をつけました。
そのあと、色をつけたセルを行単位で非表示にしたい
のです。
エクセルに詳しくないのですが、
>その条件を満たすものを「1」
>満たさないものを「0」
たとえば、作業列を作り、隣の列が緑だったら
「1」、
そうじゃなければ「0」という風にするときは
どうしたらよいのでしょう?
それができればたしかにオートフィルタで
できますね。
IF関数で”A1が緑”とかはどうやって指定すれば
良いのでしょうか?
ご回答よろしくお願いいたします
No.2
- 回答日時:
ANo.#1で書いた者ですが、削除になっていますね。
実はトゲがある書き方をしたつもりは全くなかったのです・・・。
先のサイトでご紹介した
「別シートにある文字列との重複チェック 」にある条件付き書式で色を付けられ、
その後それについて質問されたのかも知れないと思って
先のご質問との関連をお聞きしたまでです。
誤解を招いてしまったようでしたら申し訳ありません。
ご希望の操作はマクロ関数と名前の定義で実現するように思います。
ただ、これは今はヘルプにも載っていない方法ですので
もし puriboo さんがご希望であればご紹介させていただきますがいかがでしょうか。
ただしこれはセルに直接色を付けた場合に限ります。
先にご紹介したサイトで条件付き書式によって付けられた色の場合は
マクロ関数と言う手段が使えません。
というわけで先のご質問との関連をお聞きしたかったのです。
この回答への補足
ご返信ありがとうございます。
おっしゃるとおり、先程紹介していただいた
条件付書式で色をつけました。
これでは不可能のようですね・・・。
うーん。
どうしようか悩んでいます。
うまく2つのリストの重複するものを
抽出したいのですが。
初めからマクロでやったほうが良いのでしょうか?
関数などかなり素人ですので
詳しくレクチャーしてただけると助かります。
よろしくお願いいたします!
No.1
- 回答日時:
セルだけを非表示にすることは不可能です。
非表示にする場合は行単位か列単位になります。
どちらを使うのか補足してください。
あと、あんまり「急ぎ!」とか「緊急!」とか書くのはどうかと思います。ここの回答者の皆さんは「ボランティア」なのですから、ご自分の都合ばかり声高に主張されるのは、あまり良い印象ではないです。
(#1の方の、すこ~しトゲのある文章も、そのあたりに起因していると思いますよ?)
この回答への補足
焦りのあまり、マナー違反をしてしまい
申し訳ありませんでした。
色のついたセルを含む行単位での
(もしくは色のついてないセルを含まない行)
非表示で構いません。
操作方法ご存知でしたら、よろしくおねが致します。
☆☆☆お礼投稿になってしまいましたが
補足です☆☆
ちなみに、行がかなりたくさんあるので
それぞれを選択して、非表示にする、ではなく
例えば、選択範囲内で色のついたセルを含む行を
非表示に。
みたいな方法がありましたら、よろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 13:13
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/17 15:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
色付き行の非表示について
Excel(エクセル)
-
エクセルで特定の文字列が入った行を非表示にしたい
Excel(エクセル)
-
塗りつぶしのない行を非表示にするマクロ
Excel(エクセル)
-
-
4
excelのデータで色つき行の抽出方について教えてください
Excel(エクセル)
-
5
VBAで色の付いているセルの行削除
Excel(エクセル)
-
6
エクセル オートフィルタで絞り込みをしたデータの色つけ
Excel(エクセル)
-
7
色つき行の一括削除は?
Word(ワード)
-
8
EXCELにて複数列を同条件(色)で一括フィルタリングする
Excel(エクセル)
-
9
条件付き書式で、結果が1行ずれる
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで行の高さ及び列幅の...
-
Excel2017 フィルタ昇順並びがA...
-
エクセル VBA 行間隔を飛ばした...
-
基準日以前のデータを範囲を指...
-
Excelで並び替え後にア行...
-
時間の重複チェック
-
オートフィルタ後のデータから...
-
急ぎ!色のついたセルを非表示...
-
エクセル関数について
-
Excel 最小二乗法 二次関数
-
エクセル関数について
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
EXCELで日付を比べ3か月以内の...
-
検索条件に合うセルの個数を数...
-
文字列を比較し、相違するフォ...
-
Excel VBAでセルのクリアが出来...
-
行の一番右のデータセルと同じ...
-
プルダウンに【なし、平均、デ...
-
【Excel】数式の参照範囲を可変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
オートフィルタ後のデータから...
-
エクセルで行の高さ及び列幅の...
-
急ぎ!色のついたセルを非表示...
-
基準日以前のデータを範囲を指...
-
エクセルの時刻のカウントが出...
-
EXCELで日付を比べ3か月以内の...
-
【Excel VBA】指定した行の最大...
-
エクセル関数について
-
EXCEL 最終行のデータを他のセ...
-
文字列を比較し、相違するフォ...
-
プルダウンに【なし、平均、デ...
-
エクセル VBA 行間隔を飛ばした...
-
VBA 複数行の検索及び抽出
-
マクロで行の高さを設定したい
-
特定の行を選択して別のシート...
-
エクセル 複数行ある同一商品...
-
Excel 最小二乗法 二次関数
-
複数回答のクロス集計の方法
おすすめ情報