• 締切済み

セルの色で並び替えをするには

Excel2003を使用し、セルの色で並び替えをする際の VBAの組み方かプログラムを教えて下さい。

noname#144499
noname#144499

みんなの回答

回答No.3

なぜ、CreateObjectとしてるかよく分かりませんが たぶん、別のEXCELを立ち上げる必要が有るのだろうと言うことにして、 Const xlAscending = 1 Const xlYes = 1 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Open("hogehoge.xls") Set objWorksheet = objWorkbook.Worksheets("Sheet1") i = 2 Do Until objExcel.Cells(i, 1) = "" intColor = objExcel.Cells(i, 2).Interior.ColorIndex Select Case intColor Case 3 intSortOrder = 4 Case 4 intSortOrder = 1 Case 6 intSortOrder = 2 Case 41 intSortOrder = 3 End Select objExcel.Cells(i, 3) = intSortOrder i = i + 1 Loop objWorksheet.Range("A1:C" & i - 1).Sort Key1:=objWorksheet.Range("C2"), Order1:=xlAscending, Header:=xlGuess

回答No.2

EXCEL2003では標準でセルの色でソートは出来ません。 VBAでやるとしたら 列を挿入し Public Function GetColorIndex(ByVal r As Range) As Integer GetColorIndex = r.Interior.ColorIndex End Function でファンクションプロシージャを作成し、カラーインデックスを取得 カラーインデックスでソート 例えば 赤 1 黄色2 青 3 でソートするとしたら、 別途テーブルを作成し VLOOKUPをかませれば好きなようにソートできます。

noname#144499
質問者

お礼

回答ありがとうございます。

noname#144499
質問者

補足

Excel2003でセルの色でソートすることができないのは把握しております。 もし、VBAで組めるのであればその記述方法を教えてほしいと思い質問しました。 ウェブ上で下記の記述がありましたが、「intSortOrder」がダメなようで、実行できない状態です。 よろしければ、問題箇所を教えていただけますでしょうか? Const xlAscending = 1 Const xlYes = 1 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Open("ファイル場所") Set objWorksheet = objWorkbook.Worksheets("Sheet1") i = 2 Do Until objExcel.Cells(i, 1) = "" intColor = objExcel.Cells(i, 2).Interior.ColorIndex Select Case intColor Case 3 intSortOrder = 4 Case 4 intSortOrder = 1 Case 6 intSortOrder = 2 Case 41 intSortOrder = 3 End Select objExcel.Cells(i, 3) = intSortOrder i = i + 1 Loop

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

エクセル2003までは セルの色は順序というものはない。ColorIndexでやるとしても、それが常識とか一般的でではない。 だからどういう順序だとなる。 やるにしても作業列に色に先後の順序のコードをVBAで一旦作ってその作業列でソートすることになる。 ソートは「セルの値」でやるのが基本。そのことが割ってないのだろうと思う。色をあらわす文字を何処かの列につくり(これならVBAでやれてやさしいかも)、ユーザー設定リストなどを使うことをj考えては。ツールーオプションーユーザー設定リストで赤、黄、緑、青・・・など定義) 質問表現振りからして、本格的にやるのは、質問者にはVBAでは難しすぎるのでは。 ーー 参考 2007以後 条件付書式などが複雑に拡充された。 http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-sort.html の終わりの方を見ること。 「セルの色による並べ替え」の項。 これはマイクロソフトがそのようなプログラムを組んだために出来るものだ。 外にはGoogleで「エクセル2007 色でソート」などで照会したらよい。

noname#144499
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • エクセルの並び替え (セルの色を除いて)

    エクセルの並び替えにつきまして質問させて頂きます。 入力の際見やすいように一行おきに薄くグレイにしています。 この表で並び替えをしますと、行の色も並べ替えられて白の行が続いたり、薄いグレイの行が続いたりします。 この様な場合、「セルの書式」のセルの色だけ移動せずに並べ替えをすることは可能でしょうか? 可能でしたら、手順を是非ご教授下さい。 よろしくお願いいたします。

  • Excel2003でセルの色で並び替え

    Excel2007ではセルの色で並び替えが出来るようになったようですが、2003では出来ないでしょうか?データを区別するのに、セルに色付け(一色)してたのですが、色付けしたものと処理してないもの、あるいは処理日付の新しいもの等で並び替えは出来ないでしょうか? 宜しくご教示下さい。

  • エクセル セル内並び替え その後 セル同士並び替え

    お世話になります。 エクセルの並び替えについてです。 セル内で並び替えをして、さらにセル同士で並び替えをすることは 可能でしょうか? (添付画像を参照してください) ※行数が多いので、手動で並び替えをしないことを前提とさせてください。 基本的な質問になるかと思いますが、 どうぞよろしくお願いいたします。

  • Excel2000 関数でセルに色をつけたい。

    Excel2000を利用しています。 セルの計算結果によってそのセルに色をつけたい(塗りつぶし)と思っています。 関数のみでセルに色をつけることは可能でしょうか? ユーザー関数(マクロやVBAを利用する?)を使わないと無理なのでしょうか。

  • Excel2016でオレンジ色のセルだけロック

    Excel2016のVBAを教えてください。 例えば、A2がオレンジ色の場合はG2まで必ずオレンジで塗りつぶされています。 この時オレンジ色のセルだけロックするということをVBAで行いたい。 この場合のVBAを教えてください。

  • 並び替えがしたいのですが。。。

    Excel2000を使用しています。 文字列として入力している地番を、数値の昇順に並び替えをしたいのです。どうしたらいいのでしょうか? 地番を文字列としているのは、一つのセルに地番を"-"で区切って入力しています。地番の入力例としては、1-1,10-1,20-1です。そのセルを数値として入力出来ればいいのですが、"1-1"を例にすると1月1日になってしまうので、文字列として入力しています。文字列のセルを昇順に並び替えをすると、1→10→100→2→20…となってしまいます。数値の昇順(1→2→10→20→100)にするには、どうしたらいいでしょうか? 関数を使って"-"の前と後で抜き取り、並び替えすることも考えたのですが、優先キーが3つまでなので困ってます。大字・小字・地番で並び替えしたいのです。 出来れば、件数が3000~5000件程ありますので、そのまま文字列セルの状態で昇順になると嬉しいです。 よろしくお願いします。

  • Excel 塗りつぶしの色のセルを並び替え

    青色セルと黄色セルが一列ランダムにあります。 青色セルを上位に黄色セルを下位になど色によって並び替えをすることなど出来るのでしょうか?? おわかりの方教えてくださーい!

  • Excel2010 セルのフォントの色

    Excel2010で、任意のセルのフォントの色が「赤」だったら、その列の空のセルに「赤」等のフラグを立てて、条件付きで列に色を付けたい。 VBA等マクロは使えません。 なんとか関数で対応したいと思っています。 ご教示方、よろしくおねがいします。

  • 数千の単語の並び替えについて。

    数千の単語(漢字・ひらがな・カタカナ・ローマ字を含む)がEXCELの各セルに一列に並んでいます。 これを、見つけやすいように、あいうえお順に並び替えたいのですが、EXCELの機能「並び替え」を使って並び替えようとすると、かなと漢字、音読み訓読みをパソコンが異なって識別することから、期待通りの配列になりません。 EXCELの機能を利用したり、マクロやVBAのプログラミングで、並び替えが簡単にできないものでしょうか。 今のところは、隣の列にひらがなを手作業で入力して、並び替えています。ものすごい作業量です。 何とかならないものでしょうか。 いい知恵がありましたら教えてください、 VBAの場合は、マクロも教えていただければ助かります。

  • (EXCEL)CELLの条件付き書式で色をつけたセルをカウントする。

    (EXCEL)CELLの条件付き書式で色をつけたセルをカウントしたいのですが、適切なVBAはありますか?私はVBAは初心者中の初心者です。よろしくお願いします。

専門家に質問してみよう