Home > 即効テクニック > Excel VBA > シート操作関連のテクニック > シートを移動する(Moveメソッド)

即効テクニック

シート操作関連のテクニック

シートを移動する(Moveメソッド)

(Excel 2000)
対象シートを指定した場所に移動させます。引数Before、Afterによる移動先の指定は、Copyメソッドと全く同じです。
両者の違いは、対象シートを元の場所に残しておくか否か、です。

構文  Object.Move(Before, After)

設定項目  内容
  Object  Worksheet, Chart,Worksheetsコレクション,
          Sheetsコレクションオブジェクト,Chartsコレクションオブジェクト
  Before  指定したシートの前にシートを移動 [省略可能]
  After	  指定したシートの後にシートを移動 [省略可能]

次のサンプルはMoveメソッドを利用して、シート名昇順にシートの並び方を変更します。
●サンプル●
Sub MoveSamp1()
  Dim i As Byte
  Dim j As Byte

  For i = 1 To Sheets.Count - 1       '---最初から最後の1つ前のシートまで
    For j = i + 1 To Sheets.Count   '---i番め以降のシート全て
       If Sheets(i).Name > Sheets(j).Name Then  '---シート名の比較
          Sheets(j).Move Before:=Sheets(i)     '---(1)シートの移動
       End If
    Next j
  Next i

End Sub
(1)の部分でシートの移動を利用しています。i番目のシートよりも後ろにあるシートのうち、i番目のシートよりも名前で並べたときに順番が前になるシートをi番目のシートの前に移動しています。それの繰り返しで、シートの並べ替えとしています。

●文字列の比較●
文字列を比較する際、特に何も記述しなければ「Binaryモード」での比較が行われ、Windows版ではUnicodeのコード順が並び替え順序になります。
50音順で、大文字と小文字、文字幅、カタカナとひらがなを区別しない並べ替え順にするには、Option Compareステートメントを使用します。
モジュールの先頭に次のように記述し、「Textモード」での比較を行うように設定を変更してください。
Option compare Text