[[20070715160801]] 『ユーザーホームのチェックボックスの結果をセルに』(初心者α) ページの最後に飛ぶ

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

 

『ユーザーホームのチェックボックスの結果をセルに』(初心者α)
 早速ですが質問させて頂きます。

 ユーザーホームに
  テキストボックス1 「2007年」
  テキストボックス2 「7月15日」とあり
 
 ○関西  ○関東  ○中部 ・・・チェックボックスがあり「関東」を選択し
 関東が選択してある状態で  
           
 「登録」・・・コマンドボタン おすと

  Sheet1	[A]	   [B]	      [C]
 [1]	2007年   7月15日  関東
 [2]	 		

 となるようユーザーホームのデータをセルに設定したのですが
 全文検索で探してみて
 テキストボックス1,2は
 r = Selection.Row
 Cells(r, 1).Select   ''''''''''''''''''''年
 ActiveCell.FormulaR1C1 = TextBox1
 Cells(r, 2).Select   ''''''''''''''''''月日
 ActiveCell.FormulaR1C1 = TextBox2
 という構文でセルにもってくることができました。
 チェックボックスで選択した文字自体をセルにセルに
 もってくるにはどういう構文にすればいいでしょうか。

   
 質問の内容を勘違いしていましたので修正させて頂きます。
 ユーザーホームに
  テキストボックス1 「2007年」
  テキストボックス2 「7月15日」とあり
 
 ○関西  ・・・チェックボタンで 関西かそうでないかを選択
 関西が選択してある状態で  
           
 「登録」・・・コマンドボタン おすと

  Sheet1	[A]	   [B]	      [C]
 [1]	2007年   7月15日  関西
 [2]	 		      ・・・チェックボタン ONの場合のみあ
 でした。改めて宜しくお願いします。(初心者α)

  


 セルA1にチェックボックス1がTrueの時に項目を代入し、Falseの時はクリアするサンプル。

 If Me.Controls("CheckBox1").Value Then
    Range("A1").Value = Me.Controls("CheckBox1").Caption
 Else
    Range("A1").ClearContents
 End If

 CheckBox1を関西のチェックボックスNo.に変更すれば大丈夫だと思います。
 (じゅんじゅん)

 これってホンマにチェックボックスでっか?
 オプションボタンでなければならん筈ですけどなぁ・・・
       (弥太郎)

 じゅんじゅんさん。先日、「初心者」にHNでお世話になり、同じHNがあったので
 このHNにしました。今後とも宜しくお願いします。
 チェックボックスの「関西」とCheckBox1の名前を変更したところ.Captionというん
 ですね。大変参考になります。教えて頂いた構文、チェックボックスのON/OFF
 「関西」ONならセルに「関西」 OFFならセルのクリアする。というものです 
  ね。今回は表示したいセル位置が決まっていないので、
 教えて頂いた構文を参考に

  If Me.Controls("CheckBox1").Value Then
 Cells(r, 3).Select
 ActiveCell.FormulaR1C1= Me.Controls("CheckBox1").Caption
 Else
 ActiveCell.FormulaR1C1= NULL としました。
  ・・ActiveCell.FormulaR1C1").ClearContentsはエラーになった為
 有難うございました。
 弥太郎さん。有難うございます。チェックボックスとオプションボタン
 使い方と処理の仕方がよくわからないので、少しやってみます。
 疑問があったらまた載せますので、宜しくお願いします。
 お二人とも有難うございました。(初心者α)


 値を代入するなら、
 Cells(r, 3).Value = Me.Controls("CheckBox1").Caption
 で、よろしいかと。

 Cells(r, 3).ClearContents
 でクリアでしょう。

 (じゅんじゅん)

 「登録」・・・と言うコマンドボタンを押すと  となっとりますわなぁ。
 そのコマンドボタンを押す時点で複数のチェックボックスがTrueになっとったらどの
 Captionをセルに反映するんでっか?
 もし、どれか一つのチェックボックスにしかTrueが入らないようにするには一つのチェ
 ックボックスにTrueが入った時点で他の二つのチェックボックスをFalseにするコード
 を組み込まなければなりまへんなぁ。
 せやから、こんなばやいはオプションボタンを使うのがベターやと申し上げておる次第
 なんですワ。
 まぁ、好んでその方法を採っておられるんですから、他人様のやることに口出しすべき
 でないんかもしれまへんけど、チョット気ぃになったもんで、すんまへんなぁ。
       (弥太郎)

 じゅんじゅんさん。再度有難うございます。
 Cells(r, 3).Value 
 Cells(r, 3). とするとSelectしなくててもいいのですね。
 有難うございます。
 弥太郎さん。オプションボタンやってますが、むつかしそうで・・・
 時間を見つけもうすこしやってみます。最初にかいた3つありどれかを選ぶ時は
 これを使うのかなという感じまではわかってきました。(初心者α)

 >弥太郎さん。オプションボタンやってますが、むつかしそうで・・・
 とんでもない勘違いですワ。こういったケースではチェックボックスを使うよりはる
 かに簡単で合理的にでけてます。
 第一チェックボックスの一つが選択されとる状態で次のチェックボックスを選択した
 ばやい、前のチェックボックスをクリックして選択状態を解除せなあきまへん。
 もしそういうのを自動的にやろうとするとそのチェックボックスのコードそれぞれに
 他のチェックボックスをFalseにするコードを組み込まなければなりまへん。
 そうした無用な作業をひっくるめた仕事を全てこなしてくれるんがオプションボタン
 なんですワ。
 一遍騙されたと思うて使うてみなはれ。「これや!」と手ぇを打って納得して貰える
 とおもいまっせぇ。(笑
       (弥太郎)

 ついでですから
 チェックボックスを使うにしてもオプションボタンを使うにしても コマンドボタン
 を押すと同時にセルに反映させるには、変数に一旦格納してそのデータを出力せなな
 りまへん。
 例えばオプションボタンを使うケースやと
 そのフォームモジュールの一番上 General Declarations の宣言セクションに
    Private data As String
 と書き込みます。
 そしてオプションボタンのそれぞれのコードに(この例はオプションボタン1)
  Private Sub OptionButton1_Click()
    If OptionButton1.Value = True Then
        data = OptionButton1.Caption
    End If
 End sub
 とし、
 コマンドボタンに
 出力セル=data
 とすれば初心者αはんの欲しい結果が得られます。
         (弥太郎)


 横から失礼しまして。
 弥太郎さまの、「変数に一旦格納してそのデータを出力」は大変参考にさせて頂きました。

 従来、CommandButtonを押してから順繰りチェックをしていたものですから、上記の方法ですと
 スッキリといきそうです。
 今後のコーティングの際には使用させて頂きます。
 (じゅんじゅん)

 弥太郎さん。丁寧な説明有難うございました。
 おっしゃるとうり「これや!」と手ぇを打って納得しました。
 じゅんじゅんさんのおしゃるとうり、ボタンのほうでで処理を区分するのではなく
 オプションボタンをONした時点で dataに一旦セーブしておく。
 ボタンのほうはdataの中身を希望セルへ取り出すだけ。
 そういうことですね。
 今回最初のほうでやろうとしていた
 ○関西  ○関東  ○中部 ・・・チェックボックスがあり・・の場合の
 ことをおっしゃていたのですね。

 Private data As String
 Private Sub CommandButton1_Click()’セルへの表示
 r = Selection.Row
 Cells(r, 5) = data

 Private Sub OptionButton1_Click()  ’関西
 If OptionButton1.Value = True Then  
        data = OptionButton1.Caption  
    End If
 End Sub

 Private Sub OptionButton2_Click()  ’関東
 If OptionButton2.Value = True Then  
        data = OptionButton2.Caption  
    End If
 End Sub

 Private Sub OptionButton3_Click()  ’中部
 If OptionButton3.Value = True Then  
        data = OptionButton3.Caption  
    End If
 End Sub

 上記の構文でスッキリ処理することができました。
 チェックボックスも同様に考えます。
 有難うございました。(初心者α)


コメント返信:

[ 一覧(最新更新順) ]


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