いくらなんでも厳しすぎだろ!!
ようこそ諸君、我輩はボロボロ皇帝。
⚠最初に断っておくが、この記事は監視ソフトへのただの文句である(だが間違ったことは言っていないとも思っている)。
我輩の職場だけかは知らんが、会社が提供しているようなデフォルトのマニュアルやシステム類ってのは何かと使いづらい。
それをどうにかこうにかするために、VBA(Excelのマクロ)とvbsを使いまくっているのだが、監視ソフト、つまり社内ネットワーク内の情報を守ろうとしている要塞が年々堅牢になっていくので、いいっちゃいいんだがこっちとしては困る事態がまあ発生する。
例えば、
・VBAでvbsをリンクしていたら即ブロック
・VBAでhtmをリンクしていたら即ブロック
である。
なんでわざわざVBAでリンクしているかというと、
あちこちに散らばったマニュアル類(しかも全部形式が違う)をあっちにログインして引っ張る、こっちはPDFで引っ張る、こっちはExcel、あれはhtmなんてことをしていたら面倒くさいことこの上ないからだ。
なので入り口を一つに絞り、つまりVBAのユーザーフォームで、ボタンを押せば目的のものを閲覧できるようなツールを作成したのである。これがだいたい3,4年前のこと。
ボタンを押せば裏でIEを開き自動ログインして引っ張ったり終わったらしっかりタスクも終了させたり、色々どうにかこのひっちゃかめっちゃかで非効率な環境を整理すべく頑張った(個人的天才コードもありいつかまとめて載せようと思ってるが、今回はただの愚痴なのでコードの事などは割愛する)。
で、実際我が課のパート社員はこのツールをがっつり使っている。使われないものは使いづらい、要は無駄ツールだと思っているので、我輩のツールはデフォルトのシステムに勝ったということだ、グハハハ!!
ところが本日。
使えなくなっている!という怒りの声が上がった。
んな怒らんおでくれや、我輩がぼっちで頑張った個人作成ツールなんだぞ、元は無かったものなんだぞ、ありがたく思ってもっと優しく言って(´・ω・`)
と思ったが、己の中のもう一人の己が、
お前が作ってお前がこのツールに依存させたんだからしっかり最後まで責任持って管理しろ!!!!
という意見を言い出したので、まあたしかにな、仕方ないな、と、一人納得しながら改修することになった。
使えなくなっている、と指摘された部分に関してはリンク先システムが新しくなり変わったためのもので、自動ログイン用のhtmlとリンク集のファイルの中身を修正することで難なく解決。
だが、その修正過程で、我輩は更なる異常事態に気づいてしまったのである。
監視ソフトにリンクの1/3ぐらいがブロックされるようになっている!
と。
つまり1/3は使えない状態。
そういえば言われてはいた。
あれが開かないとかコレが開かないとか。
1つだけでしょとか思いつつ、今度直しますね(^o^)と言って放置していたのである。
だがよくよく見たら結構使えないじゃないか。
とりあえずvbsで動かしていた方はVBAだけで完結するようにしたが(代わりに動きが不細工になった)、htmだけはどうにもならず。
監視ソフト…。なんでだ…。
管理者権限無いからレジストリもいじれないし、インターネッツも使えない、そんな環境のパソコンで、全部社内ネットワーク内だけで動かしているのに。
なんでこんなに厳しいのだ…。
しかもこの監視ソフトちょっと嫌な奴でブロック後にポップアップも何も出ず素知らぬ顔をしていることが多い。せめて何か言えや!!!
というか雑に全部ブロックしているよなと思う。
VBAからクリックひとつで動くスクリプトだから危険と認識してブロックとか?
でもhtmをブロックする理由は何だ?
何が危険だと?
マクロは走らせていいのに?
VBS単体もOKなのに?
リンクしたらダメって?
NG挙動の理屈がわからん!!!
クッソ邪魔しやがって!!!!!
夏の繁忙期を迎える前に修正せねばならないと考えてはいるが、非常に面倒くさい。面倒くさすぎて疲れた。
前にも一度監視ソフトと戦ったが、あのときも一日潰れたのを覚えている(使えない手を使えるようにするのはまあまず無理なので、別の手段を考えなくてはならず時間がかかる)。
せっかく所長が固定休ばりに不在な日曜なのに。こんなことで気兼ねなくサボれる時間が潰れるなんて。
今日はもうキリが良いところまで頑張ったので残りは明日にしよう。
そんなことを思いながら後半はサボることにした日曜の出来事であった。
翌日2021/03/22追記:
よくよく考えたらバックグラウンドでIEを起動するコードは弾かれていないので、もしかしたらブラウザが原因なのかと思い、htmlを開くプログラムをIEにしてみたら動いた。だが、cssが反映しないのでつまらん状態になった。
なぜChromeとFirefoxは弾こうと監視ソフトが判断しているのか、わからん。
IEのほうがサポート終了に近いのに、なぜ。逆にIEは盲点でブロックされてないだけということも考えられるか。いやそんな事あったらダメだろ。まあとりあえず表面上は改善。本当はFirefoxで開きたい。あとhtmは拡張子自体が多分ブロック対象みたいだな。こまった、つか面倒(htmlに変えればいいだけだが)。
2021/03/26追記:
原因がなんとなく分かった。
恐らくvbsにしてもhtml、htmにしても、噛ませて起動ってのが弾かれるっぽい。
例えばvbs噛ませてEXCEL起動だとか。htm、htmlに関しては閲覧のために関連付けられたexe(Chromeやらfirefoxやらのブラウザ)を自動起動するからダメだと。
その証拠に、事前にブラウザ起動状態させておいたらuserformのボタンでhtm開いても弾かれなかった。やっぱhtm開くことでブラウザを起動させるっていうこの副次的な動作が弾かれる要因なんだな。予期しない動作、偽装、みたいな扱いになるんだろうか、知らんけど。
IEをバックグラウンドで起動できるのは単純に副次的じゃないからだ。Firefoxを単体で起動する分にはuserformで問題なく動作したし。何やねん、マジでめんどくせえなおい。
にしてもIEはバックグラウンドで使ってるからそれを表示させてまで使いたくない、コードイジるのめんどい。HideとShowの順番ミスると動きおかしくなるし神経使うんだよな。別のブラウザでどうにかしたい。exeもVBS経由でが非表示起動できればよかったけど無理なようだしな。うーん。まだ解決できない、こまった。
あーでももしかしたらVBAでExecuteExcel4Macroを二つ書いたらイケる?かも?1つ目をfirefoxにしてもうひとつをhtmで。いやイケそうだぞ。イケたら天才やんけ。やってみよう。
出来たけど無駄にウィンドウ開かれる状態になったわクッソ邪魔。素直に喜べぬ。
ちなみにExecuteExcel4MacroとExecuteExcel4Macroの間にはApplication.wait挟んでる。起動待ちしないといけず。その日一発目に起動した時が不安である(一発目の起動はfirefoxもChromeも遅い)。0.2じゃ短いかもしれない。それは明日試してから考えるか。
Chromeだったら新しいウィンドウを開かず既存のウィンドウで開いてくれた。firefoxだとリンクを新しいウィンドウ開くようになるんか、多分設定だな。
→firefoxの設定で、新しいウィンドウではなく新しいタブに開く、と、リンクを新しいタブで開いた時すぐにそのタブに切り替える、をチェック入れて、完了!!
ようやく解決したぞー!!
こうして我輩の監視ソフトとの長きにわたる戦いは幕を閉じたのであった…。
関係ないが試行錯誤の迷走中に見つけたfirefoxで任意のURLを開くVBSのコード↓
Dim oshell
set oshell = wscript.createobject("WScript.shell")
oshell.run """firefox.exe"" URL"
set oshell = nothing
いつ使うのか、使いみちが思い浮かばないがとりあえず。