こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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 プロシージャの名前は、コンパイル時にわかっていなければなりません。実行時バインディング呼び出しでは、わかりません。 」

と二つ解決方法が紹介されていました。存在しないプロパティを参照しているわけではないので
下のものが怪しいように思うのですが、ヘルプ検索では"実行時バインディング呼び出し"等がヒットせず、やはり内容が理解できません。

原因や解決法の分かる方いらっしゃいましたらよろしくお願いします。

投稿日時 - 2012-07-04 20:02:42

QNo.7572244

すぐに回答ほしいです

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

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

投稿日時 - 2012-07-04 22:39:48

お礼

ありがとうございました、一発で解決でしたw

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

投稿日時 - 2012-07-06 14:58:11

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問