
ExcelのVBAを使った複雑なアプリケーションを開発中です。
本体のWorkBookは、終始必要なくて、ユーザーフォームだけで完結するものです。結果的には、あたかもVBで作成されたもののように見えることになる。
【手順】
1) xslファイルを開くとユーザーフォームのみ表示される。
2) ユーザーフォームで一連の作業を行う。本体のWorkBook上のsheetは処理中に使用はする(作業用の一時データ貼り付けなど)けど、表示させたくない。
3) 作業終了時・・・これがわからない。
(終了ボタンまたは閉じるボタンクリック)
|
<他のWorkBookが開いているか>
| |
yes No
| |
[現在のworkBookのみ閉じる] |
saveの必要なし [アプリケーションを終了する]
saveの必要なし
No.1ベストアンサー
- 回答日時:
これでよい?
>3) 作業終了時・・・これがわからない。
'終了ボタンはフォームを閉じるだけでよい
Private Sub CommandButton1_Click()
Unload Me
End Sub
'フォームが閉じる時のイベントで分岐処理
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If Workbooks.Count > 1 Then
'他にBookが存在した場合
Application.DisplayAlerts = False
ThisWorkbook.Close
Else
'他にBookが無い場合
Application.DisplayAlerts = False
Application.Quit
End If
End Sub
以上、参考まで
随分と遅くなりました。
過去の記録を整理していて気が付きました。
このままでは、私の方の作りが少し違っていてそのまま適用はでき万出たが、重要なヒントをいただきました。
No.2
- 回答日時:
こんばんは。
アドバイスといえるか分かりませんが、VBAではお勧めしません。あくまでも、実験的な範囲を免れ得ないと思うのです。私個人は、VBから作ってしまうので、そのようなことは考えませんが、それは、起動時から、Application やWorkbook が、Visible = False として置けばよいのですが、Applicationの終了時にハングの危険が必ず伴います。
理由は、おそらく、Applicationの終了時まで、UserForm が残っているせいなのだと思うのです。それで、UserFormはWorkbook自体とは間接的なつながりでしかなく、おまけにコントロール・オブジェクトがOLEとして存在しているから、途中で途切れてしまうからだと思うのです。たぶん、97時代には問題なかったようなので、富士通のテキストにも載っていたようですが、Excel 2000移行は変わりましたから、問題が発生するのだと思うのです。よほど、この辺りが明るくないと開発は難しいのです。
どうしてもというなら、それは、あえて挑戦してみたらと思うのですが、ここのサイトでも、同様の方法で不明のハングの質問がありましたが、そういうUserForm のみという方法が失敗しているのを知ると、とても、実務上では使えないような気がしています。見かけを優先させてリスクを上げるということには、あまり得策ではないような気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- 確定申告 e-taxで開業届を出す方法がわかりません 1 2022/06/01 19:00
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- その他(Microsoft Office) windows10で作業を終了する際の「保存しますか はい いいえ」を表示させずに自動で保存する方法 6 2023/03/15 11:29
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) excelvbaのenableeventsについて 3 2022/08/30 11:20
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
このQ&Aを見た人はこんなQ&Aも見ています
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
人生で一番思い出に残ってる靴
皆さんの人生で一番思い入れのある靴の話を伺ってみたいです。
-
スタッフと宿泊客が全員斜め上を行くホテルのレビュー
スタッフも宿泊客も、一流を通り越して全員斜め上なホテルのレビューにありがちな内容を教えて下さい
-
準・究極の選択
「年収1000万円で一生カレーライス」か「年収180万円で毎日何でも食べ放題」
-
Excel VBAでユーザーフォームだけ表示したい
Visual Basic(VBA)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
VBA Application visibleのやり方
Visual Basic(VBA)
-
8
UserForm
Visual Basic(VBA)
-
9
ExcelVBAでフォーム内でブックを開くとフォームが隠れてしまう
Visual Basic(VBA)
-
10
Vba UserFormを前面に出す方法を教えてください
Visual Basic(VBA)
-
11
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
12
ブックをCloseまたはQuitで閉じると他のユーザーフォームが消えてしまう。
Excel(エクセル)
-
13
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
14
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
15
ExcelVBA でリストリストボックスに列見出しをコーディングでつける
Excel(エクセル)
-
16
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
17
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
18
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
19
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
20
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームを表示中にシ...
-
VBAでユーザーフォームを再表示...
-
ACCESSキャンセル時の確認メッ...
-
エクセルVBAのフォームを最...
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
コントロールの存在確認
-
VB.NETのフォームに別のウイン...
-
任意のフォームが表示されてい...
-
ブックをCloseまたはQuitで閉じ...
-
C# formの2重起動禁止
-
ACCESSのフォーム、開くんです...
-
テキストボックスの番号の取得
-
アクセスVBA コンパイルエラー
-
フォームを画面の真ん中に表示...
-
エクセルのVBAでユーザーフォー...
-
エクセルVBA フォーム上でOnkey...
-
クリックイベントなのに、2回ク...
-
クリックするたびに、フォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
VBAでユーザーフォームを再表示...
-
クリックイベントなのに、2回ク...
-
Microsoft Formsの「個人情報や...
-
ACCESSのフォーム、開くんです...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
ユーザーフォーム上に現在日時...
-
Hideについて(.NET)
-
VBA(エクセル)のユーザー...
-
フォームウィンドウを最前面に...
-
(Excel+VBA)ユーザーフォームの...
-
コントロールの存在確認
-
VB.NETでフォームロード中のエ...
-
VBAのテキストフォームの折り返...
-
パソコンの画面に合わせてユー...
-
モードレスでユーザーフォーム...
-
ユーザーフォームのラベルに時...
おすすめ情報