DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VB6 実行時エラー340 の対応

環境/言語:[Winxp, sp3, VB6,sp6]
分類:[VB6以前]

VB6,SP6 ,WinXPで作成しています。

Verアップでのコードを追加し、インストーラを作成、他のWin7のPCにインストールを行い、実際に起動すると下記のエラーメッセージが表示されます。

実行時エラー 340 コントロール配列の要素 "21890" がありません。

開発環境でのコンパイルでは上記エラーは発生しません。
インストーラでインストールした他のPCで発生します。

Verアップ以前のインストーラからのインストールでは正しく動作します。
たぶん、追加コードによるものと思われますが、思い当たるところはチエックしてのですがわかりませんでした。良い解決方法があればアドバイスを宜しくお願いします。
  • 題名: Re[1]: VB6 実行時エラー340 の対応
  • 著者: オショウ
  • 日時: 2012/04/14 17:43:10
  • ID: 30321
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> たぶん、追加コードによるものと思われますが、思い当たるところはチエックしてのですがわかりませんでした。良い解決方法があればアドバイスを宜しくお願いします。

  新たに追加したプログラム部分で、フォームにコトロールを追加
  されましたか?それとも動的にコントロールを追加するようなプ
  ログラムを書きましたか?

  Win7には、標準ランタイム部分しか導入されていないので、WinXP
  にあってWin7になりコントロールがあるのでは・・・と思います。

※ コントロールの内容は未確認ですので、ちゃんと調べて下さい!

以上。
■No30319に返信(こあさんの記事)
> 実行時エラー 340 コントロール配列の要素 "21890" がありません。
その Index 番号の要素が無いという事ですね。

何らかの処理ミスで処理がスキップされており、コントロールを
ロードし損ねている(あるいはアンロード済み)のではないでしょうか。
(あるいは、On Error 等でエラーを握りつぶしている箇所は無いでしょうか?)


> 開発環境でのコンパイルでは上記エラーは発生しません。
> インストーラでインストールした他のPCで発生します。
コンパイルモードを、ネイティブから P-Code に変更してみては如何でしょう。
最適化処理によって、いずれかの処理手順に差異が生じているのかも。
■No30322に返信(魔界の仮面弁士さんの記事)
■No30321に返信(オショウの記事)

アドバイスを頂きありがとうございます。
ご指摘の内容を細かく検証してみたところ原因がわかりました。
確かに新フオームにコントロール配列などを載せると同時に、ある構造体に変数も追加していました。この変数は数値で0から2の範囲での仕様し、バイナリファイルとしてリード/ライトするものです。開発環境では問題なくその範囲で動作するのですが、どうもPCへのインストール後では範囲を超えた大きな数値となり、エラーをとなったようです。
一度このファイルをリセットして再度作成したところ問題なく動作しました。
なんとも遠回りしましたが解決致しました。ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板