質問: Nothing End Sub --- 以上です。
回答: コードをそのまま読むしかないのですが、動的配列(この場合はmyH2)の領域を確保しないまま`UBound` `LBound`を使うと「実行時エラー '9'」が出ます。 ではmyH2の領域がどこで確保されるかというと、関数内最初の方のH2タグ分処理しているところです。 ということは「H2タグがない」または「H2タグの探し方がおかしい」のどちらかになると思います。 まずはH2タグのループに入っているかどうかから確認してみてはいかがでしょうか。 もしくはH2タグがない場合でも該当のステップに到達することがある可能性があるのなら「実行時エラー '9'」が発生しないようにガードをする必要があります。 VBAの場合、配列が空か否かを判定する関数は存在しないので、通常であれば判定用関数を作成しON ERRORなんかで切り分けるのですが、今回の場合は幸いにもH2タグのループ処理がありますので、そこで使用している変数`i`を保持しておけば、要素数がわかります。 例えば変数`h2cnt`なんかに値を持っておき、 ``` If h2cnt > 0 Then For i = LBound(myH2) To UBound(myH2) If InStr(myBody(x), myH2(i)) > 0 Then myDic.Add "H2-" & x, myH2(i) GoTo Continue End If Next End If ``` のようにすればガードできるかと。 ..