• ベストアンサー

EXCELのフォームを自動的に消す方法を知りたいのですが

EXCELのフォームを自動的に消す方法を知りたいのですが 今あるExcelを開いた時に自動でフォームが起動されます マクロでそのファイルを開く フォームを閉じる処理をやりたいです

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

フォームとは、UserForm のことでしょうか。Excelには、Access と違い、該当するものが、3つありますから、どれかすぐには分かりにくいです。 一応、UserForm に限定しますが、どれも要領は同じです。 Sub Auto_Open() か、Private Sub ThisWorkbook_Open() という名前のプロシージャの中に、UserForm1.Show などという行があるなら、それが自動的に開く機能を持っています。だから、以下のようにします。 '// Sub Test1() Dim myTime As Date  myTime = Now + TimeSerial(0, 0, 5) '←終了時間(h, m, s)  Application.OnTime myTime, "CloseUserForm"  UserForm1.Show False '←UserFormの起動 End Sub Sub CloseUserForm()  Unload UserForm1 End Sub

meteo14
質問者

補足

ありがとうございます。 ただUnloadでできるかは質問する前に試したんですが ダメでした。 マクロでファイルオープンしてそのファイルが自動でフォームが起動するようになっています それに対してフォームを閉じたいのですが、 結論開いたファイルのほうにUnloadをいれないといけないそうなのでできませんでした 分かりにくいので再度載せ直します

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>マクロでファイルオープンしてそのファイルが自動でフォームが起動するようになっています >結論開いたファイルのほうにUnloadをいれないといけないそうなのでできませんでした ちょっと確認しますね。 もしかして、「起動したファイルの外から、UserForm を消す方法」という意味のではないでしょうか? 一般的には、Unload は自体は間違いないです。起動するファイルのマクロ・コードはプロテクトされているのですか?そうでなければ、Auto_Open やThisWorkbook_Open の中に、OnTimeを入れて、Unload UserForm を呼んであげれば可能です。「自動的に」ということは、そういうことだと思います。 しかし、他のファイルからUserForm を消すということは、少し考えてみれば分かるはずですが、「自動的」ということは、まず、UserForm が立ち上がっているかどうかを、検査していかなくてはなりません。それには、ずっと、監視体勢にあるということですから、特殊なイベントを作ってあげなくてはなりません。数年、そのようなコードは書いたことありません。その上、他のファイルから操作する方法は、確か、UserForm のハンドルか、Caption を取る方法だったと思います。既存の出来上がったマクロから、「自動処理」というのは、かなり難しい技術だと思います。 もう少し、具体的な状況を書いてください。

meteo14
質問者

補足

回答ありがとうございます。 うまく伝わるか分かりませんが、 マクロが組み込んであるファイルAで実行し、 Auto_OpenでUserFormが立ち上がるファイルBを開きます。 その際、ファイルBのUserFormを消す処理ができたらって思っております。 正直、ファイルBを開いたとき、フォームを手動で閉じればそのままマクロは 実行されますが、おっしゃるとおりかなり難しい技術だと思っております。

関連するQ&A

  • ユーザーフォームの再起動

    ブックを開いたと同時に、自動でユーザーフォームをモードレス状態で起動させています。 このマクロ付Excelファイルを使用している開発タブなどを有効にしていないエンドユーザーがフォームを閉じてしまった場合に ファイルを再起動しないで、簡単にユーザーフォームを再表示させる方法はございますか?

  • Excelでマクロを自動実行する方法

    Excelでマクロを起動時に自動実行する方法を教えて下さい。

  • エクセルで保存時に自動実行させるマクロ?

    エクセル97です。 起動時のAuto_Openや終了時のAuto_Closeのように、ファイルに保存をかけた時に自動的にマクロを実行させるにはどうしたらよいのでしょうか? フォームなどのマクロボタンで保存させるのではなく、通常に保存する場合です。 よろしくお願いします。

  • エクセルの自動起動しての集計作業

    10個のファイル(データ)があり、その10個のファイルのデータを1つのファイルにコピーして 自動集計したいと思っています。 そこで例えば朝7時にエクセルを自動起動させてこの10個のファイルを1つのファイルに集計 させ、集計終了後ファイルを保存して終了することは可能でしょうか。 タスクスケジューラとマクロの起動時実行を行えば可能と思うのですが、タスクスケジューラ単体で マクロなしのエクセルファイルを指定しましたが、ファイルが起動しませんでした。 この場合、PCは7時の段階で起動してないとだめでしょうか。 PCの定時起動と定時終了ができればよいのですが、出来る方法があれば教えてください。 よろしくお願いします。 なおOSはWindows7 エクセルは2007です。

  • バッチファイルでEXCELを起動し、マクロ処理の完了を検出する方法

    バッチファイルでEXCELを起動し、マクロ処理の完了を検出する方法 バッチファイルでEXCELを起動し、マクロ処理(伝票印刷)が完了するのを待ってバッチファイルの次の処理を行ないたいのですが、よい方法があれば教えてください。 少なくとも、マクロ終了直前にテキストファイルに文字を書出し、バッチファイル側でテキストファイルを読み出せば判定できるのではないかと思いますが、もっとすっきりしたやり方はないでしょうか? できるだけ自動処理したいのでPAUSEで待てばいいというのはなしでお願いします。

  • VBからエクセル(ブック)のプロシージャーをCallできますか?

    VB初心者です。 いろんな処理をブックのマクロで行なっています。 今までは手作業でマクロを実行させてきたのですが 自動化したいと考えています。 処理させたいブックは複数あって それぞれを処理するためのコントロール的な役割を フォームをもたない実行ファイル(VB)で行ないたいと 思っているのです。 実行ファイルはタイマなどで自動起動を考えています。 そこで、 VBからブックのプロシージャーをCALLする方法がありましたら 具体的なコードを教えてください。 また、もっと簡単な方法がありましたら、 よろしくお願いします。

  • EXCELのマクロでBook1立ち上げ時に自動で別のBookを起動するには

    あるアプリケーションでEXCEL型式での出力処理をすると自動的にEXCELが起動し、「Book1」として出力されます。 このときに、自動的に別の.xlsファイルが起動するマクロを組みたいと考えています。 他のEXCELファイルから起動する際にはこの機能は必要ないため、「Book1」が開いたときにのみ有効にしたいのです。 どうぞ、お知恵をお貸しください。

  • エクセルでブラウザへのフォーム入力で、項目があれば入力する方法

    エクセルのマクロでブラウザ上のフォームに自動入力させています。 objIE.document.all.Name.Value = "hoge" のようにフォームのNameという部分にhogeが入ります。 この場合もしNameがなければエラーになってしまいます。 Nameというのがあればhogeを入力、なければ飛ばすという 処理をさせるにはどうすればいいでしょうか?

  • エクセルファイルの自動起動と内容更新

    エクセルファイルを自動で起動させ、標準モジュールで書かれたマクロ(新しいブックを作成し、そのブック内シートに値を代入)を実行させマクロ実行時に作成されたファイルを上書き保存させる方法ってありますか? コマンドボタンを配置して、上記を実行させることはできますが、自動起動はタスクを使用すればいいのかな~くらいしかわかりません。 どこかに詳しいページご存知ありませんか?

  • エクセルのフォームをマクロで登録する方法

    教えてください。 エクセルでデータ入力に「データ」から「フォーム」を作成して入力しております。 共有でしようしますので、マクロボタンを作成して、ボタンをクリックすることで、フォームを表示するようにしたいのですが、Worksheeet クラスのshowDateFormメソッドが失敗しました。「デバック」が表示され、フォームが出来ません。マクロでエクセルからフォーム表示出来る方法をお願いします。

専門家に質問してみよう