- ベストアンサー
エクセルのマクロでユーザーフォーム作成、他のブックでは選択した記号が表示されるが、このブックでは表示されない
- エクセルのマクロを使用して、ユーザーフォームを作成しましたが、他のブックでは選択した記号が表示されるのに対して、このブックでは表示されません。
- エクセルのマクロでユーザーフォームを作成しましたが、選択した記号が表示されない問題が発生しています。
- 同じプログラムで他のブックでは選択した記号が表示されるのに対して、このブックでは表示されません。エラーは出ていないため、文法的には問題がないようです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 エラーも出ないで、思った動作にもならないとは思えませんが、、、 質問に書いたコード以外にも記述があるのかな? > 最終処理として、所定の箇所に選択した記号が表示(コピー)される ここでいう「最終処理」とはCommandButton1をクリックする事で、「所定の箇所」とは基本データ作成シートのセルC3~C5の事で、「記号」とは各ComboBox1~3の値(AとかKとか)ですよね? > 一度閉じてしまったユーザーフォームの画面を開けるには Show メソッドを呼ぶだけです。 ユーザーフォームのオブジェクト名が UserForm1 なら UserForm1.Show
その他の回答 (2)
- papayuka
- ベストアンサー率45% (1388/3066)
#1です。 > 結論から申しますと、同じ結果でした。 同じ結果というのは、#1で書いたコードでも上手く動かなかったって事?
補足
こんばんわ 残念ながら、そういうことです。 うまく動かなかったです。 どうしてよいのやら。。。 ちょっと違う話ですが、一度閉じてしまったユーザーフォームの画面を開けるにはどうしたらよいのでしょうか?
- papayuka
- ベストアンサー率45% (1388/3066)
書き方が変です。 上手く動くとは思えませんが、上手く動く事があるなら、何らかの偶然が作用しているのでは無いでしょうか? 親のForm1をUnloadしてからではComboBoxの値は不定だと思います。 Private Sub CommandButton1_Click() Sheets("基本データ作成").Range("C3") = UserForm1.ComboBox1.Value Sheets("基本データ作成").Range("C4") = UserForm1.ComboBox2.Value Sheets("基本データ作成").Range("C5") = UserForm1.ComboBox3.Value Unload UserForm1 End Sub
補足
こんばんわ お世話になります。 結論から申しますと、同じ結果でした。 ちょっと間違えていたのですが、動いているほうは、 UserForm.ComboBox1.Value となっており、(1)がありませんでした。 おっしゃるとおり、偶然が作用していたと思われます。
お礼
何度もすみません。^^ ちゃんと最後まで動きました。 ご教示いただいた方法でユーザーフォームを開けて、正常に動いていたブックのユーザーシートと、異常のあるものとを対比したところ、異常のある方には、以前に作ったユーザーフォーム1という名前のユーザーフォームが別にありまして、その後に新規データ入力という名前のユーザーフォームをつくっていたために、選択した記号を代入したときに、動かしていないユーザーフォーム1の記号を代入していたと思われます。そこでユーザーフォーム1の記述を新規データ入力に変えると、正常に記号が表示されました。ちゃんと動くようになったので、まず間違いないと思います。どうもお手数をおかけしました。