• ベストアンサー

エクセルvba で フォームの削除

エクセルvbaで、 フォーム上ボタンクリック⇒処理が終了 ⇒ソースの削除⇒新しい名前を付けて保存 という流れで使用しております。 その時にソースは削除できているのですが、 フォームが残ってしまいます。 フォームを削除させる方法はございますでしょうか? 何卒、宜しくお願い致します。

  • magm
  • お礼率10% (5/47)

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。こんな感じ。いろいろ問題がありますが。。 Sub RemoveVBComponetSample()      Const vbext_ct_StdModule  As Long = 1 ' // 標準モジュール   Const vbext_ct_ClassModule As Long = 2 ' // クラスモジュール   Const vbext_ct_MSForm   As Long = 3 ' // フォームモジュール   Dim coms As VBComponents   Dim com As VBComponent      Set coms = ThisWorkbook.VBProject.VBComponents   For Each com In coms     If com.Type = vbext_ct_MSForm Then       coms.Remove com     End If   Next   Set coms = Nothing End Sub

関連するQ&A

  • ユーザーフォームを挿入でエクセル強制終了

    VBAを初めて、まだ1週間ほどの初心者です。 ユーザーフォームを作成して、シートを他のブックに保存して、 シートを印刷するマクロをボタンに割り当てて使用してました。 先日、ボタンをクリックした所、エクセルが強制終了してしまいました  その後、そのブックを開くと、また終了してしまい、一度ユーザーフォームを削除したら、終了しなくなったのですが、Visual Basicから挿入-ユーザーフォームを作成しようとすると、終了してしまいます。 どのブックでも同じ様になってしまいます。 エクセル2000を使用しています。 どの様に対処したらよいか、色々調べましたがまったくわからない状態です。 まだ初心者の為質問に必要な事が抜けているかも知れませんが、 ご存知の方、教えてください。

  • EXCEL VBAのフォームについて

    EXCEL VBAでフォームを表示したときに、最小化ボタンを表示させることは出来ないのでしょうか。 通常、フォームを表示させると、右上にXのボタンのみ表示されますが、通常のWindowsの画面の最小化ボタンを表示させる方法が、判りません。 この機能は、EXCEL VBAには実装されていないのでしょうか。また、最小化ボタンでなくてもかまいません。要は、やりたいことは、表示されているフォームを一時的に最小化する為に、その機能を実装したいと言うことです。ご存じのかたおりましたら、教えて下さい。 当方の環境はwindows-xp excel-2000です。

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

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

  • エクセルVBA ユーザーフォームの終了について

    エクセルVBAでユーザーフォームを作成しています。 コマンドボタンにVBAマクロを割り当てしているのですが 思うように動いてくれないので質問します。 コマンドボタンをクリックしたら望む動作 1、ワークシートを選択 2、その後、ユーザーフォームを消す。 と言う動作にしたいのですが、2の ユーザーフォームを消す方法、書き方が分かりません どなたか教えていただけないでしょうか 1の動作は以下のように書いています。その後の書き方を お願いします。 Private Sub CommandButton8_Click() ブック名 = "VBA演習" シート名 = "sheet1" Workbooks(ブック名 & ".xls").Worksheets(シート名).Activate End Sub (ユーザーフォームの名前は"テストフォーム"としてます)

  • EXCEL VBAから、VBのフォームを開くためには?

    EXCEL VBAからVBへプログラムを移そうと努力しています。 そこで、エクセルのシートのコマンドボタンを押すと、 VBで作成したフォームが開き、そこからEXCELの処理を させたいと考えています。 VBからエクセルの処理は Excel.Application のあたりをつかうことでなんとかなりそうなんですが その逆がわからず行き詰まっています。 EXCELは2000 VBは6.0 です ご存じの方、よろしくお願いします。

  • エクセルVBAの質問です

    エクセルVBAで フォームを作成し、 フォームに入力された情報を フォーム内の一番最後の入力項目の入力が終わった時点で、 ワークシートに転記しようとしたいと思っています。 Userformのソースに記載してみましたが、 うまくいきませんでした。 どのような処理の流れにするといいでしょうか? 1.フォームにデータが入力される 2.フォームの一番最後の項目が入力された時点で、 フォームからB・C・D列に転記される。 3.フォームの内容がリセットされる 4.フォームの一番最初に入力が戻る 5.フォームの一番最後の項目が入力された時点で、 前回の入力セルの2行下のB・C・D列に転記される。 6.フォームの×をクリックすると転記終了 という流れです あまり詳しくなく的を得た質問になっていないかもしれないのですが、よろしくお願いします。

  • Excel VBA フォーム内のTXTBOX 値取得について

    お世話になります VBAフォーム内のTXTBOXの入力についてですが 「今まで」 TXTBOXに値入力ボタンクリック時に書き込み処理でしたが 「わからないこと」 次に開くとTXTBOXに(セル)に入力した値を取得しボタンクリックなしでリアルタイムに書き込みをしたいのですが、 イメージ的に、テキストボックスとセルのリンクみたいな感じが理想です、分かる方宜しくお願い申し上げます。 Excel 2003 XP Pro VBA 初心者以下

  • EXCEL VBAでオブジェクトを削除するには?

    EXCEL2000を使用しています。 HPからコピーした表を利用して、VBAで加工したいと思っています。 HPからコピーした場合、不要なオブジェクトがある為、まずこれを消したいのです。 EXCELでの一般的な方法としては、オブジェクトの選択をしてから、範囲指定をし、削除すれば処理できます。VBAではオブジェクトの名前を指定しなければならないと思うのですが、HP上の、オブジェクトの名前は頻繁に変わる為、名前を指定するという方法では、使いづらいのです。 何か良い方法はないでしょうか?

  • VBA ユーザーフォームを使って

    簡素化して書きますがエクセルシートのA1からZ100までデータがあります。(行は増え続けます) A1からZ1までの1行のデータをまとめて1画面に表示したくてユーザーフォームで作ってみました。(ラベル使用) ユーザーフォーム上で「次へ」ボタンを作成し、それをクリックすると次は A2からZ2までを表示させたいのですがやりかたがわかりません。 (また、「戻る」ボタンを作成し、それをクリックすると1行上へ戻るようにしたいです) VBAは初心者もいいところでネットで調べまくってやっています。 が、なかなか思うような結果にならずみなさんのお力をお貸しいただきたいと思います。 実際のデータは色々複雑なのでソースをあえて載せていませんのでご了承ください。 こういうやり方があるよって事を教えて頂けたらと思います。 よろしくお願いします。

  • Excel VBAでユーザーフォームだけ表示したい

    Excel VBAでユーザーフォームを作成し、ファイルを起動時にSheetを非表示にしてユーザーフォームのみ表示させるようにしました。 そうしたところ、 (1)実行ボタンをクリックすると作成されるExcelファイルも表示されなくなる (2)終了ボタンをクリックするとユーザーフォームを含むExcelファイルだけが閉じるのではなく、Excelのアプリ自体が終了してしまう(実行ボタンで作成したExcelファイルは表示したままにしたいのに閉じてしまう) という現象になってしまいました。 某書籍を参考にしてコードを書いたのですが、なぜかこのようになってしまいました。 ※「★」が書籍に指示があった箇所です。 <ThisWorkbook> Private Sub Workbook_Open() Application.Visible = False '★ myForm.Show '★ myForm.MultiPage1.Value = 0 'マルチページ構成のため End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '========== [×]ボタン,[Alt]+[F4]キーを無効にする ========== Dim msg As String, title As String msg = "[画面を閉じて終了する]ボタンから終了してください。" title = "終了方法" Dim res As Integer Select Case CloseMode Case vbFormControlMenu res = MsgBox(msg, vbOKOnly + vbCritical, title) Cancel = True End Select ActiveWorkbook.Save '★ Application.Visible = True '★ Application.Quit '★ End Sub 実行したいのは、 (1)ユーザーフォームを含むExcelファイルを起動したときは、起動時にユーザーフォームだけが表示されるようにしたい  ※ワークシートを非表示としたい (2)「実行」ボタンをクリックすると、プログラムが実行されExcelファイルが新規で作成され表示される  ※上記で記載した「★」の部分をコードをコメントアウトしてユーザーフォームから実行ボタンをクリックすると、プログラムが実行され正常にExcelファイルが新規で作成されることは確認済みです。 (3)ユーザーフォームが閉じても、ユーザーフォームのExcelファイルのみ閉じ、新規で作成されたExcelファイルは閉じない。  ※実行ボタンをクリックして新規ファイルを作成しなかったり、他にExcelファイルがなかった場合は、Excelは終了する。 それとあわせて、 (1)を実行できた場合に、再度コードを編集する時はどうしたらExcelの画面が表示できるのか教えて下さい。  ※それとも表示できないのでしょうか? 作成締め切りが迫っていて焦っています。 お知恵のある方どうかお力添え下さい。 よろしくお願い致します。

専門家に質問してみよう