[[20100117103226]] 『フォームの記入について』(seri) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォームの記入について』(seri)
 先日フォームの記入について教えてもらったものです
 入力の後に次の入力を自動的にできないのでそれについて教えてください
 見本は 

 Private Sub CommandButton1_Click()
 n = 1
 Do
 n = n + 1
 Loop While Cells(n, 1) <> ""
 Cells(n, 1) = UserForm1.TextBox1.Text
 Cells(n, 2) = UserForm1.TextBox2.Text
 Cells(n, 3) = UserForm1.TextBox3.Text
 Cells(n, 4) = UserForm1.ComboBox1.Text
 Unload Me
 End Sub
 Private Sub CommandButton2_Click()
 Unload Me
 End
 End Sub

 これは 入力が終わると自動的に次が入力できるようになります

 上記を 変更して作ったものが 下記です
 Private Sub commandbutton1_click()
 n = 1
 Do
 n = n + 1
 Loop While Cells(n, 1) <> ""
 Cells(n, 1) = Me.TextBox1
 Cells(n, 2) = Me.TextBox2
 Cells(n, 3) = Me.TextBox3
 Cells(n, 4) = Me.TextBox4
 Cells(n, 5) = Me.TextBox5
 Cells(n, 6) = Me.TextBox6
 Cells(n, 7) = Me.TextBox7
 Unload me
 End Sub
 Private Sub commandbutton2_click()
 Unload Me
 End
 End Sub

 以前書き方について教えてもらった
 commandbutton1の後の Unload Meをコメントにすると
 入力する(textboxが)クリアにならないというのが分かったので 
 コメントにせずにそのまま入力 
 commandbutton2の Endを入れないと フォームが消えず
 強制終了もしくは コードを開いたままでいるときのリセットしか
 エクセルが閉じなくなってしまいましたので 入れてみました
 (もしかすると解釈を間違えているのかもしれないですが・・)
 上の見本と何が違うのかが分からないでいます
 よろしくお願いします

 関連スレッド
[[20100114141439]] 『フォームの書き方についての質問』(seri)


 フォームを閉じるには、二通りの方法があります。

 Unload Me
 Me.Hide

 Unload はメモリ上からフォームのインスタンスを抹消しますが、 
 Hideは「見えなくする」だけでメモリ上には残りますので、フォーム上の
 コントロールにもアクセスできる状態です。

 通常は Unload でフォームは見えなくなるはずですが

 Me.Hide
 Unload Me

 で試してください。
 (seiya)


 >入力の後に次の入力を自動的にできないので
 とは、どうならないということですか?
     (SHIOJII)

 seiyaさん SHIOJIIさんありがとうございます

 入力を自動的にできないというのは コマンドボタン1(入力)を押すと
 見本(参考にしたHPからコピーして作ったもの)では textbox1のところに
 自動的にカーソルがいきなにもしなくても入力を続けていくことができます
 参考にして自分が作った方は シートに入力をしても カーソルが無いので
 その都度textbox1をクリックしないとなりません
 (最初にマクロの実行で出るときにもカーソルは点滅していません)
 (seri)

 私が、書くなら
 こんな感じかな?
   (SHIOJII)

 Option Explicit

 Private Sub CommandButton1_Click()
   Dim n As Long
   Dim i As Long

   With Sheets("Sheet1")
      n = 1
      Do
        n = n + 1
      Loop While .Cells(n, 1) <> ""
      For i = 1 To 7
       .Cells(n, i) = Me.Controls("TextBox" & i).Text
       Me.Controls("TextBox" & i).Text = ""
      Next
      Me.TextBox1.SetFocus
  End With
 End Sub
 '=========================================================== 
 Private Sub CommandButton2_Click()
   Unload Me
 End Sub


 SHIOJIIさん どうもありがとう
 commandbutton1の方コピーしてやってみると
 『入力』が終わったらtextbox1のところにカーソルがいき
 続けて入力できるようになっています
 書かれているものの意味がまだはっきり分からないので
 (なんとなくですが自分なりに)納得できるように意味を調べてみます
 マニュアルもある程度分からないとどこで調べていいのかを
 見つけるのが難しいですね・・
 がんばってみます
 (seri) 

 分からない場所にキャレット(文字入力位置を示すカーソル、Iビーム)を合わせて
「F1」キーを押すと、その項目に応じたヘルプが表示されます。
例えばSetFocusと言う単語の上でF1を押すと、この機能はどのように使うのかが示されます。
もしヘルプが表示されない場合はOfficeのセットアップCDから追加する必要があります。
初心者から10年選手まで使う機能なので覚えておくと良いかと。
(ご近所PG)

 ご近所PGさん ありがとうございます
 本当に全くの初心者なので やろうとしていることと
 レベルに差があるのかもしれないのですが 
 やりたいと思うことからやってみようと思っています
 また 分からないことがでてきたらこちらで質問させていただきます
 (seri)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.