ホーム > ライブラリ > 2021年

ライブラリ

2021年

fString_Trim_NonBreakSpace

Webとかからコピペした時に、
変なスペースが混じってる事ないですか??

『Non Break Space』と呼ばれるものらしく、
Webページ上で、スペースを空けたい時に使われてる
制御文字らしいです。

これがTRIMでは除去できないので、
この関数で半角スペースに変換しちゃいましょう~♪
*****************************************************************************************

String   2021/04/20   shono

数式の参照マトリクス

'#VBA100本ノック 87本目
'「相関表」に数式の依存関係を作成してください。
'B列のシートの数式が2行目のシートを参照している場合に
'交点に"○"を入れてください。

'※画像参照
'セルの数式のみ対象です。
'以下は考慮しない。
'・INDIRECT関数、串刺し計算、名前定義、条件付き書式、入力規則、文字定数
 

●アプローチ
エクセルの数式タブにある「参照元のトレース」を応用し、
ShowPrecedents と NavigateArrow を利用して
数式の参照元を追ってみました~

クセが強いので、
大量に数式がある場合は
もう少し調整が必要かもですが
こういう方法もあるよってことで~ノ゚∀゚)ノヤットサー!

2,3年前に構想するも作れてなかったので いい機会になりました!!
ありがとうございます(^人^)

100本ノック   2021/02/14   shono

fIE_Quit (IEを確実に殺す方法)

IEのゴースト現象について、
自分の経験を基に不明なデバッグを減らすIEの閉じ方を
需要ありそうなので記載しておきます。

IE起動→スクレイピング→IE閉じる
の繰返しでたまにIE起動時でNGになることがあります。
原因は
閉じた後も裏でIEのプロセスが暫く残る事がある
ということが判明(・・;)
※他の何かが原因のケースがあるかもですが、自分の経験として。

そして対応方法として
IE.Quitの前にプロセスIDを取得しておき、
Quit後にプロセスを直に殺して対応しました。

WinAPIが多くなるのが難点です(^_^;)



使う【WinAPI】はこんな感じです~

GetWindowThreadProcessId
ウィンドウハンドル(IE.hWnd)からプロセスIDを取得

IsWindow
ウィンドウが生きてるか判定 ※IEが閉じるまで念の為に待つ用

OpenProcess
プロセスIDからプロセスのハンドルを取得

TerminateProcess
プロセスを殺す

※他にもっと簡単に解決できる方法があるかもなので、あくまで1つのケースとして
-------------------<以下、VBAソース>----------------------------------------------------------

IE   2021/01/17   shono

ノック66本目

#VBA100本ノック 66本目
ブック自身のあるフォルダ以下の全サブフォルダを検索し、
自身と同一名称(拡張子含めて)のファイルを探してください。
同一名称のファイルが見つかったら、シートに出力してください。
・A列:フルパス
・B列:更新日時
・C列:ファイルサイズ
※シートは任意

100本ノック   2021/01/14   shono