VBA100本ノック 19本目:図形のコピー
こちらで公開されている、100本ノックに挑戦。
www.excel-ubara.com
素晴らしい教材を公開いただき、ありがとうございます。
上記リンク先から、問題文を転載。
オートシェイプのコピーということで、今回はDuplicateメソッドを使用する。
シート内のShapeをループで虱潰しにコピーする作戦だが、問題文にもある
とおり、入力規則のリストもこれに引っかかってコピーされてしまう。
そこで今回は、リストの名前決め打ちで、コピー対象から除外することにした。
Sub VBA_100Knock_019(ws As Worksheet) Dim Shape As Excel.Shape Dim CopiedShape As Excel.Shape For Each Shape In ws.Shapes If Not Shape.Name Like "Drop Down*" Then Set CopiedShape = Shape.Duplicate CopiedShape.Left = Shape.Left + Shape.Width CopiedShape.Top = Shape.Top End If Next End Sub
なお、コピー直後のオートシェイプがどこに配置されるか、よく解らなかった。
そこで適当にコピーした後に、目的の位置に移動させることとした。
解答を実行した結果がこちら。
※冒頭リンク先の解答例および解説も、ぜひご一読ください。
参考まで。