VBAでEXCELのプルダウンリストの内容を取得

このQ&Aのポイント
  • エクセル2007を使用してマクロを組んでいます。
  • セルに仕掛けられているプルダウンメニューの内容を取得し、ユーザーフォームのコンボボックス上からの選択が可能になるようなものを作ろうとしています。
  • VBAのコードを変更したところ、エラーが発生しています。具体的なエラーメッセージや解決方法について教えていただけないでしょうか?
回答を見る
  • ベストアンサー

VBAでEXCELのプルダウンリストの内容を取得

エクセル2007を使用してマクロを組んでいます。 http://okwave.jp/qa/q4881623.html こちらを参考に、セルに仕掛けられているプルダウンメニューの内容を取得し、ユーザーフォームのコンボボックス上からの選択が可能になるようなものを作ろうとしています。 リンク先のソースを全く変えずに実行してみた場合、質問者さんと同じように「424 オブジェクトが必要です」のエラーが発生します。 これを回避しようと変更してみたのですが、今度は違うエラーが発生してしまいます。 また質問者さんの行った解決法がどういうものなのかということも理解できていません 自分の行った変更は set r = ActiveSheet.UsedRange の部分を set r = Selection に変更したというものです。 ------------------------------------------------------- 実行時エラー '438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。 ------------------------------------------------------- 自分の環境で発生するエラーのエラーメッセージは以上のようなもので 発生するタイミングは変数 ss に v.fomula1 を代入するタイミングです。 ローカルウィンドウで確認する限りでは 入力規則を取得したはずの v の .fomula1 プロパティにはしっかりと "りんご,みかん,もも" と値が格納され、型も String になっています Debug.print で v.formula1 の内容を吐いてみても りんご,みかん,もも と出力されます。 また、エラーウィンドウのヘルプを見てみると 「 ・このオートメーション オブジェクトに存在しないメソッドまたはプロパティが指定されています。 オブジェクトの詳細については、オブジェクトのマニュアルを参照し、プロパティとメソッドが正しいかどうかを確認してください。 ・Friend プロシージャが実行時バインディングで呼び出される指定になっています。 Friend プロシージャの名前は、コンパイル時にわかっていなければなりません。実行時バインディング呼び出しでは、わかりません。 」 と二つ解決方法が紹介されていました。存在しないプロパティを参照しているわけではないので 下のものが怪しいように思うのですが、ヘルプ検索では"実行時バインディング呼び出し"等がヒットせず、やはり内容が理解できません。 原因や解決法の分かる方いらっしゃいましたらよろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

リンク先のコードをそのまま貼り付けると、 ss = v.fomula1 になっていますが、正しくは ss = v.Formula1 なんてオチだったりして。 対象セルが一個だけなら、 Set t = ActiveCell にして、For each のループは外してしまっても良いと思いますが、お節介だったらすみません。

WatchGoo
質問者

お礼

ありがとうございました、一発で解決でしたw ループのほうは今後何かのおりに拡張するかもしれないから…… と、はずす前のものをコメントアウトして取っておくことにしました

関連するQ&A

  • このオブジェクトには、オートメーションオブジェクト

    アクセス2010です。 アクセスでフォームにはめ込んでいるサブフォームのデータをフィルタしようとすると ---------------------------------------------------------------------------- このオブジェクトには、オートメーションオブジェクト’カテゴリ’は含まれません。 オブジェクトのプロパティを設定するか、 メソッドを実行するVisual Basicプロシージャを実行しようとしましたが これらのプロパティまたはメソッドが使用できません。 オートメーションオブジェクトでサポートされているプロパティまたはメソッドについては、 コンポーネントのドキュメントを参照してください。 ---------------------------------------------------------------------------- と言うエラーになります。 フォームにカテゴリと言うフィールドは紐づけてないのですが なぜこのエラーが発生するのでしょうか?

  • エクセル2010のvbaについて

    Image1.picture = LoadPicture() 上のImage1を変数にすることはできますか? WithやActiveSheet.Shapes.Range(Array(""))なども実行しましたが 同じエラーしか出ません (オブジェクトは、このプロパティまたはメソッドをサポートしていません) 回答お願いします

  • VBAのエラー:438

    VBA初心者ですが、宜しくお願いします。 ver:Office 2000 新しいパスワードをつけるマクロを実行すると「実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」となります。 ソースはここです↓ ActiveWorkbook.Password = "TEST" ほかの端末(office2003)では実行できるのに何故でしょうか

  • エクセルVBAの質問です。

    エクセルVBAの質問です。 セルに特定の値が入力された場合にエラーとし、「再試行」を選択するとセルが修正出来る状態にしたいのですが、下記のコードだと実行時エラーが発生してしまいます。 if cells(10,10).value > 1 then if msgbox("err", vbCritical + vbRetryCancel,"") = vbRetry then Cells(10,10).Select Cells(10,10).Active ⇒ エラー箇所 else Cells(10,10).ClearContents Endif Endif 実行時エラー '438' オブジェクトは、このプロパティまたはメソッドをサポートしてません。 いろいろネットを検索してみましたが、よくわかりませんでした・・・。 VBAは初心者です。 かなり困ってます。 どなたか助言をお願い致します。

  • 並べ替えでエラーになる サブフォーム 2007

    現在使っているaccdbファイルがおかしいので助けてください。 フォーム1にサブフォームをはめ込んでいます。 サブフォームは帳票ビューです。 フォーム1を開いて、サブフォームのどのフィールドでも 右クリック→昇順に並べ替える・もしくは降順に並べ替える をすると、 ****************************************************************************** このオブジェクトには、オートメーションオブジェクト 'フィールドYESNO'は含まれません。 オブジェクトのプロパティを設定するか、 メソッドを実行するVisual Basicプロシージャーを実行しようとしましたが これらのプロパティまたはメソッドが使用できません。 オートメーションオブジェクトでサポートされているプロパティまたはメソッドについては、 コンポーネントのドキュメントを参照してください。 ****************************************************************************** と言うエラーになります。 並べ替えは問題なく出来ています。 フィールドYESNOは、YESNO型です。 サブフォームだけを開いて、さっきと同じように並べ替えをすると、問題なく並べ替えが出来ますが サブフォームをはめ込んだフォーム1を開いて並べ替えをすると上記のエラーになります。 普段使用する時は、フォーム1を開いてサブフォームの操作をするので、 フォーム1を開いた状態で エラーを出さずにサブフォームの並べ替えが出来るようになりたいのですが 何を修正すればよろしいでしょうか?

  • Excelのマクロを使ってコメントを表示させる

    マクロを使ってセルにコメントを挿入したいのですが、どうしてもエラーが出て先に進めません。 エラー内容 実行時エラー:438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 【Excel2007 SP1】を使っています。 マクロに詳しい方、ご教授よろしくお願いします。

  • 日本語だからエラーになるのかな(VBA)

    エクセルやアクセスで原因のわからない実行時エラーが出るのですが プロシージャー名やオブジェクト名や変数名に日本語で命名しているのですが それが原因でエラーが発生する事ってありますか? 全て英文字に書き換えるべきなのでしょうか?

  • スクリプト エラー

    niftyのホームページを開いた時だけ ”スクリプト エラー” このページのスクリプトでエラーが発生しました。 ライン:33 文字:4 エラー:オブジェクトでサポートされていないプロパティーまたはメソッドです。 コード:0 このページのスクリプトを実行し続けますか? はい いいえ と出ます。まったく対処方法がわかりません。 宜しくお願いします。

  • エクセルVBA 現在のセルの4個上のセルの値

    こんにちは、 エクセルマクロの質問です。 イミディエイトウィンドウにて 現在のセルの4個上の値を表示しようと以下の文を入力したところエラーになりました。 ?cells(activecell.row-4,activecell.colum).value で 「実行時エラー 438 オブジェクトはこのプロパティまたまメソッドをサポートしてません。」 なぜでしょう? ?activecell.Row-4  ?activecell.colum はそれぞれ 正しく表示されます。

  • EXCEL VBA:IEの操作であるラジオボタンを選択する方法

    IEの操作に関して、あるhtmlページに複数のラジオ・ボタンがあってそのなかの一つを選択する方法を教えていただけますでしょうか。 そのラジオ・ボタンは次のようにjava scriptでソースに記述されています。 <input type = "radio" name="bname" value="5"> そこで次のようにマクロで記述したのですが、「実行時エラー:438、オブジェクトはこのプロパティまたはメソッドをサポートしていません。」と出ます。 .Navigate targetURL With .Document.Forms(0) .Item ("bname") .Value(5).Checked = True ← ここでエラーが出る。 End With .Value(5)を.Value("5")としても同じエラーがでます。 別のプロパティ・メソッドが必要なのでしょうか。