エクセル編集② 特定シートの削除

エクセル編集② 特定シートの削除

関連記事:数当てゲーム①数当てゲーム③

使用:.GetSheets、.Contains、ホットキー


1.エクセルでシートを削除したい場合は、ホットキーを使用します。エクセルを開いてキーを順にAlt → H → D → Sと押すと、シートが削除できるので、send hotkeyを使用してフローへ。

削除だけであれば、エクセルを開く&ホットキー操作で完了です。


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なので削除しない」という結果になっていました。


記事一覧:目次



uipathメモ

uipathの操作手順メモです。条件式や変数、VB.NET等の知識はほぼありませんので、分からないなりの操作方法になっています。適切な変数や配列、VB.NET等を使用する事で遥かに工数が減る部分もあると思いますので、その際はご教授頂けますと幸いです。