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