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