次の方法で共有

Excel(マクロ有効ワークシート)エラーを起こしているマクロコードについて

Anonymous
2020-07-15T01:16:42+00:00

Excelで作成されたHTMLの生成ツールを使用して、吐き出されたHTMLデータをコーディング後、

コードに誤りが無いかをチェックするためのチェックツール(Excel)にかけたところ、

データの読み込み自体はできましたが、いざチェックをしようとすると表題のエラーレスポンスが

出てきて、チェックが途中で止まってしまう現象が起きています。

デバックのボタンを押してみたところ、下記のみ黄色の背景色になっていました。

この黄色い行が、エラーを起こしているマクロコードの様です。

tagRemoveSimple = Left(tdStr, InStr(1, tdStr, removeEndTag, 1) - 1)

エラーを起こしている箇所は分かったものの、そこからの手順が分かり兼ねる為

解決法をご教示いただけますと大変助かります。

上記のみで情報が足りない様でしたらお知らせ下さい。都度、必要な情報をご連絡いたします。

よろしくお願いいたします。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

5 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2020-07-16T03:04:40+00:00

    > 出て来たレスポンスは下記の通りです。

    > 「プロシージャの呼び出し、または引数が不正です。」

    > Left(tdStr, InStr(1, tdStr, removeEndTag, 1) - 1)

    ・その時の InStr 関数の戻り値が 0 である。

    ・更に 0 から 1 が引かれていることにより、

     Left 関数の第 2 引数 Length に渡される値が

     -1 になる

    ・Length に渡す値として有効なのは 0 以上の数値(整数)である。

    ・つまり Length に対して -1 が渡されることにより、

     件のエラーが発生している。

    > InStr(1, tdStr, removeEndTag, 1)

    ・InStr 関数によって 0 が返されるのは、

     第 2 引数 String1 に渡された文字列の中に、

     第 3 引数 String2 に渡された文字列が含まれていない場合である。

    ・つまり、変数 tdStr に格納されている文字列の中に、

     変数 removeEndTag の値と同じ文字列が含まれていない

     ということになる。

    > エラーを起こしている箇所は分かったものの、

    > そこからの手順が分かり兼ねる為

    > 解決法をご教示いただけますと大変助かります。

    tagRemoveSimple, tdStr, removeEndTag などの変数に

    それぞれどんな役割が与えられているのか、変数に

    格納されている値にどのような意味があるのかが不明ですので、

    具体的にどのようにコードを修正すべきかまでは回答致しかねます。

    ただ Left 関数の第 2 引数 Length に 0 未満の数値が

    渡されることを避けたいのであれば、Left 関数を呼び出す前に

    InStr 関数の戻り値を取得し、その結果が 0 以上であるか否かによって

    フローを分岐させればよいと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2020-07-16T02:17:21+00:00

    ご返信ありがとうございます。

    少し様子を見て、解決しない様でしたらご教示頂いたMSDNフォーラムにて質問してみます。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2020-07-16T02:16:24+00:00

    ご返信ありがとうございます。

    一度記載したエラーレスポンスを削除してしまっていた様で、

    失礼いたしました。

    出て来たレスポンスは下記の通りです。

    「プロシージャの呼び出し、または引数が不正です。」

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2020-07-15T08:18:35+00:00

    > この黄色い行が、エラーを起こしているマクロコードの様です。

    具体的にどのようなエラーメッセージが返されているのか

    明記されることをお奨めします。

    > tagRemoveSimple = Left(tdStr, InStr(1, tdStr, removeEndTag, 1) - 1)

    この場合は、InStr 関数の戻り値が 0 か Null である可能性が最も高いと思われますが。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2020-07-15T07:52:14+00:00

    Juli_06 さん、こんにちは。

    マイクロソフト コミュニティへの投稿ありがとうございます。

    Excel マクロでエラーが出るのですね。

    VBA やマクロの問い合わせについては、一般ユーザー向けのマイクロソフト コミュニティよりも開発者の方が多く利用される「MSDN フォーラム」で質問された方が情報が集まりやすいかと思います。

    せっかくこちらに投稿いただいたところお手数ですが、この内容については MSDN フォーラムに投稿をしてアドバイスを募ってみてはいかがでしょう。

    MSDN フォーラム - VBA トピック

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません