Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7231 / 13645 ツリー ←次へ | 前へ→

【40397】IF〜then の使い方? てつじ 06/7/13(木) 10:57 質問[未読]
【40398】Re:IF〜then の使い方? Statis 06/7/13(木) 11:08 発言[未読]
【40400】Re:IF〜then の使い方? てつじ 06/7/13(木) 11:14 発言[未読]
【40401】Re:IF〜then の使い方? Statis 06/7/13(木) 11:37 回答[未読]
【40404】Re:IF〜then の使い方? てつじ 06/7/13(木) 12:00 発言[未読]
【40405】Re:IF〜then の使い方? Statis 06/7/13(木) 12:01 回答[未読]
【40406】Re:IF〜then の使い方? てつじ 06/7/13(木) 12:57 発言[未読]
【40407】Re:IF〜then の使い方? Statis 06/7/13(木) 13:02 回答[未読]
【40408】Re:IF〜then の使い方? てつじ 06/7/13(木) 13:10 発言[未読]
【40410】Re:IF〜then の使い方? Statis 06/7/13(木) 13:16 発言[未読]
【40421】Re:IF〜then の使い方? てつじ 06/7/13(木) 15:28 お礼[未読]

【40397】IF〜then の使い方?
質問  てつじ  - 06/7/13(木) 10:57 -

引用なし
パスワード
   おはようございます。同じ質問をする事になるかもしれませんが、自分でも色々やってみましたが、今の自分の実力では下記コードを作る事が精一杯です・・・。
現在、フォーム上で入力した物を、ボタンクリックにより各シートへ移しています。シートは4つとも全く同じ物なのですが、これを、シートを1つにして、フォーム上にcomuboboxを作り、comboboxより名前選択すれば、その方の入力したものだけが、シート上へ移るようにしたいのですが・・・。
「IF」を利用して作るのかなぁと思い、試してはみたものの・・・・。
どうかお力をお貸し下さい。

Worksheets("一 郎").Select
 For i = 5 To 46
  Select Case i
     Case 5 To 11: Cou = 11: Co = -3
     Case 12 To 18: Cou = 13: Co = -10
     Case 19 To 25: Cou = 15: Co = -17
     Case 26 To 32: Cou = 17: Co = -24
     Case 33 To 39: Cou = 19: Co = -31
     Case 40 To 46: Cou = 21: Co = -38
    End Select
Worksheets("一 郎").Cells(Cou, i + Co).Value = Me.Controls("TextBox" & i).Value
   Next i

      
Worksheets("二 郎").Select
 For i = 48 To 89
  Select Case i
     Case 48 To 54: Cou = 11: Co = -46
     Case 55 To 61: Cou = 13: Co = -53
     Case 62 To 68: Cou = 15: Co = -60
     Case 69 To 75: Cou = 17: Co = -67
     Case 76 To 82: Cou = 19: Co = -74
     Case 83 To 89: Cou = 21: Co = -81
    End Select
Worksheets("二 郎").Cells(Cou, i + Co).Value = Me.Controls("TextBox" & i).Value
  Next i

   
Worksheets("三 郎").Select
 For i = 91 To 132
  Select Case i
     Case 91 To 97: Cou = 11: Co = -89
     Case 98 To 104: Cou = 13: Co = -96
     Case 105 To 111: Cou = 15: Co = -103
     Case 112 To 118: Cou = 17: Co = -110
     Case 119 To 125: Cou = 19: Co = -117
     Case 126 To 132: Cou = 21: Co = -124
    End Select
Worksheets("三 郎").Cells(Cou, i + Co).Value = Me.Controls("TextBox" & i).Value
  Next i
     
      
Worksheets("四 郎").Select
 For i = 134 To 175
  Select Case i
     Case 134 To 140: Cou = 11: Co = -132
     Case 141 To 147: Cou = 13: Co = -139
     Case 148 To 154: Cou = 15: Co = -146
     Case 155 To 161: Cou = 17: Co = -153
     Case 162 To 168: Cou = 19: Co = -160
     Case 169 To 175: Cou = 21: Co = -167
    End Select
Worksheets("四 郎").Cells(Cou, i + Co).Value = Me.Controls("TextBox" & i).Value
  Next i
    

 For i = 43 To 84
  Select Case i
      Case 43 To 49: Cou = 10: Co = -41
      Case 50 To 56: Cou = 12: Co = -48
      Case 57 To 63: Cou = 14: Co = -55
      Case 64 To 70: Cou = 16: Co = -62
      Case 71 To 77: Cou = 18: Co = -69
      Case 78 To 84: Cou = 20: Co = -76
     End Select
   Worksheets("一 郎").Cells(Cou, i + Co).Value = Me.Controls("label" & i).Caption
   Worksheets("二 郎").Cells(Cou, i + Co).Value = Me.Controls("label" & i).Caption
   Worksheets("三 郎").Cells(Cou, i + Co).Value = Me.Controls("label" & i).Caption
   Worksheets("四 郎").Cells(Cou, i + Co).Value = Me.Controls("label" & i).Caption
 Next i

【40398】Re:IF〜then の使い方?
発言  Statis  - 06/7/13(木) 11:08 -

引用なし
パスワード
   こんにちは
TextBoxでループするのでなくセルの位置でループで出来そうな気がしますが?
最後のコードはすべてのシートに入力していますがこれはどうなりますか?

【40400】Re:IF〜then の使い方?
発言  てつじ  - 06/7/13(木) 11:14 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>TextBoxでループするのでなくセルの位置でループで出来そうな気がしますが?
>最後のコードはすべてのシートに入力していますがこれはどうなりますか?

セルの位置でループ?ごめんなさいよくわかりません・・・・。
最後のコードは、どのシートにも同じ内容のものが入ものです。
ごめんなさい、答えになってないかもしれませんが・・・。

【40401】Re:IF〜then の使い方?
回答  Statis  - 06/7/13(木) 11:37 -

引用なし
パスワード
   こんにちは

これで如何でしょうか?シート名は一致させて下さい)

Private Sub ComboBox1_Change()
Dim Co As Long
Select Case Me.ComboBox1
   Case "一 郎": Co = 3
   Case "二 朗": Co = 46
   Case "三 朗": Co = 89
   Case "四 朗": Co = 132
   Case Else: Exit Sub
End Select
Call 入力(Me.ComboBox1.Value, Co)
End Sub


Private Sub 入力(Ws As String, Co1 As Long)
  Dim Cou As Long, i As Long
  With Worksheets(Ws)
    For i = 2 To 43
      Select Case i
        Case 2 To 8: Cou = 11
        Case 9 To 15: Cou = 13
        Case 16 To 22: Cou = 15
        Case 23 To 29: Cou = 17
        Case 30 To 36: Cou = 19
        Case 37 To 43: Cou = 21
      End Select
      .Cells(Cou, i).Value = Me.Controls("TextBox" & i + Co1).Value
      .Cells(Cou - 1, i).Value = Me.Controls("label" & i + 41).Caption
    Next i
  End With
End Sub

【40404】Re:IF〜then の使い方?
発言  てつじ  - 06/7/13(木) 12:00 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>これで如何でしょうか?シート名は一致させて下さい)
>
>Private Sub ComboBox1_Change()
>Dim Co As Long
>Select Case Me.ComboBox1
>   Case "一 郎": Co = 3
>   Case "二 朗": Co = 46
>   Case "三 朗": Co = 89
>   Case "四 朗": Co = 132
>   Case Else: Exit Sub
>End Select
>Call 入力(Me.ComboBox1.Value, Co)
>End Sub
>
>
>Private Sub 入力(Ws As String, Co1 As Long)
>  Dim Cou As Long, i As Long
>  With Worksheets(Ws)
>    For i = 2 To 43
>      Select Case i
>        Case 2 To 8: Cou = 11
>        Case 9 To 15: Cou = 13
>        Case 16 To 22: Cou = 15
>        Case 23 To 29: Cou = 17
>        Case 30 To 36: Cou = 19
>        Case 37 To 43: Cou = 21
>      End Select
>      .Cells(Cou, i).Value = Me.Controls("TextBox" & i + Co1).Value
>      .Cells(Cou - 1, i).Value = Me.Controls("label" & i + 41).Caption
>    Next i
>  End With
>End Sub


ありがとうございます。
Private Sub 入力(Ws As String, Co1 As Long)のコードはどこへ入力すればいいのですか?
情けない質問ですみません・・・。

【40405】Re:IF〜then の使い方?
回答  Statis  - 06/7/13(木) 12:01 -

引用なし
パスワード
   こんにちは

>Private Sub 入力(Ws As String, Co1 As Long)のコードはどこへ入力すればいい>のですか?

ComboBoxのあるフォームのモジュールです

【40406】Re:IF〜then の使い方?
発言  てつじ  - 06/7/13(木) 12:57 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>>Private Sub 入力(Ws As String, Co1 As Long)のコードはどこへ入力すればいい>のですか?
>
>ComboBoxのあるフォームのモジュールです


Private Sub ComboBox1_Change()のコードは直接comboboxに入力して
Private Sub 入力(Ws As String, Co1 As Long)はモジュールに入力すればよいのですよね?

【40407】Re:IF〜then の使い方?
回答  Statis  - 06/7/13(木) 13:02 -

引用なし
パスワード
   こんにちは
すべて同じモジュールです。。。。


'==========以下UserFormモジュール===============
Private Sub ComboBox1_Change()
Dim Co As Long
Select Case Me.ComboBox1
   Case "一 郎": Co = 3
   Case "二 朗": Co = 46
   Case "三 朗": Co = 89
   Case "四 朗": Co = 132
   Case Else: Exit Sub
End Select
Call 入力(Me.ComboBox1.Value, Co)
End Sub


Private Sub 入力(Ws As String, Co1 As Long)
  Dim Cou As Long, i As Long
  With Worksheets(Ws)
    For i = 2 To 43
      Select Case i
        Case 2 To 8: Cou = 11
        Case 9 To 15: Cou = 13
        Case 16 To 22: Cou = 15
        Case 23 To 29: Cou = 17
        Case 30 To 36: Cou = 19
        Case 37 To 43: Cou = 21
      End Select
      .Cells(Cou, i).Value = Me.Controls("TextBox" & i + Co1).Value
      .Cells(Cou - 1, i).Value = Me.Controls("label" & i + 41).Caption
    Next i
  End With
End Sub

'========までUserFormのモジュール===========

【40408】Re:IF〜then の使い方?
発言  てつじ  - 06/7/13(木) 13:10 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>すべて同じモジュールです。。。。
>
>
>'==========以下UserFormモジュール===============
>Private Sub ComboBox1_Change()
>Dim Co As Long
>Select Case Me.ComboBox1
>   Case "一 郎": Co = 3
>   Case "二 朗": Co = 46
>   Case "三 朗": Co = 89
>   Case "四 朗": Co = 132
>   Case Else: Exit Sub
>End Select
>Call 入力(Me.ComboBox1.Value, Co)
>End Sub
>
>
>Private Sub 入力(Ws As String, Co1 As Long)
>  Dim Cou As Long, i As Long
>  With Worksheets(Ws)
>    For i = 2 To 43
>      Select Case i
>        Case 2 To 8: Cou = 11
>        Case 9 To 15: Cou = 13
>        Case 16 To 22: Cou = 15
>        Case 23 To 29: Cou = 17
>        Case 30 To 36: Cou = 19
>        Case 37 To 43: Cou = 21
>      End Select
>      .Cells(Cou, i).Value = Me.Controls("TextBox" & i + Co1).Value
>      .Cells(Cou - 1, i).Value = Me.Controls("label" & i + 41).Caption
>    Next i
>  End With
>End Sub
>
>'========までUserFormのモジュール===========
 入力の所はシート名に直して実行しました。
 Me キーワド使用方法が不正です と エラーになります。

【40410】Re:IF〜then の使い方?
発言  Statis  - 06/7/13(木) 13:16 -

引用なし
パスワード
   こんにちは
ComboBox1のあるUserFormのモジュールに記載しましたか?
シートモジュールに記載したいるわけではないですよね?

【40421】Re:IF〜then の使い方?
お礼  てつじ  - 06/7/13(木) 15:28 -

引用なし
パスワード
   ありがとうございました。
少しいじって、下記コードで上手くいきました。
たすかりました。

Private Sub 入力(Ws As String, Co1 As Long)
  Dim Cou As Long, i As Long, Co As Long
  With Worksheets("用紙")
    For i = 2 To 43
      Select Case i
        Case 2 To 8: Cou = 11: Co = 0
        Case 9 To 15: Cou = 13: Co = -7
        Case 16 To 22: Cou = 15: Co = -14
        Case 23 To 29: Cou = 17: Co = -21
        Case 30 To 36: Cou = 19: Co = -28
        Case 37 To 43: Cou = 21: Co = -35
      End Select
      .Cells(Cou, i + Co).Value = Me.Controls("TextBox" & i + Co1).Value
      .Cells(Cou - 1, i + Co).Value = Me.Controls("label" & i + 41).Caption
    Next i
  End With
End Sub

7231 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free