none
Excel2010でDialogSheets()を動作させると実行エラーになります。 RRS feed

  • 質問

  • Excel2007まではDialogSheets()というコマンドが正常に動作していましたが、Excel2010では実行エラーになります。

    例えば、以下を実行すると実行時エラー’1004’ DropDownクラスのValueプロパティーを取得できません。とエラー表示されます。

    解決策があるでしょうか?

    cabl = DialogSheets("Dialog1").DropDowns("ドロップ 1").Value

    2018年4月11日 8:19

すべての返信


  • 私も Excel 2010 環境ですが、エラー発生しませんでした。
    ただし、なぜかドロップダウンエディットコンボボックス名が「ドロップ 4」と命名されていました。。

    シート右クリック → 挿入... → MS Excel 5.0 ダイアログ
    ドロップダウンエディットコンボボックス貼って、入力範囲を設定

    ' ActiveX ボタンのクリック
    Private Sub CommandButton1_Click()
        
        DialogSheets("Dialog1").Show
        
        cabl = DialogSheets("Dialog1").DropDowns("ドロップ 4").Value
        MsgBox cabl
        
    End Sub



    Visual Basic for Applications エディタ内、
    cabl = DialogSheets("Dialog1").DropDowns("ドロップ 1").Value
    の行で、ブレークポイントを設定してVBA実行、この行で停止したら、
    DialogSheets("Dialog1").DropDowns("ドロップ 1")
    を選択して、「ウォッチ式の追加」をして、コンボボックス自体が取れているか、確認してみてはどうでしょうか。
    つまり、コンボボックス名は合っていますでしょうか。
    2018年4月11日 14:30
  • ご回答ありがとうございます。

    新たなファイルで上記の式を実行しました。

    エラーは表示されませんが、メッセージボックスは表示されませんでした。

    ドロップダウンリストは値の選択が可能で、その値が表示されますが、メッセージボックスはポップアップされません。

    ウオッチ式の追加で値は<対象範囲外>と表示されます。

    (問題のファイルではエラー表示と同様にウオッチ式の値は”DropDownクラスのValueプロパティーを取得できません”と表示されます。

    値がうまく取得できないようです。

    2018年4月19日 8:54
  • しつこくてすみません。
    ダイアログシート名、コントロール名は、共に正しく指定しているのにも関わらずNGでした?
    「ドロップ 1」でした?


    2018年4月19日 14:00
  • 追記です。
    コントロール名誤りなだけでは?と考えていまして(外していたらごめんなさい)。
    違うなら違うと、お手数ですが教えていただきたく思います。

    それで、VBA 上から、名前が何なのか見た方がいいのかなとも思いましたので、ウォッチ式の追加で、確認してみるのも手かなと思いました。

    「~.DropDowns」まででウォッチ式を見ると、下の方に該当するコントロール情報が出てくるはずです。
    画像だと「Item 1」の部分です(2, 3 ... とあるかもしれませんが)。

    これを展開した先に、何と書かれているかを見ます。


    2018年4月19日 14:22
  • 回答が遅くなり申し訳ございません。

    ダイアログシート名、コントロール名は、共に正しく指定しているのにも関わらずNGでした。

    追記に関して、GW明けに会社のパソコンで確認します。(自宅の2007では問題なし)

    結果を報告しますので、また、よろしくお願いします。

    2018年4月30日 2:33
  • ウオッチ式を展開することができません。1行のみ表示されます。

    ドロップダウンリストは値の選択が可能で、その値が表示されますが、メッセージボックスはポップアップされません。何故でしょうか?

    試験的に作成したExcelファイルを保存する時、

    次の機能はマクロなしのブックに保存できません

    VBプロジェクト

    と表示されます。マクロの機能がインストールされていないのでしょうか?

    2018年5月15日 5:23
  • マクロ無しの場合は xxx.xlsx という拡張子で扱い、マクロありの場合は xxx.xlsm で管理するように、仕様が変わりましたね。


    Excelで「次の機能はマクロなしのブックに保存できません」が表示されたときの対処方法
    http://www.koikikukan.com/archives/2013/11/13-013333.php
    2018年5月16日 0:41
  • Excel2007まで正常に動作していたブックをxxx.xlsmで保存しました。

    ダイヤログボックスに値を入力して実行させると、相変わらず、”実行時エラー’1004’DropDownクラスのValueプロパティーを取得できません。”とエラーが表示されますが、ダイヤログボックスを右クリックして実行させると正常に動作します。

    ダイヤログボックスのシートを最小化して実行させるとエラーになるようです。

    解決策があるでしょうか?

    2018年5月16日 8:18
  • 申し訳ないのですが、私の力では解決できそうにありません。
    後は、以下くらいしか思いつきませんでした。


    1.他の方の返答を待つ
    2.ダイアログシートは諦めて、UserForm を使う
    3.インストーラー等から、「修復」してみる
    4.Windows Update 等から、Office の更新プログラムを適用してみる
    5.アンインストール、インストールし直ししてみる


    (追記)参照設定辺りは確認されましたでしょうか?
    Visual BasicのDialogSheets()に関して
    https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_other-mso_2010/visual/5e92f826-ed47-4d0a-a471-8c4c4480faea

    • 編集済み sutefu7 2018年5月17日 6:10 記述後に見つけたため
    2018年5月17日 5:47
  • いろいろと調べましたが、最終的には最小化のコマンド”ActiveWindow.WindowState = xlMinimized”をコメントにして
    実行させないようにしました。見栄えは悪いですが、取りあえず、この方法で使用することにします。良い方法があれば、また、ご教授ください。

    2018年12月18日 4:43