[三流君] −−>
[VBAで楽しく] −−>
[バックナンバー一覧]
−−> No.061 Excel Form 閉じる方法 Unload Me
Excel Form 閉じる方法 Unload Me
メルマガ発行内容
<Excel Form 閉じる方法 Unload Me>
こんにちは、
三流プログラマーKen3です。
今回は、
Excel 入力フォーム 閉じるボタンでフォームを閉じたい
を軽く書きたいと思います。
今回の関連画像は、手抜きで無しです(オイオイ)
が、
サンプルファイルは、
http://www.ken3.org/vba/lzh/vba061.lzh
にtest061-book.xlsが保存されています。
(画像無しだけど、サンプルぐらいは作りますよ(笑))
/*
* 1.今回のキッカケ
*/
掲示板に質問の書き込みがありました。
In message "[BBS :76] Excel 入力フォームの作成について",
>投稿時間:2003/04/01(Tue) 15:50
>
>おなまえ:sattoch
>タイトル:Excel 入力フォームの作成について
>
>はじめまして!
>「Excel 入力フォームの作成」をまねしてやってみました。
>VBAはまだ初心者なのですが、楽しかったです。
>それで質問なのですが、ボタンをつくってクリックすると
>終了にしたいと思いますが、どうやったら終了になるのでしょうか?
>どうしても知りたいと思いますので教えてください。
>それから、あの入力フォームはシートのほうに固定させて
>シートをひらくと入力フォームがそこに出てくる、というふうには
>出来るのでしょうか?
>他のページにはやり方がかいてあったのかな?
>探してみます。でも良かったら教えてください!
>--------------------------------------------------------
と書き込みがありました。
なんとなくHP管理者を嬉しくさせる書き方だったので
(私が感じただけかもしれないけど)
すばやく回答してみようと思います。
おいおい、他の回答は?ほったらかし?
スイマセン、今回はゆるしてね。
/*
* 2.閉じるボタンの作成
*/
[No.42 ExcelのForm シートと連動させる]
http://www.ken3.org/backno/backno_vba09.html#42
で、
Excelのシートとユーザーフォームを連動させた入力を軽くやりました。
シートのイメージは
_____A_____________B_________C____________D_______________________E_______
1 画像タイトル ファイル名 コメント 画像ベースディレクトリ→ D:\temp\
2 サンタ 001.gif ケーキ写真
3 お正月 012.jpg XXXXXXXXXX
タイトル
___________ txtTITLE
ファイル名
___________ txtFILENAME
コメント
___________ txtMEMO
┌────┐
│前へ戻る│btnPREV
└────┘
┌───┐
│ 次へ │ btnNEXT
└───┘
┌────┐
│ │imgBOX(イメージコントロール)
└────┘
を作成しました。
ここでは、見事な手抜きで閉じるのボタンは無く、
右上の×で閉じてねと作業者に(読者に)高飛車的態度で言ってました。
そんな手抜きをしてるので、
>それで質問なのですが、ボタンをつくってクリックすると
>終了にしたいと思いますが、どうやったら終了になるのでしょうか?
>どうしても知りたいと思いますので教えてください。
と質問が来ました。
今回説明したいと思います。
まず、ボタン
┌───┐
│閉じる│btnCLOSE
└───┘
とボタンコントロールを追加します。
クリックイベントに、処理を記述します。
Private Sub btnCLOSE_Click()
Unload Me '自分自身を閉じます(笑)
End Sub |
Unload ステートメント で、
Me(自分自身)オブジェクトをメモリから削除しただけです。
ユーザーフォームの表示は、
Private Sub ボタン1_Click()
Load UserForm1
UserForm1.Show
End Sub |
と、Load UserForm1でメモリに読み込み、.Showで表示してました。
その逆で、Unloadって感じです。
Unload Me としてましたが、
Unload UserForm1 とフォーム名でもOKです。
まだまだ不親切なんだよね三流君は。
えっ、どこが?丁寧に終了に対比させて開く部分も書いて、
本人は一生懸命やってるつもりなんだけどなぁ。。。
不親切の考え方が違うんだよ。
だからどこが?
いきなりUnload Meだと閉じるだろ。
当然ですよ閉じる処理の説明なんだから、なんか文句あるのボク?(逆切れか?)
普通の処理では、終了しますか?とかメッセージが出るんじゃないの?
それが無いと不親切な動くだけのプログラム/システムなんだよ。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ギク。。。
Private Sub btnCLOSE_Click()
'終了を確認する
If MsgBox("終了します?", vbYesNo, "確認") = vbYes Then
Unload Me '自分自身を閉じます(笑)
End If
End Sub |
と、MsgBoxで確認処理を入れてみました。
/*
* 3.シートが変わった時のイベント、
*/
>それから、あの入力フォームはシートのほうに固定させて
>シートをひらくと入力フォームがそこに出てくる、というふうには
>出来るのでしょうか?
入力フォームをシートに固定させる方法は、チョットわからないけど、
シートを開いた時に実行させるには、
Worksheet_Activateのイベントで、
シートが選択された時に(アクティブになった時に)
下記のフォームを開く処理を実行させます。
Private Sub Worksheet_Activate()
Load UserForm1
UserForm1.Show
End Sub |
単純にフォーム開くボタン(タイミング)で行っていた処理を
シートが選択された時に(アクティブになった時に)
Worksheet_Activateのイベントに記述しただけでした。
同じように、ブックが開いた時のイベントに書くことも出来ます。
*いろいろなタイミング(イベント)でテストして遊んでみてね。
/*
* 4.おわりの挨拶
*/
今回は、
・閉じるボタンの作成、Unload Me
・Worksheet_Activateのイベントでシートの切り替わり時にフォームを開いてみた
でした。
今回の関連画像は、手抜きで無しです(オイオイ)
が、
サンプルファイルは、
http://www.ken3.org/vba/lzh/vba061.lzh
にtest061-book.xlsが保存されています。
(画像無しだけど、サンプルぐらいは作りますよ(笑))
拾い読みして、
1つでも何かの参考となれば幸いです。
Excel/Access大好き、三流プログラマーKen3でした。
----------------------------------
関連項目(ただのバックナンバー紹介)
----------------------------------
[No.42 ExcelのForm シートと連動させる]
http://www.ken3.org/backno/backno_vba09.html#42
で、
Excelのシートとユーザーフォームを連動させた入力を軽くやりました
Excelフォームの作成サンプルは
http://www.ken3.org/vba/excel-form.html
に軽くまとめてあるので、見てください。
フィードバック
VBA系の→[掲示板]←を覗く、質問を書き込む
評価・感想
ページフッター(リンクや広告など)
[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます
広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列
情報を探す
情報を探すならGoogleかな?
↓Web全体、サポート情報(support.microsoft.com)や三流君VBA(ken3.org)から検索する
書籍の購入
Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??
コンピュータ書籍の発送がハヤイ専門店
コンピュータの本・専門店
|
※種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり
|
amazon.co.jpでキーワード別チェック
下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・