• ベストアンサー

フォームの表示

エクセルでsheet2を開くと、すでに作成してあるuserform2が表示されて以下ボタンの押下によって、処理が進むようにしたい。 このときsheet2を開くと、すでに作成してあるuserform2が表示されるようにするには、どのようにするのでしょうか。

  • taktta
  • お礼率72% (1031/1430)

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

sheet2 の Activate イベントでShow すればいいんじゃないでしょうか Private Sub Worksheet_Activate() UserForm2.Show End Sub

taktta
質問者

お礼

解決しました。どうもありがとうございました。

関連するQ&A

  • ユーザーフォームのインスタンス

    こんにちは。 早速質問させていただきます。 ExcelVBAでプログラムを組んでいて、 そのExcelシート上に同じUserFormを動かすためのコマンドボタンが 数十個あります。 ちなみに、UserFormの中身はチェックボックスです。 数十個のコマンドボタンそれぞれを押下後、 UserFormでチェックした項目を再度表示させたいのですが、 それぞれのコマンドボタンから同じUserFormを呼んでいるため、 UserForm.Hide では、他のコマンドボタンでチェックした内容が 出力されてしまいます。 どのようにしたら、UserFormを複数作らずに UserFormの内容を保持できるでしょうか。 回答よろしくお願いします。

  • 【UserFormラベルに状況を随時表示したい】

    ExcelVBAでUserFormを使用した4画面ばかりのツールを作成中です。 質問ですが、あるコマンドボタンを押下した時に、既存のExcelファイルを複数開き、集計などを行い、結果をCSVファイルに出力するという処理を行っています。 処理には、10分位の時間を要するので、その間は、UserFormに「現在処理中のファイル名、処理が終了したファイル名」などの進捗をラベルに表示したいのですが、実際に実行してみると、Excelファイルを開いた時点で、制御がExcelファイル側に入ってしまい、UserFormが真っ白に表示されてしまいます。 常に、「UserForm」をアクティブにし、目的の進捗状況ラベルに表示しながら、集計処理を実行することはできるのでしょうか? どなたかご存知の方、教えてください!!

  • ExcelVBAのユーザフォームに関する質問です

    エクセル画面のシート1にユーザフォームを呼び出して、そのユーザフォームに設置してあるコマンドボタンを 押下するといくつかのセルの情報をテキストファイルに書き出すプログラムを作ってます。 例えば、 Private Sub CommandButton1_Click() End Sub の間にテキストファイル作成のコードを記述すればうまくいくとは思うのですが、現段階でテキストファイル作成の関数を シート1のワークシートモジュールにprivateな関数として書き込んであります。 その関数の中の引数などもprivateな変数としていくつか宣言してあり、改めて標準モジュールに関数を書き換えて、そこから ボタンイベントの中で呼び出すように作り変えるのは作業として大変に感じられました。 そこで無理かとも思うのですが、シート1のワークシートモジュールの中でコマンドボタンが押されたというイベントを拾って、 そこでファイル作成の関数を呼び出すといった作りに換えることは可能なのでしょうか? 例えばユーザフォーム内に設置したラベルは Userform1.Label1.Top = Userform1.Label1.Top + 10 といったように位置の変更がシート1から制御できたりしますが、そのような要領でできないものなのかなと思いました。 初心者なもので的外れな質問をしてしまっているかもしれませんが、ご容赦ください。 詳しい方がいらっしゃれば、ご教授お願いいたします。

  • ExcelのVBAでフォームだけ表示させる方法

    はじめまして。 UserForm1で、デジタルで時間を表示する(デジタル時計)を作成しています。 Excelのアプリケーションを表示せず、フォームのみ表示させたいので、 Application.Visible = Falseとしたいのですが、この方法だと、他のExcel ファイルを起動する際に、Excelが見えなくなってしまいます。 ■やりたいこと ・Excelファイルが1つも開かれていない場合、Excelを非表示にして  Userform1のみ表示されている状態で起動する ・Userform1のみ表示している状態で、他のBooKを開いた場合、  Excelを表示して開いたBookを表示させる ・他のBooKを開いている状態で、Userform1が記述されているBook  を開いた場合、ExcelもUserform1も表示させる ・他のBookを閉じるて、Userform1が記述されているBookのみになった  場合、Excelを非表示にしてUserfrom1のみ表示されている状態にする 自分自身(Userform1を記述しているBook)のみ起動している時には、 Application.Visible=falseにすれば良いのだと思いますが、どういうロジック を組めば良いかご教授いただければ幸いです。 すみませんが、よろしくお願い致します。 それ以外の時は

  • エクセル97でのユーザーフォームについて

    エクセル97でのユーザーフォームについて教えて下さい (1) まず最初にユーザフォームを作成しました。 (2) エクセルオープン時にメニューバーにボタンを追加し、そのボタンを押すと   ユーザーフォームが表示されてくるという風に考えました。 ユーザーフォームは表示されるのですが、フォームに配置されているボタン等を 押してもまったく利きません(本来はメッセージが表示される) アクティブにはなっているようなのですが... Private Sub UserForm_Activate() End Sub 上のアクティブになった時に何か処理をもりこまなければいけないのでしょうか? 初歩的な質問で申し訳ないのですが、宜しくお願い致します。

  • ユーザーフォームにデータを入力

    「開発」→「Visual Basic」→「フォーム」の「UserForm1」をクリックして表示されるUserFormに何個かのテキストボックスを作成しています。 そのテキストボックスに入力するデータをワークシートにあるデータを自動的に入力( 表示)させる方法はありませんか? ちなみに、ワークシート上でセルをクリックするとそのワークシート上にデータが自動的に入力されたUserFormが表示されるようにはしています。 今回の質問は、「開発」→「Visual Basic」→「フォーム」の「UserForm1」をクリックして表示されるUserFormのテキストボックスのことです。(この画面では、手入力しかできないのでしょうか?) Excel 2013 です。 よろしくお願いします。

  • ExcelVBAを用いてツールを作成しております。

    ExcelVBAを用いてツールを作成しております。 内容としては、以下の通りです。 (1)Excelファイルのシート名をリストボックスに表示させる。 ⇒実装済み (2)リストボックスからシート名を選択(複数選択可)し、「OK」ボタンを押下すると処理を実施する。 チェックとして、リストボックスから何も選択せず、「OK」ボタンを押下したときに エラーメッセージを表示させるようにしたいと思いますが、調べてもわからなかったので、 こちらに質問させて頂きました。 どなたかお分かりの方ご教授ください。よろしくお願い致します。

  • 複数のユーザーフォームをコマンドボタンにて表示・非表示させるには

    VBA勉強中のものです。 複数のユーザーフォームをコマンドボタンを使用して画面への表示切替を考えております。 例)ユーザーフォーム1,ユーザーフォーム2,ユーザーフォーム3のそれぞれにコマンドボタン1,コマンドボタン2,コマンドボタン3を作成し、   コマンドボタン1→ユーザーフォーム1を表示   コマンドボタン2→ユーザーフォーム2を表示   コマンドボタン3→ユーザーフォーム3を表示 とするようなことを考えおります。  そこで、下記のようにコードを作成したのでですが,一度表示させたユーザーフォームを再度表示させようとコマンドボタンをクリックしたら、「フォームはすでに表示させているのでモーダル表示はできません」とエラーがでてしまいます。   どなたか、どのようにしたらいいかご教授ねがいます。 サンプルコード) --------------------------------------------------- 'UserForm1のコード Private Sub CommandButton2_Click() Call UserForm2_show UserForm1.Hide End Sub Private Sub CommandButton3_Click() Call UserForm3_show UserForm1.Hide End Sub ---------------------------------------------------- 'UserForm2のコード Private Sub CommandButton1_Click() Call UserForm1_show UserForm2.Hide End Sub Private Sub CommandButton3_Click() Call UserForm3_show UserForm2.Hide End Sub ------------------------------------------------------- 'UserForm3のコード Private Sub CommandButton1_Click() Call UserForm1_show UserForm3.Hide End Sub Private Sub CommandButton2_Click() Call UserForm2_show UserForm3.Hide End Sub ------------------------------------------------------------ '標準モジュール コード Sub UserForm1_show() UserForm1.Show End Sub Sub UserForm2_show() UserForm2.Show End Sub Sub UserForm3_show() UserForm3.Show End Sub

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

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

  • ユーザーフォームでのグラフ表示

    今,エクセルのユーザーフォームでグラフを表示させたいのですが,うまくいきません. ユーザーフォームを作成しているブックとは違うブックのシート1にデータ,このデータを使用してsheet2にグラフを作成しています.このグラフを違うブックで作成しているユーザーフォームで表示させたいのです. 今,組んでいるマクロは以下のようになっています. Sub point1() openfilename = "1F-1.xls" folderpath = "G:\関電営業所\相生営業所\20110928 関電相生営業所収集データ\おんとり\text\Excel\" Ofilenamepath = folderpath & openfilename Workbooks(openfilename).Worksheets(2).ChartObjects(1).Chart.Export ThisWorkbook.Path & "\Chart1.gif" UserForm1.Image1.Picture = LoadPicture(Ofilenamepath & "\Chart1.gif") UserForm1.Show End Sub 上から5行目のところでエラーが出てしまいます. エラーは「オブジェクトが不正です」とでます. どなたか解決方法を教えてください。

専門家に質問してみよう