Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11467 / 13645 ツリー ←次へ | 前へ→

【15910】ユーザーフォーム ポチ 04/7/12(月) 13:39 発言[未読]
【15913】Re:ユーザーフォーム Asaki 04/7/12(月) 14:22 回答[未読]
【15918】Re:ユーザーフォーム ポチ 04/7/12(月) 15:53 質問[未読]
【15919】Re:ユーザーフォーム Asaki 04/7/12(月) 16:03 回答[未読]
【15929】Re:ユーザーフォーム ポチ 04/7/12(月) 17:33 質問[未読]
【15932】Re:ユーザーフォーム Asaki 04/7/12(月) 17:56 回答[未読]
【15934】Re:ユーザーフォーム ポチ 04/7/12(月) 18:24 質問[未読]
【15942】Re:ユーザーフォーム Asaki 04/7/12(月) 22:16 回答[未読]
【15944】Re:ユーザーフォーム ポチ 04/7/12(月) 22:40 お礼[未読]

【15910】ユーザーフォーム
発言  ポチ  - 04/7/12(月) 13:39 -

引用なし
パスワード
   最近VBAを独学しはじめました。正しく質問できているのかわからないので
すが、宜しくお願いします。

ユーザーフォームを使ってメニュー画面を作成しました。
ユーザーフォームの実行をして、メニューのコマンドボタンを押すと
該当するエクセルのシートには行くのですが、メニュー画面(ユーザーフォーム)
が前面にあって、アクティブな状態で、背面にあるエクセルシートは背面に
見えているだけで、そのシートをクリックしてもアクティブな状態になりません。
メニューのコマンドボタンを押して、うまくエクセルのシートにいくには
どのようにしたらいいのでしょうか?

【15913】Re:ユーザーフォーム
回答  Asaki  - 04/7/12(月) 14:22 -

引用なし
パスワード
   こんにちは。

ユーザーフォームは表示したまま、シートをアクティブにしたいのでしょうか?
Excel2000以上なら、ユーザーフォームを vbModeless で表示すればよさそうです。
また、ユーザーフォームが表示されていなくて良ければ、
Unload() するか、Hide するかすればよいと思います。

【15918】Re:ユーザーフォーム
質問  ポチ  - 04/7/12(月) 15:53 -

引用なし
パスワード
   Asakiさんこんにちは。早速お答えいただきましてありがとうございます。

質問に不足がだいぶあったようで失礼致しました。
私が使っているのはExcel2002です。

ユーザーフォームにあるコマンドボタンをクリックして
エクセルのシートにとんで、その際ユーザーフォームは画面に表示しないで
おきたいのですが。
お答え頂いた内容はユーザフォームのコードの中に書き込めば
よろしいのでしょうか?
少しやってみたのですが、うまくいきません。
宜しくお願い致します。

【15919】Re:ユーザーフォーム
回答  Asaki  - 04/7/12(月) 16:03 -

引用なし
パスワード
   シートに移動するためのコマンドボタンの処理で、
>Unload() するか、Hide するか
なんですが、うまくいきませんでしたか?
例えば、Sheet1を表示して、ユーザーフォームはUnloadするなら
Worksheets("Sheet1").Select
Unload Me

現在、どのような処理になっているのでしょうか?
うまくいかない場合、ここに実際のプログラムを(開示してよい情報以外は伏せて)upしてみてください。

【15929】Re:ユーザーフォーム
質問  ポチ  - 04/7/12(月) 17:33 -

引用なし
パスワード
   Asaki さん ありがとうございます。

現在下記のようになっています。でもやっぱりうまくいきません。
何度もすいません。

<ユーザーフォーム>

Private Sub CommandButton1_Click()
 
 Worksheets("Sheet1").Select
 Unload Me

End Sub

また、Sheet1にコマンドボタンをおいて、Sheet1から
ユーザーフォームに戻りたいのですが、こちらは
まだなにもできていません。

何度もお手数をお掛けいたします。

【15932】Re:ユーザーフォーム
回答  Asaki  - 04/7/12(月) 17:56 -

引用なし
パスワード
   確認ですが、CommandButton1 はユーザーフォーム上にあるのですよね?
うまくいかないとは、何かエラーが出ますか?
それとも、処理結果がおかしいですか?
指定のシートが表示されないとか、ユーザーフォームが消えないとかでしょうか。
Unload の代わりに
Me.Hide
ではどうなりますか?

ユーザーフォームは、どのようにして表示させていますか?

>Sheet1からユーザーフォームに戻りたい
こちらは、Showするだけです。
UserForm1.Show
など。

【15934】Re:ユーザーフォーム
質問  ポチ  - 04/7/12(月) 18:24 -

引用なし
パスワード
   ▼Asaki さん ありがとうございます。

>確認ですが、CommandButton1 はユーザーフォーム上にあるのですよね?

そうです。ユーザーフォーム上にCommandButton1はあります。

>うまくいかないとは、何かエラーが出ますか?
>それとも、処理結果がおかしいですか?
>指定のシートが表示されないとか、ユーザーフォームが消えないとかでしょうか。

エラー表示はありませんが、ユーザーフォームにある
CommandButton1をクリックすると、
CommandButton1のコードが表示されます。
その後Sheet1(下記の教えて頂いた処理をしました)に
戻ってSheet1にあるコマンドボタンをクリックすると
こちらはうまくいきました。
Sheet1からユーザーフォームに戻ってから、もう一度ユーザーフォーム上にある
CommandButton1をクリックすると、こんどは

実行時エラー'361':
このプロジェクトは、ロードまたはアンロードすることはできません。

とエラー表示されます。

>Unload の代わりに
>Me.Hide
>ではどうなりますか?

前記の処理はMe.Hideで処理した場合だったのですが、
Unloadでやりますと、
つまりユーザーフォームの実行をクリックしてから
ユーザーフォームの背後にExcelのSheetが背後にあらわれて
(でもこの状態で、背後に見えているExcelSheetをクリック
 してもアクティブな状態にはなりません)
ユーザーフォーム上のCommandButton1をクリックしますと
今度は背後にコードが見えます。

>ユーザーフォームは、どのようにして表示させていますか?

どのように表示されているかというのはどのようにお答えすればいいのか
よくわからないのですが、ユーザーフォームの実行をしたあと
ユーザーフォームが前面に、背後にエクセルのシートが見えています。
この状態でユーザーフォーム上のCommandButton1をクリックすると、
前記のように、ユーザーフォームのコードに戻ってしまいます。


>>Sheet1からユーザーフォームに戻りたい
>こちらは、Showするだけです。
>UserForm1.Show
>など。

前記しましたが、こちらは問題なくできました。

【15942】Re:ユーザーフォーム
回答  Asaki  - 04/7/12(月) 22:16 -

引用なし
パスワード
   どうも状況が良くわかりませんので、ちょっと、簡単な例で試してみてください。

とりあえず、Sheet1のボタンをクリックしてユーザーフォームを起動、
ユーザーフォーム上のボタンからSheet2に移動、という例を考えると、
(Sheet1,およびSheet2が存在する状態にしておいてください)

1) 新規BookのSheet1に、コマンドボタンを配置
2) VBEを起動して、ユーザーフォームを作成
3) この上にコマンドボタンを配置して、コードを書く
'-- ユーザーフォームのコマンドボタン
Private Sub CommandButton1_Click()
  Worksheets("Sheet2").Select
  Unload Me
End Sub

4) 1で作成したコマンドボタンのコードを書く
'-- Sheet1のコマンドボタン
Private Sub CommandButton1_Click()
  UserForm1.Show
End Sub

Sheet1に戻って、青い三角定規のアイコンがへこんでいたらデザインモードですから、
これをクリックして、デザインモードを終了します。

ここで、Sheet1のコマンドボタンをクリックすると、ユーザーフォームが表示され、
ユーザーフォームのコマンドボタンをクリックすると、Sheet2が表示されたと思います。

で、このサンプルの状態と、実際の処理がどう違うか、研究してみてください。

【15944】Re:ユーザーフォーム
お礼  ポチ  - 04/7/12(月) 22:40 -

引用なし
パスワード
   ▼Asaki さん

できました、できました。すごい。
新しいBookでやったらできました。

でもまだ作成中のものと、どこが違うのかはこれから研究してみます。
本当にありがとうございました。
助かりました。

11467 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free