- ベストアンサー
Excel_VBA 2列を比較し、同番号行色付け
- Excel_VBAを使用して、2つの列を比較し、同じ番号の行に色を付けたいと考えています。
- 色付けする際には、特定の条件を満たす行に特定の色を付けたいです。
- また、最新の日付の行にある特定のコードと同じコードの行にも色を付けたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
- kagakusuki
- ベストアンサー率51% (2610/5101)
- kagakusuki
- ベストアンサー率51% (2610/5101)
- kagakusuki
- ベストアンサー率51% (2610/5101)
関連するQ&A
- 【Excel VBA】重複行の削除
はじめまして。 IDの重複を削除し、日付データを横1列にまとめるVBAについてご教示いただけますと幸いです。 ------------------------------------------------------- ▼シート1(データ入力がされているシート) A B C D E F 1 ID 日付 2 1234 1/1 1/6 1/10 1/20 3 1234 2/3 2/20 4 1234 3/2 5 7777 1/10 1/15 1/20 6 7777 2/2 2/12 2/22 7 9876 2/3 ⇓ マクロ起動後 ▼シート2(重複行を削除しまとめたシート) A B C D E F G H 1 ID 日付 2 1234 1/1 1/6 1/10 1/20 2/3 2/20 3/2 3 7777 1/10 1/15 1/20 2/2 2/12 2/22 4 9876 2/3 【補足】 列情報 ・A列…ID ・B-F列…日付(左詰め) ※日付はIDごと月毎に行が変わるため、IDによって複数行存在する場合があります。 ※A列のIDは重複しない場合もあれば、4行以上ある場合があります。 ※シート1のデータはおおよそ1000-5000行です。 ※IDに対して、日付は5つあれば問題ありません。そのためG列以降の日付を削除しても支障はございません。 ------------------------------------------------------ VBAの知識があまりなく、調べて出てきたものをコピペ使用も試みたのですが、 上手く動かす事ができませんでした…。 お力添え頂けますと幸いです…。 Windows10でエクセル2016を使用しております。 何卒宜しくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- VBA Excel 特定の記号を含む行で
Excel VBAにて、質問します。お手数ですが宜しくお願いします。 画像の様に、E列に特定の記号"●"や"▲"含んだ行以外、抽出し 印刷のシート名に貼り付けしたいと思います。 ですが、条件がありまして、その条件とは、InputBoxを使って 抽出したい日付を入力し、入力した日付、時刻までの記号"●"や"▲"以外 を抽出できる様にしたいです。 例えば実行時の日付が8/21日ならば InputBoxに、8/28 20:00と入力したら、入力した日付、時刻までの 記号"●"や"▲"以外を抽出となります。 画像の様に、1行目の見出し名も貼り付けできる様に、VBAを使って できませんでしょうか? ※ 画像ではSheet1のみ載せましたが、 Sheet2とSheet3とSheet4とSheet5とSheet6まで似た内容のデータがあるので シート名を指定して動作できると良いです。 Array("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5","Sheet6")見たいな 感じでできますでしょうか? どの様なコードを書けば良いでしょうか? 御面倒お掛けしますが宜しくお願いします。
- ベストアンサー
- Visual Basic
- 2つの表を比較して、重複する行を色づけするマクロ
下記の様な日付の名前の2つのシートが有るのですが、表2の機種を参照して、B~T列全てが一致する場合、U列チェック欄に○と入力する様なマクロを作成したいのですが、何か良い方法が有りましたらご教授下さい。 マクロコードは簡単なものや定番のものなら読めますが 自分ではあまり書けません。 どなたかよろしくお願いいたします。 (日付シート1) (日付シート2) B~T列 U列 B~T列 U列 機種 機番 製造日 チェック 機種 機番 製造日 チェック A-1 00 0000 ○ A-1 00 0000 ○ A-2 01 0001 ○ A-2 01 0001 ○ A-3 02 0002 ○ A-3 02 0002 ○ A-4 03 0003 ○ A-4 03 0003 ○ A-5 04 0004 ○ A-5 04 0004 ○ B-1 00 0000 C-1 00 0000 B-1 01 0001 C-2 01 0001 B-3 02 0002
- ベストアンサー
- オフィス系ソフト
- エクセル2つのブック列の比較 VBAや関数について
Aと言うブックとBと言うブックがあるとして、 Aのブックは共有ファイルではなく、Zサーバー上にあるエクセルファイルです。 Aのブックに色々な人が行の挿入、商品名の書き換え等をしていて、いつ挿入されたのかが分からないため、VBAや関数を使って調べたいのですが、 Aのブックは10シートあり、サイズ別で行も並べられているため、新しい情報を特定するのが困難です。 BのブックはAと同じシート名を作り、必要箇所だけコピーしているデータです。(オリジナルブック) やりたいことは、Aのブックから探してBのブックに追加されていない情報、一致していない情報があれば、色を付けてわかりやすくするか、Bのブックの新しいシートに結果を出すようなことがしたいのですが、可能でしょうか? AのブックはA列-IC列まであるのですが、必要な部分は全シートB列(商品コード)とE列(商品名)のみです。 Bのブックには同じシート名にして、A列に商品コード、B列に商品名としております。 AのブックのB列、E列を参照して、BのブックのA列、B列になければ、結果を表示したいです。 もし出来る方法があれば、教えてほしいです。 今はシートごとに左右比較して、見ていってるのですが、10シートの中に、行数は2000行くらいあるため、それで半日おわってしまいます。 もし分かるかた、マクロを組める方がいれば教えて頂きたいです。宜しくお願い致します。
- ベストアンサー
- Visual Basic
- 【Excel VBA】データの最終行について
Excel2003を使用しています。 ある一覧表形式のデータSheet1をSheet2に値のみコピーして、このSheet2を“印刷用”として、ページ設定等をして、印刷のみに使用しようと思っています。 Sheet2のI列、J列、K列には数値が入力されていて、I列、J列、K列のデータの最終行の1行下に、それぞれ6行目からデータ最終行までの合計の数式が入力されるよう、コードを追加したのですが、数式は入力されるものの、入力したい行に数式が入力されません。 マクロを実行して、数式が入力された行を見てみると、301行目に入力されていました。 Sheet1は別のシートのデータを数式により表示していて、数式が300行まで入力されているので、Sheet2の元になっているSheet1の影響(?)なのかな~?と…。こういう場合、どうすればいいでしょうか? コードは下記のようになっています。 よろしくお願いします。 ---------------------------------------- Sub 印刷用作成() Dim i As Integer Dim j As Long Sheets("Sheet1").Activate Range("B6:L6", Range("L6").End(xlDown)).Select Selection.Copy Sheets("Sheet2").Select Range("B6").PasteSpecial xlPasteValues Application.CutCopyMode = False For i = 9 To 11 j = Application.Max(j, Cells(65536, i).End(xlUp).Row + 1) Next For i = 9 To 11 Cells(j, i).FormulaR1C1 = "=SUM(R2C[0]:R[-1]C[0])" Next i End Sub
- ベストアンサー
- オフィス系ソフト
- VBA Excel 特定の記号を含んだ行
Excel VBAにて、質問します。お手数ですが宜しくお願いします。 画像の様に、E列に特定の記号"●"や"▲"含んだ行以外、抽出し 印刷のシート名に貼り付けしたいと思います。 ですが、条件がありまして、その条件とは、InputBoxを使って 抽出したい日付を入力し、入力した日付、時刻までの記号"●"や"▲"以外 を抽出できる様にしたいです。 例えば実行時の日付が8/21日ならば InputBoxに、8/28 20:00と入力したら、入力した日付、時刻までの 記号"●"や"▲"以外を抽出となります。 画像の様に、1行目の見出し名も貼り付けできる様に、VBAを使って できませんでしょうか? ※ 画像ではSheet1のみ載せましたが、 Sheet2とSheet3とSheet4とSheet5とSheet6まで似た内容のデータがあるので シート名を指定して動作できると良いです。 Array("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5","Sheet6")見たいな 感じでできますでしょうか? 御面倒お掛けしますが宜しくお願いします。
- 締切済み
- Visual Basic
- VBA 100行ごとに列を変更してコピーする。
Winは7、Excelは2013を使用しています。 A列とB列のデータを100行毎に列を変えてコピーしたいと思っています。 (画像参照願います。) それで、別シートにコピペするサンプルコードを見つけたのですが、 同シート内でする様に変更する知識がなく、苦戦しています。 申し訳ありませんが、ご教示願います。 別シートにコピペするサンプルコード Sub データを100行ごとに分割する() Dim シート As Worksheet, 元 As Worksheet '元は元データのあるシート Dim 総行数 As Long, 回数 As Long, i As Long, 開始行 As Long Const コピー行 = 100 Set 元 = ActiveSheet '変数の元をActiveSheetにセットする 総行数 = 元.UsedRange.Rows.Count 回数 = Int(総行数 / コピー行) + IIf(総行数 Mod コピー行 > 0, 1, 0) 開始行 = 1 For i = 1 To 回数 Set シート = Sheets.Add シート.Name = 開始行 & "~" & 開始行 + コピー行 - 1 元.Rows(開始行 & ":" & 開始行 + コピー行 - 1).Copy シート.Range("A1") Columns("A:F").AutoFit 開始行 = 開始行 + コピー行 Next i End Sub
- ベストアンサー
- Excel(エクセル)
- 日付と時刻を比較して一致した行を抜き出す。
【Sheet1】 【Sheet2】 A B A B 1 2008/1/2 00:00 1 2008/1/1 22:00 2 2008/1/2 01:00 2 2008/1/1 23:00 3 2008/1/2 02:00 3 2008/1/2 00:00 4 2008/1/2 02:00 4 2008/1/2 01:00 【Sheet1】のA行セルと【Sheet2】のA行セルの文字列を比較し、 一致しない場合は【Sheet2】のセルを一つずらしA3【一致】するセルと比較するまで ループを続ける。 ※ 上記例の場合だと日付一致は【Sheet1】A1 ⇔ 【Sheet2】A3 一致した時点で一致した【Sheet1】のAセルの隣B列と比較して、 【Sheet1】の日付、時刻が一致した列を検出する。 ※ 最終的に条件が一致して抜き出すのは 結果 : 【Sheet1】のA1行 そんなマクロを作っているのですが、 何かもっと簡潔に作れるやり方ってありますでしょうか? ヒントだけでもいいのでご教授していただけたら幸いです・・。 わかりにくくてすいません; ----------------------------------------------------------------------------------------------------- Dim Com As Integer Dim Com2 As Integer Dim Storage As String Dim i As Long ' Month関数を使う Do Until Month(Cells(i, 1).Value) = 11 For Com = 1 To 100 'Com = 日付 ' 【Sheet1】の指定されたAセルが【Sheet2】の指定されたAセルが一致しているかどうか If CDate(Worksheets(Sheet1).Range("A" & Com)) = CDate(Worksheets(Sheet2).Range("A" & Com)) Then ' 一致すれば【Sheet1】のAセルの文字列をStorage変数に格納 Storage = ActiveCell.Value Else ' Falseの場合、1行改行する ActiveCell.Offset(1, 0).Select End If Next Loop ----------------------------------------------------------------------------------------------------
- ベストアンサー
- オフィス系ソフト
- マクロ【シート間での文字列比較及び指定セルに置換】
いつも大変御世話になります。 【D:\test】フォルダ内に、1つのエクセルファイル(Excel2003)があります。 ・エクセルファイル名は【test.xls】。 ・シート【起動シート】・【マスタ】・【中間マスタデータ】があります。 今回悩んでいるのはシート名【起動シート】内にあるマクロボタンに入れるマクロです。 ★シート【マスタ】には、日々、不定期に作成されるテキストファイルのデータ状態を記録したマスタシートです。 データ状態は記号で入力され、下記の4つになります。 ・サイズのある良いデータの行には【○】 ・サイズのある悪いデータの行には【×】 ・サイズのない0件データの行には【0件】 ・今回作成されなかったデータの行には【-】 シート【マスタ】には、以下のように入力されます。 A B C D E ←列 1 2 テキスト名 1日 2日 3日 4日 5日 3 L2001.txt ○ ○ ○ ○ ○ 4 L2002.txt ○ × ○ ○ ○ 5 L2015.txt ○ ○ ○ × ○ 6 L2101.txt ○ 0件 ○ ○ ○ 7 L2A05.txt ○ ○ ○ - ○ ↑行 B2から右横に日付がふられ、すでに来年分までふられています。 ★シート【中間マスタデータ】には、当日入力分のみのデータ振り分け結果が入力されています。 シート【中間マスタデータ】には、以下のように入力されます。 A B C D E ←列 1 2 GOOD 0_FILE BAD 3 L2001_20081206.txt L2015_20081206.txt L2A05_20081206.txt 4 L2002_20081206.txt L2101_20081206.txt ↑行 GOODの列・・・サイズのある良いデータの記号【○】に該当 0_FILEの列・・・・サイズのある悪いデータの記号【×】に該当 BADの列・・・サイズのない0件データの記号【0件】に該当 この【_20081206】は12月6日は12月6日分のデータという意味で、日によって日付でリネイムされています。 上図のデータを使用すると、例えば、6日なら【中間マスタデータ】を参照し、【マスタ】に入力すると以下のようになります。 A B C D E ←列 1 2 テキスト名 1日 2日 3日 4日 5日 6日 3 L2001.txt ○ ○ ○ ○ ○ ○ 4 L2002.txt ○ × ○ ○ ○ ○ 5 L2015.txt ○ ○ ○ × ○ × 6 L2101.txt ○ 0件 ○ ○ ○ × 7 L2A05.txt ○ ○ ○ - ○ 0件 ↑行 3つの記号を一瞬で入力し、入力列は一番右端の空行の列、【今回作成されなかったデータの記号【-】】は残った空セルに入力。 これを一気に入力可能なマクロコードがどうしても書けません。 シート間の文字列比較をして、記号に変換する。 何かサンプルコードとかご提示いただけると助かります。 宜しくお願いいたします。
- ベストアンサー
- その他([技術者向] コンピューター)
- エクセルデータの列と行を入れ替える方法をご存知の方、教えて下さい。
エクセルデータの列と行を入れ替える方法をご存知の方、教えて下さい。 今、A列(1行目から1,000行目位まで)に日付、B~F列にそれぞれ数値のデータを入れていますが、それを1行目に日付、2~6行目に数値のデータと言うように、いわゆるタテとヨコを入れ替えたいのですが、何か良い方法は無いでしょうか。 1,000日分位のデータがあるため、手で打ち換えるのもちょっと・・・ データは日付列が1列、データ列が5列、数値のみで数式などは入っていませんし、セル結合もしていません。単純に6列×1,000行位のエクセルデータです。 また、入れ替えるのでなく別のシートに入力し直す方法でも、同じシートの未使用スペースにコピーアンドペーストする方法でも構いませんし、(エクセルが何列使えるか知りませんが)1,000列使えないようなら幾つかに分割しても構いません。 ご存知の方がおられましたらよろしくお願いします!
- ベストアンサー
- その他MS Office製品
お礼
ありがとうございます。 この質問スレ自体は、CSVデータをExcelで起動した際に、見栄えとして決まった行に色をつけるというだけのものでした。 Excelではデータ(数値)を管理をしておらず、DBからCSVが吐き出されるだけで、ここではデータの確からしさよりも、目的の行の列に色をつけたいというだけでした。 ただ、データ(NOの判定フラグ)のたしからしさについては、人間の目には醜いため、ここは該当部署にリクエストを出してDBチームに今後改善してもらう予定です。 ちょっとやりたいことから幅が増えてしまったため、一度整理してまた質問をたてたいと思います。 いつもお世話になります。 (なお、画像の文字は企業コンプライアンスの関係で常にダミー(意味はない)と思っていただいたほうがよく、列、行などで処理対象をいじっていくのがたぶん大企業で複数のAccess担当者がいるようなところでは、統一ができておあらず、ほかの事務員はExcelしかもっていあにので、Excelではデータを表示して簡単な計算式を入れておわりです。Excelでデータの確からしさをみつけても、DBチームが改修しないなら意味がない)