[[20170512102335]] 『ユーザーフォームの入力を繰り返したい』(ふみ) ページの最後に飛ぶ

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

 

『ユーザーフォームの入力を繰り返したい』(ふみ)

お世話になります。
VBA初心者です。
現在ユーザーフォームにて台帳を作成しようとしています。
やりたい内容としては、

フォーム起動用Bookから・出力用Bookを起動

ユーザーフォームにてセルに入力

シートをコピーしてユーザーフォームを閉じる

またユーザーフォームを起動する

という流れを繰り返したく考えています

現在do loopで処理しようとしており、
フォーム上の閉じるボタンをクリックでループから抜けようとしています。

しかし、実行すると”functionまたは変数が必要です”とコンパイルエラーが発生してしまいます。

コードを掲載しますのでご教示頂ければ幸いです。

Private Sub btn登録_Click()

    Do While btn閉じる_Click

      Range("C1").Value = Me.txt○○.Text

      Range("C2").Value = Me.cmb××.Text

    Select Case True

        Case Me.opb△△.Value
                Range("J17") = "△△"

    End Select

     
    ActiveSheet.Name = ActiveSheet.Range("C1")'セル内容からシート名変更 

    Unload Me'フォームを閉じる

    Loop

End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 この構成自体が、問題が少なくないと思いますけど、直接の原因は

 Do While btn閉じる_Click

 つまり、VBA文法としては btn閉じる_Click という名前の変数なり、そういった名前の Functionプロシジャの戻り値が
 True である限り実行 ということなんですが、おそらく、btn閉じる_Click って、Subプロシジャ??

 実際には、何を判定したかったのですか?

(β) 2017/05/12(金) 11:45


回答有り難う御座います。

知識が浅いのでとんちんかんな事を言っていたら申し訳ないのですが…。

現在ユーザーフォーム上にテキストボックス十数個、オプションボタンとコンボボックスを各数個ずつ配置しています。

そのほかに【登録】ボタンと【閉じる】コマンドボタンを作成しており、
【登録】ボタンを押した場合はユーザーフォームに入力処理を繰り返す。
【閉じる】ボタンを押した場合には繰り返しを終了したいです。

btn閉じる_Click はサブプロシージャです。

Private Sub btn閉じる_Click()

    Unload Me
End Sub

ユーザーが閉じるをクリックしたかどうかを判定したいです。

構成の問題点等教えていただければ有り難く思います。
どうぞよろしくお願いいたします。

(ふみ) 2017/05/12(金) 12:03


標準モジュールで Public 指定して変数宣言すると、ブック内全てで同じ変数が更新・参照できるようになります。
例えば、フォームを開いた際に0とし、登録ボタンなら1、閉じるボタンなら2のように、変数代入してはいかがでしょうか。
(フォーム右上の赤×で閉じた場合は、どちらのボタンも押していないから、0)
(???) 2017/05/12(金) 13:19

コメント返信:

[ 一覧(最新更新順) ]


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