問題タブ [userform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6297 参照

class - VBA UserForm オブジェクト

私はここで何かに本当に苦労しています。私はクラス モジュールを持っています。それを FormMan と呼びましょう。これには、プロジェクトにある多数のユーザー フォームに関連するメソッドがたくさんあります。特定のメソッドの 1 つは、さまざまな場所から呼び出されるもので、非常に単純です。ユーザー定義の数のコントロールをフォームに追加し、これらの新しいコントロールに対応するようにフォームの高さを拡張するだけです。

ユーザーはコントロールの数とユーザーフォームを渡します。

FormMan クラス モジュール内:

[ローカル] ウィンドウでは、oForm に高さのプロパティがないため、問題ありません。ただし、oForm は frmTest として定義されています。私は言うことができますoForm.BackColor = vbred、そして私はctl = oform.TextBox1例えば設定することができます

これは、フォームに多数のコントロールを追加できる一般的な手順であることを意図しています。oForm に割り当てる前に、フォームを読み込んで表示しようとしました。

ユーザーフォームの高さと表示のプロパティとメソッドがユーザーフォームとして宣言されているのに、オブジェクトのメソッドが宣言されていないのはなぜですか? 私は何を間違っていますか?

どんな助けにも本当に感謝します。

0 投票する
3 に答える
96313 参照

vba - VBA を使用して Excel ユーザーフォームのフレームにコントロールを追加する

ラベルとボタンを動的に作成し、ユーザーフォーム内のフレームに追加する必要があります。どうすればいいですか?実際よりも簡単なはずです。

0 投票する
5 に答える
86677 参照

excel - Excel ユーザーフォームの動的に作成されたボタンにオンクリック VBA 関数を割り当てる

次のコードを使用して、Excel ユーザーフォームにボタンを動的に作成しています。

これらのボタンがクリックされたときに実行する関数を割り当てたいのですが、ボタン自体の一部としてプロパティがないため、これを行う簡単な方法が見つかりません。

上記のイディオムを使用してこれを行う方法はありますか? この全体を別の方法で行う必要がありますか?

0 投票する
3 に答える
4254 参照

vba - Outlookのユーザーフォームが応答しない(閉じることができない、ボタンクリックイベントが発生しない)

Outlook VBAマクロで単純なユーザーフォームを作成しました-次のコードを使用してフォームを表示できます:

...そしてUserForm_Initialize()イベントは実際に発火します。ただし、フォームの[送信]ボタンをクリックしても何も起こりません。SubmitButton_Click()イベント(デザイナーのボタンをダブルクリックして自動作成されたもの)は発生しません。また、ユーザーフォームのウィンドウの右上隅に通常の小さな赤いXが表示されますが、これをクリックしても何も起こりません(フォームが閉じたり終了したりすることはありません)。

私が間違っているかもしれない何か考えはありますか?私はVBAにまったく慣れていません。

0 投票する
2 に答える
19809 参照

vba - vbaユーザーフォームのキャリッジリターンの動作

VBAのユーザーフォームのテキストボックスで、キーボードの「Enter」キーを押すことでテキストボックスに改行できる機能を有効にしたいと考えています。しかし、UI エディターでこれを実現するための UI オプションを見つけるのに苦労しました。これは VBA ユーザーフォームでも許可されていますか? アドバイスと回答をお寄せいただきありがとうございます。

0 投票する
2 に答える
21761 参照

excel - Excelvba用に作成されたフォームのボタンにホットキーを割り当てる

ボタンとテキストフィールドを含むフォームをポップアップするExcel用のマクロを作成しました。「ctrl+Enter」や「F12」などのホットキーをボタンに割り当てる方法はありますか?ホットキーは、フォーカスが置かれているフィールドまたはボタンに関係なく機能するはずです。

(これまで、vbKeyF12のMSForms.ReturnIntegerをチェックするためにbuttons / fields_Keydownsを作成することができましたが、すべてのフィールドとボタンに対してそれを行う必要があります。もっと簡単な方法はありますか?)

たとえば、フォームにはボタン「CommandButton1」とテキストフィールド「TextBox1」の2つがあります。

ボタンのコード:

ホットキーは、フィールドやボタンを追加するときに便利です...

また、フォームを閉じる/非表示にするために[エスケープ]ボタンを設定するにはどうすればよいですか?

0 投票する
4 に答える
41294 参照

vba - Excel VBAのユーザーフォームのタイマー

一定の間隔でタスクを実行したい古い Excel VBA コードがあります。VB6 を使用していた場合は、タイマー コントロールを使用していたでしょう。

Application.OnTime()メソッドを見つけました。Excel ワークシートで実行されているコードではうまく機能しますが、ユーザー フォームでは機能しません。メソッドが呼び出されることはありません。

Application.OnTime() でユーザー フォームのメソッドを呼び出すにはどうすればよいですか、または VBA でコードを実行するようにスケジュールする他の方法はありますか?

0 投票する
1 に答える
3326 参照

excel - VBAユーザーフォーム配列

現在、いくつかのデータと、そのデータのサブセットを表示するユーザーフォームを作成するコマンドボタンを含むExcelスプレッドシートがあります。ユーザーフォームは、データを表示しやすくするように設計されています。私が抱えている問題は、コマンドボタンでユーザーフォームの複数のインスタンスを作成して、各フォームに異なるデータセットを表示できるようにすることです。

私はVBAにかなり慣れていないので、提案や開始する場所をいただければ幸いです。ありがとう。

0 投票する
5 に答える
81227 参照

vba - ユーザー フォームをモーダル ストップ コード実行として表示するのはなぜですか?

次の VBA コードは で停止しMe.Showます。私のテストから、Me.Showコードが UserForm 内にある場合でも、すべてのコード実行が停止するようです。

この部分は UserForm の外側にあります:

この部分は UserForm の中にあります:

Me.ShowUserForm が表示された後、コードは で停止します。エラーはありません。コードの実行を中止するだけです。VBA でモーダル UserForm 内のコードを実行する唯一の方法は、次のように UserForm_Activate プロシージャにコードを含めることです。

この部分は UserForm の外側にあります:

この部分は UserForm の中にあります:

もちろん、Me.ShowUserForm_Activate の中に入れることはできません。なぜなら、そのプロシージャは UserForm Show イベントの後にしか起動しないからです。

のドキュメントにUserForm.ShowModalは、「ユーザーフォームがモーダルの場合、ユーザーはアプリケーションの他の部分を使用する前に、情報を提供するかユーザーフォームを閉じる必要があります。ユーザーフォームが非表示になるかアンロードされるまで、後続のコードは実行されません。

プロセスの実行中にユーザーがアプリケーションと対話するのを防ぐために、進行状況バーとしてモーダル UseForm を使用しようとしています。しかし、すべてのコードが UserForm_Activate プロシージャ内にある必要がある場合、これを達成するのは困難です。

ここで何か不足していますか?すべてのコード実行が で停止するのはなぜMe.Showですか?

0 投票する
1 に答える
4021 参照

excel - ユーザーフォームを閉じられません

環境を整えましょう。

これは Excel で実行される VBA コードです。

msflexgrid を含むユーザー フォームがあります。このフレックスグリッドには、顧客のリストと、顧客、営業担当者、CSR、製造担当者、地域、割り当てが表示されます。列をクリックすると、たとえば Territory 列の下で、別のユーザーフォームが開き、Territories のリストが表示されます。次に、選択した地域をクリックすると、ユーザーフォームが消え、新しい地域が古い地域に置き換わります。

選択した領域をクリックするまで、これはすべてうまく機能します。「領域」ユーザーフォームは消えず (ちらつきます)、新しい領域は基になるユーザーフォームを転送しません。

コードをステップ実行すると、うまく機能することを言及する必要があります。

ユーザーフォームを開く他のすべてのユーザーフォーム(フレックスグリッドを持たない)は問題なく機能するため、フレックスグリッドと関係があると思います。

以下は、いくつかのコードサンプルです。

**テリトリーユーザーフォームが閉じられたときにテリトリーユーザーフォームと新しいテリトリーの割り当てを示すflexgridからのイベントをクリックします。

** 次のサブはテリトリー ユーザーフォームで使用されます

私はこれが長々とした説明であることを知っていますが、私はかなりまともな VBA プログラマーであり、これには困惑しています。

どんな助けでも大歓迎です。