• ベストアンサー

Excelで該当するデータに斜線を引き、それらを並び替えて一カ所にかためたい

DOUGLAS_の回答

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.4

[回答番号:No.1・3] の DOUGLAS_ です。  要らぬお節介ですが、もし並べ替えるのが『温泉地&寺と神社ファイル.xls』の「A列のみ」ということであれば、前回答の「甲の L1 」という考え方ではなくて、 ・A列の前に列を挿入 ・A列に式を挿入 ・A・B列のみを並べ替え ・A列を削除 という段取りでできます。  ちなみに、[新しいマクロの記録] でその作業をして、コーディング を整理すると、ざっと下記のようなことになりますが、基本的に「考え方」をご理解いただければ幸いです。 Sub A列のみ並べ替え()  'A列の前に列を挿入   Range("A1").EntireColumn.Insert  '挿入したA列に計算式を挿入   Range("A1:A" & Range("B1").End(xlDown).Row).FormulaR1C1 _    = "=MATCH(RC[1],[温泉地ファイル.xls]Sheet1!C1,FALSE)"  'A・B列で並べ替え   Columns("A:B").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _    SortMethod:=xlStroke, DataOption1:=xlSortNormal  'A列内の「#N/A」を検索   Columns(1).Find(What:="#N/A", LookIn:=xlValues, LookAt:=xlPart, _    SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, _    MatchByte:=False, SearchFormat:=False).Offset(-1, 1).Select  'B列の1行目から「#N/A」の前の行の値に罫線を引く   With Range(Range("B1"), Selection).Borders(xlDiagonalUp)    .LineStyle = xlContinuous    .Weight = xlThin    .ColorIndex = xlAutomatic   End With  '挿入したA列の削除   Columns(1).Delete   Range("A1").Select End Sub

dj-s
質問者

お礼

すごいです、DOUGLAS_さんのコード貼り付けて実行したら一発で出来ました! マクロってすごいですね、ありがとうございます(>_<)

関連するQ&A

  • Excelで、条件に該当するデータに「/(罫線)」を引きたいです。

    Excelで困っています(>_<) 今、ファイルが二つあります。 一つめのファイルは『野菜&果物ファイル.xls』、二つ目のファイルは『果物ファイル.xls』とファイル名を付けています。 一つめのファイルには、 セロリ マンゴー バナナ トマト リンゴ 白菜 ホウレンソウ イチゴ ・ ・ ・ と、野菜と果物の名前がA1からずら~っと縦に並んでいます。 二つ目のファイル『果物ファイル.xls』には、 バナナ リンゴ イチゴ ・ ・ ・ と、A1から果物の名前だけがずら~っと並んでいます。 ここで、『果物ファイル.xls』にある全果物のデータを参照し、『野菜&果物ファイル.xls』の中で、一致するデータ(果物)があれば、その該当データに「/(罫線)」を引きたいのです。 そして、野菜のデータと果物のデータの区別を、視覚的にわかりやすくしたいのです。 「色をつける」「網をかける」のでも大丈夫なのですが、モノクロでプリントアウトした際も一目でわかるのはやはり、「/(斜線)」だと思いまして。 関数やマクロを使って、何とか解決できないでしょうか?

  • エクセルVBAについて (データのマッチング)

    過去ログで解決できなかったのでここに書かせていただきます。 エクセルのVBで下記のプログラムを作成したいのですがうまくマクロが組めません。 ファイル名:TEST01.xls ファイル名:TEST02.xls があります。 TEST01.xlsにあるA列のデータとTEST02.xlsのA列にあるデータが一致したおり、かつTEST02.xlsのD列のデータが『×』の場合のみ、TEST01.xlsのB列に固定の文字(test)を入力し、TEST01.xlsのC列に入力されているデータを削除するプログラムを作りたいです。 ご存知の方がいらっしゃれば、ご教授よろしくお願い致します。

  • エクセル VBA データのマッチング

     エクセルのVBで下記のプログラムの作成をしたいのですがうまくマクロが組めません。 ファイル名:TEST01.XLS ファイル名:TEST02.XLS があります。 TEST01.XLSにあるA列のデータ、TEST02.XLSにG列にあるデータが一致した場合のみ、一致した行にあるTEST01.XLSのB列にある4桁のコードを一致したTEST02.XLSのL列に表示させるプログラムを作りたいです。 すみませんが回等お願いできませんか。

  • エクセルのマクロ

    以下の処理をするマクロを教えて頂きたいのですが。 ファイルab.xlsのSheet1のA1からA100までのデータを、ファイルcd.xlsのSheet3のC列にコピーする。 ただし、Sheet3のC列には既にデータが入力されているので(空欄も有)、一番末端に付け足す形にする。 続けて、ファイルab.xlsのSheet2のA1からA100までのデータを、ファイルcd.xlsのSheet3のC列に、前と同様のやり方でコピーする。 宜しくお願いいたします。

  • エクセル 異なるブックのデータ比較

    教えてください。 エクセルのファイルA1.xls(原本)とA2.xlsがあるとします。 どちらも行ごと(レコード)にデータを入力したデータベースのファイルです。 A1は原本データで、A2がデータ(レコード)を追加した編集後のファイルです。 この時、A1とA2の列(レコード)を比較し、A2にあってA1に無いものを抽出するフリーソフトなどはご存知ではないでしょうか。 あくまで、A1とA2の差分の抽出ではなく(A1にあってA2にないものはは除く)、A2にあってA1にないものだけを抽出したいのです。

  • エクセルマクロの質問です。

    例えば、A.xlsというファイルに01.csv,02.csv,・・・,20.csvといういくつかのファイルからデータを取り出すのですが、A.xlsのシート1の1列目に01.csvの1列目を貼り付けて、01.csvの2列目はA.xlsのシート2の1列目に貼り付けるようにシートをずらして行って、02.csvの1列目はA.xlsのシート1の2列目、02.csvの2列目はA.xlsのシート2の2列目というようにしたいのですが、どのようなプログラムがよいのでしょうか? エクセルマクロ初心者なので説明が不十分かも知れませんがよろしくお願いします。

  • エクセルで同じ作業の簡略化したい・・・

    教えて下さい。 仕事で以下の処理を毎日行っていて、同じ作業なので、なんとか簡略化したいのですが、教えて下さい。 【作業】 テスト(1).xls テスト(2).xls 二つのファイルが有ります。 (2).xlsファイルの中のA列のデータを → (1).xlsのB列へコピー (2).xlsファイルの中のC列のデータを → (1).xlsのE列へコピー (2).xlsファイルの中のZ列のデータを → (1).xlsのAA列へコピー と、10列のコピーを一揆に出来ますでしょうか? 貼り付け先を間違えたりすると、大変な事になる等、同じ作業を繰り返すので、ぜひともPCの特性を生かしたいのですが・・・。 どなたか良い方法をご存知の方御座いましたら、ご教授頂けないでしょうか? 宜しくお願い致します。 質問が難しく、不明点等御座いましたら、お申し付け下さい。

  • Excelでのデータについて

    Unixで作成したデータが「数値 数値 数値」のように、数値とスペースで間を区切ってあります。これを拡張子を「.xls」にすると、A列に全て入ってしまうのですが、1つの数値ごとに「A列 B列 C列 …」と入れていくにはどのようにすればいいのでしょうか?

  • エクセルでのデータリンクについて

    教えてください。 =[ファイル名.xls]sheet1!$A$1 で別々のファイル間でのデータリンクができますが、 =[ファイル名.xls]sheet1!$A$1 =[ファイル名.xls]sheet1!$A$2          .          .          . =[ファイル名.xls]sheet1!$A$30 といったようにしたいのですが、手打ち出来る数ではないので簡単にする方法はないでしょうか?

  • ExcelのVBAマクロ作成で他のExcelから条件つきでデータを取り込みたい

    毎日の在庫データが記載されたファイル群の中から特定のデータのみを他のファイル(貼付け先ファイル)の一つのシートに縦一列にして取り込みたいのですがどうすればよいのでしょう? 具体的には… ・在庫データは年ごとにファイルが分かれている(ファイル名「在庫2003年.xls」など) ・在庫データファイルは月ごとにシートが分かれている(シート名「2003年04月」など) ・シートの中のA列に「日付」(上記のシートなら2003/4/1から2003/4/30まで)、D列に「製品A在庫数」、F列に「製品B在庫数」が入力されており他の列にも様々なデータが入力されている。 ・貼付け先ファイルはA列に日付(2000/1/1~2006/12/10)が入力されている。 この状況で、例えば2003年4月と指定してマクロを実行すると、指定の在庫データファイルのシートから「製品A在庫数」と「製品B在庫数」を貼り付け先ファイルの、日付に対応したB列、C列の部分に入力してくれるようにしたいのですが、VBAの記述の仕方がわかりません。どうすればよいのでしょう? お願いします!