削除だけであれば、エクセルを開く&ホットキー操作で完了です。
2.続いて、特定名のシートだけ削除していく場合の操作方法について。
下記画像のエクセルシートから、「sheet」を含むシートのみを削除していく。
3.まず、シートを順に全て読み込んでいく必要があるので、for eachを使用。「.GetSheets」でシート名を読み込み、itemの中へ入れていく。エクセル操作では「.select」のような色々なvb.net(?)が出てきますが、関数のように覚えていくしかないようです。
4.次に条件式を設定。.containを使用し、item(シート名)に「sheet」が入っているかどうか判別する。
5.含んでいる場合(TRUE)はシート削除のホットキーを入れ、含んでいない場合(FALSE)は次のシートへ進むホットキーを入れる。
6.シートにデータが残っていた時は下記ウィンドウで削除を選択する為、上記画像のようにホットキーにエンターを追加する。
7.また、ただエンターキーを追加しただけでは削除ボタンは押されないので、ホットキーにはスクリーンショットを追加する。
8.ここで実行をしてみると、下記のようなエラーが。
9.スクリーンショットを撮った時のウィンドウ情報になっていたので、共通の情報へ変更。
10.実行結果は下記画像の通り。
11.しっかりと全部消えました・・・が、また問題発生。シートの開始位置が一番左だった場合はこれで動きますが、最後に保存したシートが一番左ではなかった場合は正確に動かなかった為、ifの中に画像の通りread cellを追加。
適切な措置なのかは分かりませんが、これで開始シートを変更しても動きます。for eachでは左から順にシート名を読みにいって削除する/しないの判断をしていますが、シートの指定までは行っていなかった為、選択シートが「sheet」一番左が「a」だった場合は、本来は削除すべき選択シート(sheet)を「読み込んだシート名はaなので削除しない」という結果になっていました。
記事一覧:目次
0コメント