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

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

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

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

(Excel 2000/2002/2003/2007/2010)

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

構文  Object.Move(Before, After)

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

次のサンプルはMoveメソッドを利用して、シート名の昇順にシートの並び方を変更します。

●サンプル●


Sub MoveSamp1()
  Dim i As Long
  Dim j As Long

  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