EXCEL系制御での『アプリケーション定義またはオブジェクト定義のエラー』について

VB6,VBA,VBS,EXCEL,DOS,BAT,WSH,WORDの小技メモ

HTML/ CSS/ CGI-Perl/ JavaScript/ JavaApplet/ AccessUp/ Internet/ EnglishLearn/ ちゃいちゃん天使/ 天使メッセージ/ 飯田ワールド/ 結城ワールド/ プロフィール/ WEB相談室/ WEBアンテナ/ 燈明日記/ Perlノート/ 漢字起源/ yahoo

はじめに

本ページは、ウインドウズ系全般のティプスメモです。

そう、はじめはVB系のティプスメモだったのですが…いつの間にか、ウインドウズ系全般のティプスメモになってしまいました。

ちなみに、ティプス(Tips)とは、マニュアルに書かれていない技法や裏わざのことですが、本ページでは、私が経験してこれはと思ったノウハウのメモになっています。

尚、以下は本サイトの最新情報(ブログ)です。

それでは、本ページが何かのお役に立てれば幸いです。ごゆっくりご覧ください。

◆ EXCEL系制御での『アプリケーション定義またはオブジェクト定義のエラー』について

たとえば、DBからデータをSQLして、そのデータをEXCELのセルに代入するとします。

このとき、ノーチェックだと『アプリケーション定義またはオブジェクト定義のエラー』が発生する場合があります。

これは、セルに格納するデータの先頭に『=』が入っていると文字列だと見なさず、数式扱いされ、『=』の以降が定義エラーになると思われます。

したがって、代入する文字列の先頭に『=』がある場合は、『'』を『=』の前に付加してやると数式でなく文字列扱いされ、正常に処理されます。

'イメージサンプル
    
           for lngIdx = 0  to UBound(datDB) step 1
               If (Mid(datDB(lngIdx).strURL, 1, 1) = "=") Then
                    'セルデータの一カラム目が『=』のときは、数式になるため、『'』を先頭に付加して文字列にする。
                    strWk = datDB(lngIdx).strURL
                    datDB(lonIdx).strURL = "'" & strWk
                End If
                shtSheet.Cells(lngIdx, 1) = datDB(lngIdx).strURL
           Next

おわりに

以下のページには、すべてのTIPSがあります。もしよろしければ、どうぞ!

尚、ご感想、ご意見、誤字、脱字、間違い等がありましたら遠慮なくVB-TIPS掲示板へご指摘ください。

人のよいところをどんどん見つけよう