ユーザーフォームを挿入し、
Private Sub CommandButton1_Click()
ActiveSheet.Delete
Sheets.Add
End Sub
というコードを書き、
図のように配置しています。
やりたいことは、シート上にもコントロールがある状態で、
フォームを実行し、コードを終了させても、フォームは表示させたままにしたいのです。
しかし、図の状態で上記のコードを実行すると、フォームも閉じてしまいます。
コマンドボタンがシート上になければ
コードが終わってもフォームは閉じません。
どうすればコマンドボタンも配置しつつ、シートごと削除させ、
フォームを表示したままにすることが可能なのでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんばんは。
#1さんの質問に対して、答えているようには私には思えないのです。単語自体が曖昧なのです。あえて、そういう現象を求めたりするよりも、回答者側が、作ってあげたほうがよいように思います。
UserForm のCommandButton に以下のようなコードを付けます。
'-------------------------------------------
Private Sub CommandButton1_Click()
With ActiveWorkbook
If .Worksheets.Count > 1 Then
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
.Worksheets.Add after:=ActiveSheet
End If
End With
End Sub
'-------------------------------------------
>他のサブプロシージャーから呼び出しています。
これ自体は構わないのですがコントロールツールのCommandButton を、削除される当該シートに置くべきではないことは言うまでもありません。もし、そのようなことをすれば、起動した、UserForm は、消えてしまいます。本来は、意図的にコードを消すことをいいますが、自分で自分のコードを削除するようなコードのことを、「自爆マクロ」といいます。
この場合は、シートのタブで、一番、左端、通常は、Sheet1 に起動するCommandButton を置くか、ツールボタンとして、メニュー側に置きます。
また、UserForm1.Show False または、UserForm プロパティのモーダルモード(ShowModal) をOffにしておきます。
No.1
- 回答日時:
せめて画像のCommandButton1 のどちらかのCaptionを変えてくれたら分かりやすいんですが。
あと、コントロールなのか、フォームなのかの区別が付きません。
UserFormの方は、VBAEditorから追加したフォームかなぁ?って気もします。
>Private Sub CommandButton1_Click()
このイベントはどのボタンを指しているんでしょう?
あと、そのUserFormはどこから、どんなタイミングで呼び出しているんでしょうか。
見た感じの流れでは
1.ブックを開く
2.どうにかしてUserForm1を表示
3.UserForm1のボタンを押下し、質問者のコードを実行
4.アクティブシートがコントロールが貼られている・いない関係なく削除され、新規シートが追加される
だと思うんですが、ボタンやらのプロパティ弄っても再現できませんでした。
質問内容が大雑把すぎて私には答えようがないので補足を書けば比較的早く回答が。
気長に待ってれば暇を持て余した人があらゆるパターンを想定した答えを出してくれると思います。
確かにそうですね。
わかりづらくてすいません。
申し訳ないです。
>このイベントはどのボタンを指しているんでしょう?
フォーム上のコマンドボタンのイベントです。
>そのUserFormはどこから、どんなタイミングで呼び出しているんでしょうか。
他のサブプロシージャーから呼び出しています。
>ボタンやらのプロパティ弄っても再現できませんでした。
え!!
私だけ起きる現象なのでしょうか!?
mindatgさんのエクセルでは、シート上にオブジェクトがあっても
シートを削除をするマクロを実行してもフォームは表示されたままなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでmeに相当するもの...
-
エラー内容が分かりません
-
Excel VBAで、実行時にsheet上...
-
オプションボタン
-
複数のデータ系列の線の太さを...
-
ExcelVBAで今開いているユーザ...
-
cellsで特定の離れた範囲を選択...
-
エクセル終了時の保存確認メッ...
-
VBAを一度起動するとずっと出て...
-
別のパソコンでエクセルのマク...
-
コピーしたファイルのマクロを...
-
アクセスでファイルを開いたと...
-
フォルダ内の全ブックのシート...
-
エクセルの単票を一覧表に
-
excelファイルに使われているVB...
-
エクセルでツールバーに「縮小...
-
excelのマクロ実行でブロックさ...
-
マクロが使えるExcelViewer
-
どのドキュメントは暗号化され...
-
エクセルVBA Workbook変数に変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAで、実行時にsheet上...
-
エクセルVBAでmeに相当するもの...
-
エラー内容が分かりません
-
EXCEL VBA テキストボックスの...
-
コモンダイアログエラー
-
オプションボタン
-
EXCEL VBA カレンダーコントロ...
-
キーボードでコマンドボタンを...
-
VBAのコントロールなんかをコレ...
-
エクセル終了時の保存確認メッ...
-
複数のデータ系列の線の太さを...
-
VBA マクロ実行時エラー’1004Ra...
-
フォルダ内の全ブックのシート...
-
ファイル名を今日の日付、時刻...
-
VBAを一度起動するとずっと出て...
-
エクセルでツールバーに「縮小...
-
エクセルVBA Workbook変数に変...
-
別のパソコンでエクセルのマク...
-
ExcelVBAで今開いているユーザ...
-
コピーしたファイルのマクロを...
おすすめ情報