• 締切済み

VBA コントロール EXCEL

VBAでプログラミングしています。 Excelでコントロールを使用しようと思いますが、 数が多くなりそうですが~ オプション ボタン 約20600個 チェック ボックス 約600個 コンボ ボックス 約500個 コマンドボタン 約300個 そして、上のコントロールにVBAで制御をする予定です。 値を設定、値を取得、イベントの発生などの動作になります。 環境はEXCEL 2003になります。 これで問題ないですか。 問題があったらどんな問題がありますか。(速度、メモリ、容量、エラーなど) 教えてください~

みんなの回答

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

5600個のチェックボックスを動的に配置しようとしたら、20分経っても終わらず、実行を中断させると暴走しました。(Excel2000) 試してみたければ、コードがこちらにあります。 http://okwave.jp/qa5146795.html

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

明らかに設計を見直すべきですね。 >これで問題ないですか。 すでに問題だと思います。 どんなに複雑なシステムでもそんな風になるのは考え方に問題がある。

回答No.1

20,000個以上のコントロールがどういう場面で出てくるんでしょうかね。 まさか 1つのユーザーフォーム上にすべて配置する? まずはご自分でモックアップを作成してみて感触を確かめてみてはどうでしょうか? 回答者が試すのにだって 20,000個以上のコントロールをフォームに張り付ける労力は提供できませんからね。 速度やメモリ消費などで問題がなくてもユーザビリティー的に問題ありそうな気がするんですけど。。。

関連するQ&A

  • エクセルVBAのカレンダーコントロールの件で

    エクセルVBAを使用して リストボックスかコンボボックスかテキストボックスかを クリックするとカレンダーコントロールが呼び出されて カレンダーコントロールの日付をクリックすると カレンダーコントロールは閉じその値が上記2行目いずれかに 入力されるようにすることは可能なのでしょうか いろいろ文献を探してみたのですがよくわからずじまいでした よろしくお願いします

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

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

  • Excel-VBA>コントロールをグレイアウトするには?

    Excel-VBAでユーザーフォームのコントロールをグレイアウト(灰色にして入力不可能にする)するには、プロパティのどの項目を変更すれば良いのでしょうか? 具体的には、2つのオプションボタンの一方が選ばれたとき、その隣にあるテキストボックスをグレイアウトしたいのです。 ちなみに、グレイアウトの方法は、オプションボタンの状態を監視して、値がTrueになったときにテキストボックスのプロパティを変更させればいいのかな?・・・と考えていますが、この方法が間違っているようでしたら、それについてもアドバイスお願いします。 どうぞ宜しくお願いします。

  • エクセルVBAのコンボボックスについて

    エクセルVBAでActiveXコントロールのコンボボックスを配置して以下の プログラムを記述しているのですが、 コンボボックスでAを選択した後に、もう一度Aを選択したときに イベントが発生しません。 Private Sub ComboBox1_Change()ならイベントが発生しないのは 分かるのですが、Clickの場合は、選択された値が変わらなくても イベントが発生すると思ってたのですが。 VB6では問題なく発生しています。 ちなみにセルの入力規則ではなくてコンボボックスで実現したいです。 Private Sub ComboBox1_Click() 'ここに処理を記述 End Sub

  • vbaで、フォームコントロールを挿入する方法

    vbaで、フォームコントロールを挿入する方法 エクセル2007を使っています。 最近、vbaを始めたのですがわからない事があります。 開発→挿入→挿入→フォームコントロールで、 オプションボタンやチェックボックスを、 vbaで挿入したいのですが可能でしょうか? 例えば、フォームコントロールのボタンを押しただけで オプションボタンを6つ挿入するなどです。 ActiveXコントロールでは、可能とどこかのサイトで見たのですが、 どうしてもフォームコントロールの方を使いたいの…。 よろしくお願いします。

  • VBAの表示できるコントロールの上限

    はじめまして。今、非常に困っています。 VBAを使用してテキストファイルを読み込み、 その値に応じてコンボボックスやチェックボックス で表示させるプログラムを作成しています。 テキストファイルがかなりの大きさで表示される コンボボックスやチェックボックスもかなりの量 になるのですが、表示している途中で処理が 止まってしまいます。 原因がよくわからないのですが、もしかしたら表示 できるコントロールの上限っていくつなんでしょうか? それとも違う原因なんでしょうか? どうか詳しく知っている方がいらっしゃいましたら 教えてください。 よろしくお願いします。 OSは、Windows 2000 アプリケーションは、Excel 2000 です

  • エクセルVBA コントロールの制御

    エクセルのシート上にコマンドボタンを貼り付けています。このシートを縦横にスクロール移動してもコマンドボタンは常に同じ位置(たとえば画面中央)に在るようにプロパティかVBAで制御できないでしょうか。 エクセルは2003Pro、WindowsはXpProです。

  • VBAでユーザーフォームを再表示させたい。

    ExcelのVBAでユーザーフォームを作成し、 Initializeイベントで初期化をし、コマンドボタンを クリックしたら処理を行うように作成しました。 ところがコマンドボタンによって処理を行った後、 再度Initializeイベントを呼びたいんです。。 (コンボボックスの表示を更新する処理を 含んでいるため) なんとかうまい方法はないでしょうか??

  • エクセルVBAでコンボボックスの非表示について

    最近VBAを勉強し始めたのですが、コントロールについてわかりませんので、ご教授お願いします。 コンボボックスを初期では非表示、トグルボタンをクリックすると、コンボボックスを表示させる方法を教えてください。 ユーザーフォームについてまだ未熟なので、すみませんがよろしくお願いします。

  • excel vba 作成方法 

    現在大学2年生です。課題の提出をしたいのですが、excel vbaがよく分かりません。心優しい方、回答をお願いします。 コンボボックスで1945年から2011年の一つを選び、チェックボックスで男か女のどちらかを選び、コマンドボタン「結果」をクリックすると、テキストボックス3つ「年齢」「干支」、(チェックボックスで男か女を選択)「平均寿命はあと何年」の値が入るというプロブラムを作りたいです。 コンボボックスはsheetのA2~A68の値から選択するというところまではできました。テキストボックスの年齢はsheetのC2~C68,干支はD2~D68、チェックボックスで男を選んだ場合はE2~F68,女を選んだ場合はG2~G68が、コマンドボタンを押した瞬間に出るというプログラムは可能でしょうか? パソコンが苦手です。分かりやすく教えていただけたら本当に嬉しいです。よろしくお願いします!!