アプリ版:「スタンプのみでお礼する」機能のリリースについて

フォーム1にTextbox1とTextbox2、フォーム2にTextbox1とTextbox2…フォーム50にTextbox1とTextbox2、のようにTextbox1とTextbox2があるフォームが約50個あり、このすべてのTextboxでダブルクリックすると同じカレンダーフォームが表示されるようにしています。
※フォーム名は仮です。

Textbox1をダブルクリックして表示させたカレンダーフォームで日にちを選択(ボタンをクリック)すると、Textbox1に、Textbox2をダブルクリックして表示させたカレンダーフォームで日にちを選択すると、Textbox2に日にちが入力されるようにすべてのフォームでやりたいです。

どのフォームのテキストボックスから選択されたのか、1つのカレンダーフォームで認識して選択したフォームのテキストボックスへ日にちを入力することは可能でしょうか。

vbaは初心者なので、簡単なvbaでできるなら助かります。
win7でexcel2007で作成しています。

「1つのフォームで複数フォームを認識」の質問画像

A 回答 (2件)

以下でどうですか。


1. 標準モジュールに、呼び出し側のユーザーフォーム名を保存するための変数をPublicで用意する。
2. フォームnのTextboxのダブルクリックイベントで、カレンダーフォームを表示させると
  同時に1.の変数にフォームn名を保存する。
3. カレンダーフォーム上で日付が選択されたら1.の変数の内容から日付を書き込むユーザーフォームを
  指定し、日付を書き込む。

更にいえば、以下の処理を考慮する必要があると思います。
・あるフォームからカレンダーフォームを開いている間は、他のフォームから開けないようにする。
・3の時点では、呼び出し側のフォームが閉じていないかを確認した上で日付を書く。

参考:
http://officetanaka.net/excel/vba/tips/tips103.htm
http://officetanaka.net/excel/vba/tips/tips113.htm
https://detail.chiebukuro.yahoo.co.jp/qa/questio …
    • good
    • 0
この回答へのお礼

ありがとうございます。
フォーム名を変数に格納しての動作はできました。
ただ、コントロール名も変数に格納して動作させたいです。ダブルクリックしたのが、Textbox1なのかTextbox2なのかも判断できたらなと思ってます。

お礼日時:2017/04/18 22:47

No.1です。



> ただ、コントロール名も変数に格納して動作させたいです。ダブルクリックしたのが、Textbox1なのかTextbox2なのかも判断できたらなと思ってます。

そのまま作成すれば良いのではないでしょうか?
1.Textbox1/2 を判断する変数を用意して、ダブルクリックイベントで1または2を代入する
2.カレンダーフォーム側で、1の変数の内容からTextbox1/2のどちらに書き込むか判断する(IFを使用)
    • good
    • 0
この回答へのお礼

すみません。
その後、siffon9さんの通りに試行錯誤しながら作成したらできました。

お礼日時:2017/04/22 23:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!