次の方法で共有

Excel2010で「実行時エラー'16' 式が複雑すぎます」のエラーが出てしまう。__原因と見つけ方が知りたい。

Anonymous
2010年11月8日 17:51

Excel2010のVBA7.0で以下の式を実行するとエラーが出てしまいます。

原因はなんでしょうか?

また、発生箇所の見つけ方はありますか?

ご存知の方がいらっしゃったら教えて下さい。

ちなみにExcel2003ではエラーになりませんでした。

<例文>

Sub AAA()

Dim DimDbl As Double

Dim CELL As String

CELL = "A1" 'A1セルには「1」が入っている

With ActiveSheet

DimDbl = 1.1 + CDbl(.Cells(1, 1)) 'エラーにならない

DimDbl = 1.1 + CDbl(ActiveSheet.Range(CELL)) 'エラーにならない

DimDbl = 1.1 + .Range(CELL) 'エラーにならない

DimDbl = CDbl(.Range(CELL)) + 1.1 'エラーにならない

DimDbl = 1.1 + CDbl(.Range(CELL)) 'エラーになる

End With

End Sub

宜しくお願いします。

Microsoft 365 と Office | エクセル | 家庭向け | ウィンドウズ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。 プライバシーを保護するために、移行された質問のユーザー プロファイルは匿名化されます。

0 件のコメント コメントはありません
{count} 件の投票

9 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010年11月9日 11:15

    tetete97 さん、こんにちは。

    私の方でも、Excel 2010 の VBA より標準モジュールを作成し、投稿いただいた例文をそのまま貼り付けて試してみました。

    結果、私の方では、実行時エラーは発生せず、正常に実行ができました。。。

    tetete97 さんの環境では、投稿いただいた例文を新規ブックを作成し実行した場合も、実行時エラーとなってしまうのでしょうか?

    もし、よければ以下の点についても試していただくとよいかなと思います。

     ・ 別の PC から実行した場合はどうか

     ・ ステップ インで実行した場合はどうか

     ・ いただいた例文の 1.1 を 1 と変更した場合はどうか

     ・ Excel をセーフ モードで起動して実行した場合はどうか

      Ctrl キーを押しながら Excel 本体を起動すると、セーフ モードになります

    tetete97 さんの返信、お待ちしていますね。

    例文を試していただいた方の中で、同じように実行時エラーが発生したよ、という方がいれば、ぜひ投稿お待ちしています。


    石田 優 – Microsoft Support

    0 件のコメント コメントはありません
  2. Anonymous
    2010年11月9日 15:58

    石田 様

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

    ご指摘頂いたものも含め、以下を試してみました。

     ・ 新規ブックを作成し実行した場合はどうか

     ・ 別の PC から実行した場合はどうか

     ・ ステップ インで実行した場合はどうか

     ・ 例文の 1.1 を 1 と変更した場合はどうか

     ・ Excel をセーフ モードで起動して実行した場合はどうか

     ・ Excel 2007で実行した場合はどうか

     ・ 他のバージョンのExcelを削除した場合はどうか

       (2003を削除し、2010のみにしました)

     ・ 新規にExcel 2010をインストールした場合はどうか

    結果として、全て同様にエラーが出ました。

    他にお気付きの点がありますでしょうか?

    また、問題はExcel2003で作成したものをExcel2010で動かすと

    当エラーにより止まってしまうことなのですが、

    回避策はありますでしょうか?

    環境

    OS:WindowsXP Professional Version2002 SP3

    Excel2010バージョン:14.0.4760.1000(32ビット)

    宜しくお願いします。

    0 件のコメント コメントはありません
  3. Anonymous
    2010年11月9日 16:25

    32ビット版はDEFDBLを使った方がいいのかもしれません。

    http://blog.goo.ne.jp/masaki_goo_2006/e/88b54dc817f86b0926dfc2685a9d277d/?cid=93285a3b3f66573cb5924dadc6532a69&st=0

    ちなみに石田モデレータの環境は何ビット版でしょうか?

    0 件のコメント コメントはありません
  4. Anonymous
    2010年11月9日 20:32

    私も皆目分かりませんので、実行結果のみ。

    私の環境はVista+2003,2007,2010のマルチですが、

    ご提示のサンプルコードを実行した結果

    2007、2010はエラー発生

    2003 OK

    でした。

    VPC環境での話ですが、Win7のOffice2010単独環境でもエラー発生しました。

    0 件のコメント コメントはありません
  5. Anonymous
    2010年11月10日 9:55

    下記MSDNのバカにしたようなコメントによると、「DimDbl = CDbl(.Range(CELL)) + 1.1」

    が正解なのかもしれません。(入れ子になっている部分式)

    式が複雑すぎます。

    http://msdn.microsoft.com/ja-jp/library/dsykck9b(VS.80).aspx

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