- ベストアンサー
単純な質問で恐縮です。
単純な質問で恐縮です。 コマンドボタン1を押したら、ラベル1が消えて、ラベル2が表示させるようにしたいのですが動きません。 Private Sub CommandButton1_Click() Label1.Visible = False Label2.Visible = True end sub どうしてでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
パッと見、おかしいところはありません。 できれば元ソースを(なるべく改変せずに)貼りつけて欲しいところですが。 時折、投稿記入時にスペルミスなどを無意識に直してしまって、質問文で書いたものは正常に動く、という質問もあり得ますから。 ※そのまま貼りつけてないって判断根拠は、End Subと先頭が大文字になってないって事で、すくなくともそこは質問を書いた際に手打ちしているなって事ですが。(VBエディタは勝手に先頭大文字に修正するため) ともかく、ソースがおかしくないってことは貴殿がどのようなミスをしているか、という事だけなのですが。 CommandButton1、Label1、Label2の名前をそれぞれ変更変更していないか?と言うところや、あるいは、デザイン画面でボタンをクリックして『動かない!!』と騒いでいるのではないか?というレベルまであり得ます。 まずはデザイン画面で対象のボタンをダブルクリックしてください。 Clickイベントの入力画面に切り替わると思います。 もし空白であれば、質問文のコードは別のところに書いたのか、コマンドボタンの名前を変えたのか。 ちゃんとコードが書かれているなら、以下のように、イベント実行の確認用にMsgBoxを入れてみましょう。 Private Sub CommandButton1_Click() MsgBox "CommandButton1_Click" Label1.Visible = False Label2.Visible = True end sub 次に、実行確認時にはメニューから[実行]-[完全コンパイル後に開始]を選んで実行しましょう。 ツールバー上の実行(右向き三角ボタン)は、[実行]-[開始]の事になります。 これは構文エラーのある行に来て初めて、『構文エラーがあります』とVBから通知されます。 [完全コンパイル後に開始]だと、一度全文をVBが確認して、おかしな記述がみつかった場合に事前にVBが教えてくれます。 たとえば、Label1の名前をプロパティで変更してlblCaptionと変更しても、ソースコード上でLabel1と書いたものは自動的に名前が変化したりはしません。 完全コンパイル後に開始、であれば『Label1ってオブジェクトが使われてるけど、何これ?知らないよ』と教えてくれます。 ついでに、メニューの[ツール]-[オプション]から、『変数の宣言を強制する』にチェックを入れましょう。 変数を使う前に Dim i As Integer i=0 のように、Dim~と書かなくてはいけなくなりますが、スペルミスをしていた場合などに、『何この変数?知らないよ』と教えてくれます。 最後に ここまでやってもダメな場合、ちょっと遊びの要素も入れて、確認の為に以下のように変更して見てください。 クリックするたびに、表示/非表示が切り替わるように書き変えてみました。 Label1とLabel2を、勘違いしているのではないかな、という事に対しての確認です。 Private Sub Command1_Click() MsgBox "CommandButton1_Click" Label1.Visible = Not Label1.Visible Label2.Visible = Not Label1.Visible end sub
その他の回答 (4)
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
>VB6です。 VBAでもなく、VB6ですね? オブジェクト名は「CommandButton1」であっていますか? 「Command1」ではないですか? (Captionではなく、オブジェクト名) それと再度同じ質問をします。 -------------------------------------------------------------- デバッグでは、その「CommandButton1_Click」が実行されてますか? --------------------------------------------------------------
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
回答先間違えた者ですw 質問です。 VB6ですよね? VB.NETではないですよね? デバッグでは、その「CommandButton1_Click」が実行されてますか?
補足
VB6です。 ユザーフォーム上にコマンドボックスを配置して、クリックするようにしています。
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
#1です。 すいません。 回答先を間違えましたw #1を無視してください。 m(_ _)m
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
言われているのは、質問というより、アプリケーション開発依頼です。 とても回答欄の2000文字で収まるような内容ではありません。 もっと的を絞って、本当にわからない部分だけの質問にしないと、解決に至らないと思いますよ。 まずは機能分割が必要です。 ・監視機能 ・メール取得機能 ・DB登録機能 と大きく分かれます。 //////////// 監視機能 //////////// 五分間隔の監視というのは、「誰が監視するか」ということです。 ・アプリケーションが絶えず走っている という状況にするより、 ・OS機能のタスクによる実行 あるいは ・JP1などのツールによるタスク管理 とするだけで、開発ステップは大きく削減できます。 //////////// メール取得機能 //////////// 言わずと知れた「DOBON.NET」 http://dobon.net/ そこから →.NET Tips →→インターネット →→→POP3メールサーバーからメールを受信する 最新なのかどうかは、別途チェックロジックを追加する必要あり //////////// DB登録機能 //////////// DBをバイナリで登録するのかな? それともファイルパスを書くだけかな? 仕様が不明です。 バイナリで書くとしたら、まとまったDBができはしますが、バックアップに時間がかかります。 ファイルパスで書くとしたら、ファイルが削除されてしまってもパスが残っているので、同期が取れなくなる恐れもあります。 これらを考慮して、どのような方向で進めるかを決める必要があります。 //////////// 全体構想() //////////// これらの機能を ・1つのアプリ(EXE)で行うか ・複数アプリ(EXE)で行うか によって、連携を考慮する必要が出てくるかも知れません ・1つのアプリの場合は連携を考慮しなくてもいいけど、修正が入った場合の全体への影響度を深く考える必要あり ・複数アプリの場合は、修正が入った場合の全体への影響度は低いと思われるが、連携についてを考慮する必要あり 一長一短です。 作成の前に、もうちょっと詳細を詰めて、1機能を作成してみましょう。 作成中にわからなくなった部分について、提供できる情報を公開しましょう。 公開してある情報が多いほど、的確なアドバイスを得られます。 またそれらに関係する参考となるURLの情報を得られるかも知れません。
お礼
Private Sub Command1_Click() Label1.Visible = False Label2.Visible = true の後に、For文を長々と入れていたのですが、そっちを先に計算していたようです。 そういうものでしょうか?よくわかりませんが... そのfor文の後にVisibleの構文を入れると動作しました。 ???? ご足労頂きありがとうございました。