| 
    
     |  | Excel(2010)で、VBAでフォームを作成し、入力画面を作り、セルに 転記しようとしています。
 まずシートは1「sheet1」、2は「データ」、3は「リンク元」としています。
 
 次に、VBAの「転記ボタン」の部分を以下のようにしています。
 ------ここから-------
 Private Sub 転記ボタン_Click()
 Dim myrow As Integer
 With Sheets("List").Range("A1048576").End(xlUp)
 
 If .Range("A2").Value = "" Then
 myrow = 2
 Else
 myrow = .Range(Cells(.Rows.Count, 1). _
 End(xlUp).Address).Row + 1
 End If
 .Cells(myrow, 1).Value = 番号.Value
 .Cells(myrow, 2).Value = 氏名.Value
 
 (略)
 
 .Cells(myrow, 50).Value = 備考.Value
 End With
 End Sub
 ------ここまで-------
 
 該当のフォーム(UserForm1)の中には、
 「チェックボックス」(フレームにてグレープしている物もあれば、
 グループにしていない物もあります)や、「ラジオボタン」もあります。
 
 ここで問題なのが、上記スクリプト部分に、
 (以下は、ラジオボタン。2つのうち、いづれかのみ選択)
 例→ .Cells(myrow, 5).Value = 男性.Caption
 例→ .Cells(myrow, 6).Value = 女性.Caption
 と、した場合、「男性」にチェックを入れても、「両方チェックを入れない場合」でも、
 セルに「男性」と「女性」が転記されてしまいます。
 
 これは例えば、「チェックボックス」でも同様で、例(以下)で次ぎのようにすると、
 
 .Cells(myrow, 7).Value = りんご.Caption
 .Cells(myrow, 8).Value = バナナ.Caption
 .Cells(myrow, 9).Value = メロン.Caption
 
 と、「好きな食べ物にチェックを入れる」を例にした場合でも同様です。
 一つしかチェックされない場合でも、3つチェック無しの場合でも、全て転記されてしまいます。
 
 色々と、試行錯誤で調べた結果、
 
 「チェックボックス」や「ラジオボタン」の場合、選択した値を「FALSE」か「TRUE」で返す
 のではないか?と感じており、ここで、「任意の文字が無理ならば、sheet3つ目の“リンク元”」
 に、コピー元として、「データ」シートをコピー先とすれば良いのかと思いました。
 
 検索して色々としらべましたが、
 
 Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("C2")
 
 がありましたが、これは、「データ」シートの1行目以降に最後尾より追加し転記する。
 といった場合、いままで作ってきた「.Cells(myrow, ●).Value =」は無駄になってしまうのかと
 分からなくなってしまいました。
 
 
 現在の状態として、
 ラジオボタン(フレーム化)3つ1組。
 ラジオボタン(フレーム無し)3つ1組。
 ラジオボタン(フレーム無し)2つ1組。
 
 チェックボックスはそれぞれ多数。という状態です。
 
 お知恵をお借りしたく、宜しくお願い致します。
 
 |  |