Excel VBAエラー番号400

このQ&Aのポイント
  • Excel VBAを使用している際に発生するエラー番号400の内容について質問があります。
  • 特定のマクロを実行するとエラー番号400が表示される現象について調査中です。
  • 添付されたBookファイルを開いた際にも同じエラーが発生し、原因を特定できていません。
回答を見る
  • ベストアンサー

【Excel VBA】エラー番号400

Excel2003を使用しています。 マクロ名の一覧が表示されるコンボボックスをツールバー上に配置して、そのコンボボックスの中からマクロを選択すると、その選択されたマクロが実行されるというものを作成しました。 そのときの質問↓ http://personal.okwave.jp/qa4355578.html この作成方法で実際に作成された人がいるのですが、その人が言うには、マクロを実行すると(上記の質問内でいうと「更新」ボタンを押すと)エラー番号?400というメッセージが表示されるのだそうです。この“400”というのは、どういう内容のエラーなのでしょうか? 私のほうで作成したBookを、メールに添付してその人に送ったのですが、同じエラーが出るそうです。 (Bookの容量が大きかったので圧縮して添付しました) 添付ファイルを開いてもらえば、ツールバーもそのBookに添付したので、うまくいくと思ったのですが…。 わかりづらくて申し訳ないのですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

たぶん、そのコードがVBProjectにアクセスしているにも拘わらず、 アクセス許可の設定をしてないところにあると思われます。 その設定はxl2000では不要ですが(というより設定するところがない) xl2003では必要になります。 (設定方法) エクセルのツールメニュー > マクロ > セキュリティと進み 表示されたダイアログで次の2つを確認&設定 (1)「セキュリティレベルタブ」をクリックして     レベルを「中」以下にしておく (2)「信頼できる発行元」タブをクリックして    Visual Basicプロジェクトへのアクセスを信頼する、にチェックを入れる ●重要なのは(2)の方です。   外しましたらご容赦! 以上。  

rx-z5815
質問者

お礼

回答ありがとうございます。 >外しましたらご容赦! いえいえ、大当たりです(笑) 私自身、“400”というエラーを初めて目にして、設定上の問題とは思いもよりませんでしたので、大変助かりました。

関連するQ&A

  • Excel2008のVBAで

    初めまして。 Excel2008のVBAで以下のことが実現可能でしょうか? 要件:エクセルのシート上で画像を自由に配置させる。 用途:部屋のレイアウトを考えるときに椅子や机を予め画像に取っておき、それを自由に配置して大まかなレイアウトを考えるための物 現状:VBAにてコンボボックス(机や椅子の備品一覧)から備品を選択して該当する画像をシートに張り付ける所まではなんとかなりました。 問題点: シート上に配置した備品の画像をマウスでクリックしたときに備品の諸元をシート上あるエリアに表示する事可能でしょうか? 例えば椅子の画像をクリックしたときに椅子のメーカーやサイズをシート上(フォームでも可)に表示したいと言う事です。 配置した画像のプロパティを見てもイベント処理が無いみたいで、右ボタンのマクロを登録すると画像をクリックすると常にマクロが実行される ので画像のサイズや表示位置を変更することができなくなります。 また、仮にマクロを画像毎に登録するとなると配置する画像の数が不定なので予めマクロをコーディングしておくことが不可能? 等が考えられ、果たしてExcel2008VBAで実現出来るのかと思い、何かヒントでもいただければと思い投稿させて頂きます。

  • VBAのエラーについて

    エクセル2007 でマクロのコードを書いています。 開発画面からマクロを実行するとうまくいくのに、エクセルのシートに配置したボタンにそのマクロを登録して実行するとエラーが出てしまいます。 標準モジュールに UserForm1.showを書いており、UserForm1上に配置したコマンドボタンによってUserForm2を表示させているのですが、UserForm2が出る前に、「問題が発生したために、Microsoft Office 2007 Excelを・・・・・・」というような画面が出て強制終了されます。(UserForm1、UserForm2とも modelessで表示しています。) また、開発画面から1度実行すれば、シートに配置しマクロを登録したボタンからでも実行できるようになるのですが、一度、そのブックを保存してから改めて開くと、同じような症状が出てしまいます。 UserForm2のInitializeに問題があるのだと思い、そこのコードをじっくりと見た結果、UserForm2にあるPageの中に配置した特定のComboBoxとCommandButtonに関する処理を非表示にするとエラーが出ないことが判明しました。しかし、それらについての処理は、他のComboBoxなどと同じ処理(セルの値を読み込むような)をしているもので、名前などのミスもありません。(というか、開発画面からの実行では正常に動きます。) ただ、共通していることとしては、そのエラーが出る特定のComboBoxとCommandButtonは、最後の最後で思いついて配置したものであるということだけなのです。  ずっと、いろいろな方向から試しているのですが、わかりません。複雑な説明で申し訳ないのですが、なにかしら情報をお願いします。

  • Excel-VBAでアプリケーションエラー

    現在、Excel-VBAで作成されたマクロの保守を行っております。 このマクロで現在、アプリケーションエラー(問題が発生したため、Microsoft Excelを終了します。・・・)が発生しています。処理の内容を調べると、以下の通りです。 (1)ブックAのマクロで、ブックBを開く (2)ブックAで、自ブックをクローズする。 (3)アプリケーションエラーが発生。 (4)(3)の時点では、ブックBのみ開いており、アプリケーションエラーのダイアログで、Excelを再起動をチェックし、「送信しない」を選択するとブックBが一旦閉じられ、その後ブックBが開かれる。 →したがって、異常終了しているのは、ブックBと想定される。 この事象を回避する方法をどなたかご存じありませんでしょうか?

  • Excel2013 マクロ''を実行できません

    Excel2013で既存のブックを開こうとすると 「マクロ 'PushMsg'を実行できません。・・・」(画像添付参照) と表示されます。 開こうとするブックにはマクロ(VBA)はありません。 右クリックで「新規作成」では開く事はできます。 又、マクロ有りのブックに対しても同じ現象です。 新規作成で開いたマクロ有りのブックについては正常にマクロは動きます。 ただ、 新規作成で開く→名前をつけて保存→閉じる→ 保存したブックを開く→上記又は画像添付のエラーがでます。 エラーがでるまでの経緯は以下のとおりです。 1.以前は問題なく開く事ができます。 2.Access2016をインストール。 3.上記のエラーが発生。 4.Access2013のruntimeを以前インストールしていたのでアンインストール。 5.やっぱり上記のエラーが発生。 6.Office2013の修復。(オンライン修復) 7.やっぱり上記のエラーが発生。 いろいろと調べましたがわかりません。 なにかわかる方、教えて頂ければ幸いです。 宜しくお願い致します。

  • 【Excel VBA】マクロ名一覧の表示について

    Excel2003を使用しています。 ある1つのBookにマクロが25個あります。 マクロを実行する際、目的のマクロが見つけやすいよう、マクロ名にある程度の規則性を持たせているものの、もう少し使い勝手がよくならないかと考え中です。 マクロ名は、下記のようになっています。 (1).あ01_○×、あ02_×○、あ03_○○… (2).い01_●●、い02_●×… (3).う01_××、う02_×□、う03_□×、う04_□□… (4).え01_●□、え02_□●、… 例えば、こんなことが可能かどうかもわからないのですが…。 この25個のマクロは、マクロの内容から大きく分けて、上記(1)~(4)の4種類で、シート上にボタンを4つ配置(仮に、ボタン1、ボタン2、ボタン3、ボタン4)して、ボタン1をクリックしたら、ボタン1に割り振られているマクロ名(例えば、(1)のマクロ名)のみ表示して、その中から目的のマクロを選択すると、そのマクロが実行されるようにすることは、可能でしょうか? イメージとしては、ボタンを配置するということに限らず、入力規則のリストから選択するような感じで、どうにかできないかなと思っていますが、何か良い方法はないでしょうか? わかりづらい文章で申し訳ありませんが、よろしくお願いします。

  • エクセル、フォームでのVBAについて(コンボボックス)

    エクセル97でフォームのコンボボックスを使用する場合の質問です。 ワークシートにコンボボックスを10個配置しました。 入力範囲はすべて同じです。 このコンボボックスで特定の項目(入力範囲6番目)を選んだ場合、次のマクロを実行するようにしようと思っています。マクロを10個書いてそれぞれのコンボボックスに登録してもいいのですが、それよりはどのコンボボックスが使用されたか特定できればすべてのコンボボックスに一つのマクロで対応できます。 コンボボックスに番号(たとえばコンボ1~コンボ10)を振ってその番号の取得ができればいいのですが、どのように記述したらよいのか検討がつきません。 お教えください。

  • Access2010 イベントが動かない

    超初心者です。言葉の意味も分からない場合がありますので、どうか噛み砕いて教えてくださると助かります。 他の方がAccess2003で作成されたAccessプログラムです。 コンボボックス1 コンボボックス2 コンボボックス3 コンボボックス4 テキスト5 コマンドボタン6 コマンドボタン7 コンボボックス1で選択したものに関連するものが、コンボボックス2で選択できるようになる コンボボックス2で選択したものに関連するものが、コンボボックス3で選択できるようになる コンボボックス3で選択したものに関連するものが、コンボボックス4で選択できるようになる コンボボックス4まで選択をするとテキスト5に選択されたものが表示される。 コマンドボタン6を押すと、コンボボックス1~4、テキスト5がクリアされ、また新しくコンボボックス1から選択できるようになる。 コマンドボタン7を押すとAccessが終了する このように設定されるようです。 Access2003では正常に動いていました。 しかしOffice2010(Access2010?)を導入したために、上記のプログラムの中で、コマンドボタン6,7が動作しません。 コンボボックス1で選択したものに関連するものが、コンボボックス2で選択できるようになる コンボボックス2で選択したものに関連するものが、コンボボックス3で選択できるようになる コンボボックス3で選択したものに関連するものが、コンボボックス4で選択できるようになる コンボボックス4まで選択をするとテキスト5に選択されたものが表示される。 このアクションは問題ありません。正常に動きます。 しかし、 コマンドボタン6を押すと、コンボボックス1~4、テキスト5がクリアされ、また新しくコンボボックス1から選択できるようになる。 コマンドボタン7を押すとAccessが終了する この2つができません。 コマンドボタン6のイベントプロージャでは、 Private Sub コマンド6_Click() Me![コンボボックス1] = "" Me![コンボボックス2] = "" Me![コンボボックス3] = "" Me![コンボボックス4] = "" End Sub と書かれています。 コマンド7はプロパティシートのイベントのタブ、クリック時に「終了」となっており、マクロで動いているようです。 マクロは、クリックするとAccess終了というだけの簡単なマクロです。 <課題・問題> ・コマンドボタン6を押してもコンボボックス1~4、テキスト5が消去(クリア)されない。クリアさせたい。 ・(Access2003で実行したときに)コマンドボタン6を押してコンボボックス1~4、テキスト5を消去(クリア)しても、データを保持しているらしく、 コンボボックス1~2で選択しても、前回選択したコンボボックス2に関連するものが、コンボボックス3に選択肢が出る。正しく抽出されてこない。 ・コマンド7を押してもAccess終了が実行されない   引数’オプション’を指定した場合、’Quit’マクロアクションを無効モードで実行したり、埋め込みマクロから呼び出して実行したりすることはできません。   とエラーになる。(このエラーの意味も分かりません) どうしたら課題をクリアして動く、使えるようになるのでしょうか? 教えてください。 宜しくお願い致します。

  • エクセルVBAでコンボボックス

    エクセルVBAのコンボボックスの使い方について質問します。 実現したいプログラムは 「チェックボックスから選んだ数字で計算するプログラム」 です。 具体的には… まず、コンボボックスをシート上に配置します。そのコンボボックスには 数字の1から10を選べるようにしておきます。 次に、コマンドボタンを配置します。これは単にプログラムをスタート させる目的です。 ユーザーは、まずコンボボックスから好きな数字を選択します。 そしてスタートボタン(コマンドボタン)を押します。 すると、選んだ数字の2倍がセルに表示されます。 さらに発展系としては… チェックボックスを4つ配置します。各チェックボックス には、+、-、×、÷を割り振っておきます。 また、コンボボックスを2つ用意し、それぞれ1~10の数字をリストにします。 ユーザーは、チェックボックスから好きな記号を選び、さらにコンボボックスから 好きな数字を選びます。そしてスタートボタンを押すと、選んだ数字を選んだ記号 で計算した値がセルに表示されます。 というようなプログラムを考えているのですが、うまくできません。 ポイントは、 ・チェックボックスにリストを入力する方法 ・チェックボックスの選択状態や、リストボックスから選ばれた数字を、  変数として取得する方法 インターネットで調べているのですが、リストボックスに値を入れるのにもマクロを走らせ なければならない方法とか、ユーザーフォームでの説明ばかりでなかなか実現に至りません。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform05.html プログラムのイメージ図としては添付の図の通りです。 どのようにプログラムを書けばいいのでしょうか。

  • エクセルVBA 非表示シートがあるとエラー

    VBA初心者です。 エクセル2007を使用しております。 同一ブック内にある全てのシートで特定のマクロ(下記の例では×××)を実行するようにVBAマクロを個人用マクロブック上に作成しております。 Sub シート一括処理() Dim Sht As Worksheet For Each Sht In Worksheets Sht.Select Call ××× Next Sht End Sub ブック内に非表示シートがあった場合、エラーとなります。 ===================== 実行時エラー'1004' 'select'メソッドは失敗しました: ===================== 下記のような要件を満たすにはどのように修正すればよいでしょうか。 ・非表示シートに対しても、×××マクロは適応したい。 ・非表示シートは暫定的に表示してもよいが、最終的には非表示の状態にしたい。 よろしくお願いします。

  • EXCEL VBA プログラミング

    EXCEL VBAについて教えて下さい。 プログラミング超初心者です。 book1でマクロを実行し、ダイアログボックスを表示させて、任意のファイル(book2)を開き、book1のsheet1をまるごとbook 2の末尾にコピーするという処理をしたいのですが、うまくマクロが組めません。 ダイアログボックス表示→ファイルの選択まではいけたのですが、その先で苦戦しています。。 ご存知の方、マクロの組み方をご教示いただけますでしょうか。 よろしくお願い致します。

専門家に質問してみよう