名前のとおり、ワークシートを移動させるアクションです。
移動させるだけでなく、コピーすることもできます。
ただ、使い方にはちょっとクセがあるようなので解説します。
実験1. 同じブック内でシートを移動させる
以下のようなフローを用意します。
Move Worksheetの設定内容です。
デバッグしてみましょう。
結果は以下のとおりなのですが、3番目のシート(=Sheet3)と入れ替えるのかと思っていたら違う結果になりました。
なぜこうなるのか、ソースを追ってみました。
Move Worksheetのフローです。
ソース以外にも気になる部分はありますが、後述します。
DestinationPositionが0かどうかで分岐するっぽいですね。
0以外の場合は、DestinationPosition=シート番号になって、その番号の一つ前にシートが移動する仕組みになっているようです。
例えばDestinationPositionが3の場合は、2番目のシートに移動します。先ほどの例の結果もそのようになっています。
Move Worksheetのフローを見ると分かるように、Source Worksheetの値はシート番号でもOKです。
が、なぜか数字をパラメータに入れるとエラーになってしまいます。
型がテキスト型だから?
数字の後に半角スペースを入れるとうまくいきます。
つまり、Source Worksheetが「Sheet1」または「1 」どちらでも同じ結果になります。
実験2. DestinationPositionに0を入れて動かしてみる
DestinationPositionに0を入れて、シート移動とコピーをやってみます。
シート移動
結果は以下のとおり。シート移動なしです。
シートコピー
結果は以下のとおり。先頭にコピーされたシートが作成されます。
メモ
応用して「シートの順番をソートする」といった使い方もできそうですね。
(全シート取得してコレクションに格納 → コレクションをソート → ループの中でMove Worksheet)