びすこーの雑記帳

びすこーの雑記帳

思ったこと、あったことをつらつらと

【Excel VBA】オートフィルタで抽出した行だけを削除する方法ではまった話

はまったこと

  • CurrentRegionプロパティは、現場の汚いExcelを相手にすると厄介な挙動を見せることがある
  • 汚いExcelを扱う可能性がある場合には、CurrentRegionプロパティを過信せず、削除範囲を明示的に指定して、可視行のみ削除するようにしようという教訓

概要

  • 仕事柄、一つのExcelファイルで台帳情報を作成し、その台帳情報を特定のお客様へ配布するため、ファイルを分割しなければならないことがままある
  • こんなイメージのExcelファイルを会社毎に別々のExcelファイルに分割してお客様に送付する等

  • 今はExcel VBAのマクロツールを作成し、このファイル分割作業を自動化しているが、職場でツールの評判がよいこともあり、調子に乗って機能追加したりしている

  • そんな機能追加作業ではまったので以下教訓として供養

CurrentRegionは意外と思ったように動かない

  • 今回の機能追加では、オートフィルタで抽出した行だけを削除するという機能を実装した
  • 先ほどの台帳情報のイメージで会社名=マリナーズ社以外の行をフィルタし削除するイメージ
  • Google先生に聞くと、偉大な先人たちは大体以下のようなコードを使っていると教えてくれる

    '行数を1つだけ減らして見出しを範囲からはずして行削除 With Range("A1").CurrentRegion 'すべてのセル範囲 .Resize(.Rows.Count - 1).Offset(1, 0).EntireRow.Delete End With

    'オートフィルタを解除 Range("A1").AutoFilter

www.gou-blog.com

  • ただこのコード、このようにヘッダーが2行にわかれているような汚いExcelを相手にすると、しっかり1行目まで範囲選択してしまい、ヘッダー行が一部消えてしまうことがある

  • 結局はツールで別に保持しているデータ開始行番号の情報を活用してデータ開始行を明示的に指定し、削除処理を実装することで解決

  • 今回だけに限れば、Offsetの値を (2, 0) にすれば済んだ話ではあるが、当該ツールはどのようなExcelファイルでも処理できるよう汎用的に作っており、それは美しくない
  • いろいろやりようはあったと思うものの、ちょっとはまったのでCurrentRegionプロパティは注意という自戒の念を込めて

WindowsでAndroidアプリを動かす方法(Windows HomeエディションでもBlueStacksは動く)

きっかけ

  • 世間様に公開できない内容は、瞬間日記というアプリで日記を書いており、寝しなにスマホでポチポチ書いている
  • ただ、PCでキーボードを使ってがっつり書きたい時もあるため、WindowsAndroidアプリを動かす方法を検討

手段の検討

  • 結論としては、Blue Stacks 5で実現できたが、そこに至るまでに紆余曲折あった
  • 最初にこちらのヘルプ記事を最後まできちんと読んでいれば解決できた(早とちりダメ、絶対)

https://support.bluestacks.com/hc/ja/articles/4412148150157-BlueStacks-5-Windows%E3%81%A7Hyper-V%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

  • 適切に設定し「管理者として実行」でアプリを起動すれば、Windows11 Homeエディションでも動く

BlueStacks 5

  • Androidエミュレーター
  • BlueStacks以外にも、エミュレーターは数あれど、他の有名どころ「LDPlayer」「Noxplayer」は中国製でセキュリティに一抹の不安を覚えたことから、BlueStacksを選定
  • インストール中にエラーが発生
    ⇒ メッセージからHyper-Vを前提としたアプリのため、Windows Homeエディションでは動作しないと勘違いした
  • ネット検索しても、Windows Proにアップグレードして解消するという手段しか出てこず手詰まりだと思い他の手段を検討
  • 公式コミュニティでProにアップグレードしろという回答を見つけて、盛大な勘違いを発動(確かにHyper-vを使う前提であれば正しい回答ではある)

https://answers.microsoft.com/ja-jp/windows/forum/all/bluestacks-5-hyper/cf4c7454-492e-4ca2-8172-e399f13e039e

Windows Subsystem for Android

  • Microsoft Storeからamazon app storeアプリをインストールすると自動でインストールされる公式機能
  • アプリの選択肢が少なすぎて、瞬間日記は当然ヒットせず、有名ゲームアプリもほぼないため、選択肢になり得ず

www.dospara.co.jp

apkファイルの取り込み

  • apkファイルをダウンロードし Windows Subsystem for Androidに取り込むことで瞬間日記を動かすことは可能と判明
  • ただ、apkファイルのダウンロードには非公式の海外サイトを活用する必要があるため、セキュリティリスクの観点から断念

sp7pc.com

Google Play Games

  • Google公式のアプリ。amazon app storeよりはゲームの選択肢が多そうではあるが、ゲーム限定のため今回の要求仕様にはマッチせず

スマートフォン連携機能(Windowsにリンク)

  • Microsoftの公式アプリでスマホの通知やSMSをPCで見ることができるようになる機能
  • Surface Duo、Galaxy、HONORシリーズのみ、スマホ画面のストリーミング機能があるが、それ以外のスマホでは対応していないため、この手法も断念

support.microsoft.com

大戸屋の生さんま2022

今年もこの季節がやってきました。

そう、さんまの季節✨

 

スーパーで見かけて気になっていましたが、

家で調理すると部屋中に充満する臭いやグリルの後片付けが面倒なんですよね。

 

そんなめんどくさがりの優しい味方が、

全国どこでも美味しいご飯を提供してくれている大戸屋様😆

 

昨年に引き続き、さんま漁は不漁続きということで、

一部店舗のみの限定販売でしたが、一昨日から全国販売にこぎつけたようです。

www.ootoya.com

 

居ても立っても居られず、近所の大戸屋様へ急行🤤

1尾なんてケチなことは言わず2尾セットの大盤振る舞いです。(当社比)

 

ややスレンダーなさんまさんがいらっしゃいましたが、

トッピングの大根おろしとレモンが食欲をそそります。

そしてあっという間に完食✨

 

2尾セットが正解だと思います。

 

ごちそうさまでした😋

ガンダムNT/ナラティブ

Amazon Primeの見放題が終了間近ということで視聴。

総論:泣ける。

強い悲壮感はありませんが、宇宙世紀作品を一通り見ている方であれば涙活に最適。

映像はとてもきれいで私は好きでした。

 

以下ネタバレを含む雑感です。

続きを読む