表形式のデータの範囲が任意の長さになる可能性がある場合、UsedRange オブジェクトを使用してソート範囲を定義することができます。これは、ワークシート上に表形式のデータしかない場合にのみ機能します。データの外側に値があると、行と列の数に対して不正確な結果が得られるからです。
ソートはカスタムクラスを用意することで任意の順に並べ替えることができます。 APIはVBAのCollection、.Net FrameworkのArray、Objective-C(Foundation)のNSArrayなどを参考にしつつ、柔軟に扱える一方、VBAらしくシンプルで使いやすくなるよう心がけました。 Windows、MacいずれのVBAでも動作します。
コードは圧倒されるかもしれません。 ただし、各ステートメントを正確に理解できるように、以下で説明しています。 配列に対してFor Eachループを使用して反復するには、最初に配列を宣言することが不可欠です。 任意のデータ型の配列を宣言できます。 この例では、配列arrは 7つの要素を持つ...
True / False 貼り付けのときにデータの行と列を入れ替えるには、True を指定します。 既定値 False です。 「形式選択して貼り付け」の画面と対応させてみるようにしてください。 値の貼付け Worksheets"Sheet1").Range("A1:B10").Copy Worksheets"Sheet2").Range("A1").PasteSpecial ...