A 回答 (3件)
- 最新から表示
- 回答順に表示
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をかませれば好きなようにソートできます。
この回答への補足
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
No.1
- 回答日時:
エクセル2003までは
セルの色は順序というものはない。ColorIndexでやるとしても、それが常識とか一般的でではない。
だからどういう順序だとなる。
やるにしても作業列に色に先後の順序のコードをVBAで一旦作ってその作業列でソートすることになる。
ソートは「セルの値」でやるのが基本。そのことが割ってないのだろうと思う。色をあらわす文字を何処かの列につくり(これならVBAでやれてやさしいかも)、ユーザー設定リストなどを使うことをj考えては。ツールーオプションーユーザー設定リストで赤、黄、緑、青・・・など定義)
質問表現振りからして、本格的にやるのは、質問者にはVBAでは難しすぎるのでは。
ーー
参考
2007以後
条件付書式などが複雑に拡充された。
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/e …
の終わりの方を見ること。
「セルの色による並べ替え」の項。 これはマイクロソフトがそのようなプログラムを組んだために出来るものだ。
外にはGoogleで「エクセル2007 色でソート」などで照会したらよい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAについて教えてください。 Excelで セルのB6~BG24でダブルクリックすると ダブルクリ 1 2022/06/02 17:07
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) Excelで、行に複数の数字が入力されているセルが複数の列存在し、行を跨いでセル内の数値を並び替える 5 2022/06/17 18:03
- Excel(エクセル) エクセルでの色付け 5 2022/10/09 18:58
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) Excelのマクロについて 1 2023/04/17 17:22
- その他(Microsoft Office) Excelの条件付き書式についての質問です。 2 2022/09/08 01:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
ファイル名「1.jpg ~10.jpg~...
-
列のどこをクリックしてもソー...
-
DataGridViewの複数列を連動し...
-
excel VBA リストビューの行...
-
構造体型二次元ベクタのソート
-
DataGridViewのソートを止めたい
-
Excelですべての組合せ(重複組...
-
C# DataTableの行をソートしてD...
-
VBScriptで重複レコードを削除...
-
DirectoryInfo型配列ソート(C#)
-
C# DataGridView のヘッダーセ...
-
偶数奇数の判別!!
-
該当のセルのみを2次元配列に入...
-
qsortについて
-
構造体配列の並べ替え
-
DataGridViewで選択行が変わる...
-
DataGridViewソート時に先頭行...
-
DataGridViewでのソート制御
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C# DataGridView のヘッダーセ...
-
ファイル名「1.jpg ~10.jpg~...
-
C# DataTableの行をソートしてD...
-
あるディレクトリ内のファイル...
-
excel VBA の条件をつけての列...
-
excel VBA リストビューの行...
-
DataGridViewの複数列を連動し...
-
文字列をソートする方法
-
Excelですべての組合せ(重複組...
-
列のどこをクリックしてもソー...
-
n番目に大きい数を求めるアル...
-
Excel VBAで並べ替えをしたい
-
DataGridViewの昇順降順。
-
vbでDataTableの抽出コピー
-
数字文字列のソート方法
-
VB6でデータを昇順に並べ替える
-
VBScriptで重複レコードを削除...
-
ListViewのソートについて
おすすめ情報