メニュー

セルに値と関数を代入
条件判断
ループ処理
エラー処理
エラーを無視する
数字のフォーマット
文字を数値に変換
Trim処理
クラスの作成

配列のループ処理
動的配列 ReDim
Collectionの利用(配列数不明)
Rangeの範囲を配列に格納
Scripting.Dictionary
配列のソート

変数の宣言を強制する
変数の参照渡し、値渡し
ファイル、フォルダ選択ダイアログ
プログレスバーを表示する
所定のフォルダ配下にあるExcelを開く

月末日の取得
文字列の分割、抜き出し
重複行の削除

データ抽出関係
SQLServerに接続
CSVファイルの読み込み
ADODBでCSVファイル読み込み
フィルターによるデータ抽出
ADOでMySQLに接続
ADODB.Streamでファイル読み込み
SQLServerにInsert文発行
バイナリファイルの入出力
Baspでバイナリファイルの入出力
Scripting.TextStreamでファイル読み込み

シートの操作
WorkSheetsとSheetsの違い
シートの選択
シートの追加
シートの最終行・列の取得
シートの存在チェック
シートの印刷方法
セルが変更された時の処理

ワークブックの操作
ワークブックを開いた時のイベント
他のワークブックの操作
ワークブックを閉じる

ユーザフォーム
ListBoxを表示・選択
フォームをモードレスで表示
シート上のコンボボックスの操作
コンボボックス選択で別なコンボボックスを変更
コントロールをマウスで移動
フォームの閉じるボタンの処理

ドライブ情報の取得
Basp21でメール送信
WSHを利用する
IEを利用@
OSとExcelのバージョン情報を取得
正規表現によるチェック
XmlHttpRequest送信

トップ
E-Mail
xml

ASP.Netのお勉強
ASP.Netで掲示板を作成しよう
VB.Netのお勉強
PHPのお勉強
AJAXのお勉強
Webデザインのお勉強
Javaのお勉強
連想書籍検索
世界の観光地検索
路線図
総合サイトCocoaLiz
配列のソート@Excel マクロ・VBA

配列のソートを行います。

標準で配列のソートが見当たらないので、
ADODB.Recordsetを用います。

Microsoft ActiveX Data Objectを参照設定します。

ADODB.Recordsetを生成します。
フィールドを作成します。
以下では、IDという名前のフィールドを追加します。

通常は、DBなどに接続しますが、この場合必要ないので、
そのまま、RecordSetをOpenします。

配列をループして、RecordSetのIDフィールドに追加します。
Sortを指定します。「ID ASC」はIDを昇順でソートの意味です。

ソートした結果を抽出します。
以下では、RecordSetをループして、シートに書き出しています。


Sub test()

Dim rs As ADODB.Recordset
Dim str(9) As String

Dim rowNo As Integer

On Error GoTo Err

'ソートしたい配列
str(0) = 1
str(1) = 0
str(2) = 3
str(3) = 5
str(4) = 4
str(5) = 7
str(6) = 6
str(7) = 2
str(8) = 11
str(9) = 9

'RecordSet生成
Set rs = New ADODB.Recordset

'フィールド追加 数字(長さ100)、文字はadChar
rs.Fields.Append "ID", adInteger, 100

'Recordsetオープン
rs.Open


'配列を値にRecordSetに格納
For rowNo = 0 To UBound(str)
rs.AddNew "ID", str(rowNo)
Next


'ソート ASC:昇順、DESC:降順
'rs.Sort = "ID ASC"
rs.Sort = "ID DESC"

'ソートしたデータ抽出
rowNo = 1
Do While rs.EOF = False

'ソートしたデータをシートに書き込み
Worksheets("Sheet1").Cells(rowNo, 1).Value = rs.Fields("ID").Value

rowNo = rowNo + 1

'次のレコード
rs.MoveNext
Loop

'クローズ
rs.Close
Set rs = Nothing

Exit Sub

Err:
Set rs = Nothing
MsgBox (Err.Description)
End Sub




Copyright (C) 2008 Excelマクロ・VBAのお勉強. All Rights Reserved.