| 
    
     |  | ▼りん@とおりすがり さん: ありがとうございます。
 Private Sub CommandButton1_Click()はバッチリなのですが
 
 Private Sub CommandButton2_Click()の下記の部分がうまくいきません
 Else
 Cells(r, rc2).Value = "=sumif(A" & i + 1 & ":" & rc1 & r - 1 & _
 ",""小計"",rc1" & i + 1 & ":" & rc1 & r - 1 & ")"
 ~~~~~~~~~~~~~~~~~~~
 Cells(r, 1).Value = "合計"
 問題ありますか?
 =SUMIF(A4:G5,"小計",'rc14':G5)のセルの値になってます
 >
 >>現在下記コードをユーザーフォーム上で利用しているのですが
 >>B列をたとえばD列あるいはG列というように[書式の都合で変更したい]
 >>ユーザーフォームにテキストボックスを置き簡単に列変更できませんか。?
 >>テキストボックスでいいのか悪いのかその辺もわかりません。
 >>ご指導お願いできますか。
 >オプションボタン風リストボックスで分岐するならこんな感じ。
 >
 >フォームにリストボックスをひとつ(ListBox1)追加しておいてください。
 >列分岐のリストボックスを追加します
 >
 >Private Sub UserForm_Initialize()
 >  'OptionGroupのようなリストボックスを作成
 >  Dim ldat(1 To 3, 1 To 2) As Variant
 >  '組みあわせを間違えないように気をつけて
 >  ldat(1, 1) = "B": ldat(1, 2) = 2
 >  ldat(2, 1) = "D": ldat(2, 2) = 4
 >  ldat(3, 1) = "G": ldat(3, 2) = 7
 ldat(4, 1) = "K": ldat(3, 2) = 11
 ~~~~~~~~~ 3 ,2はどういう数値を
 いれればよいでしょうか
 この数値の入れ方教授ください。例Jの場合 Lの場合???
 
 Private Sub CommandButton2_Click()
 Dim rc1 As String '列情報:文字
 Dim rc2 As Integer '列情報:番号
 rc1 = ListBox1.Text
 rc2 = ListBox1.Value
 
 With ActiveCell
 If .Column <> rc2 Or .Value <> "" Then
 MsgBox "セルの場所が不適切です"
 Exit Sub
 End If
 End With
 
 Dim i As Long
 Dim r As Long
 Dim myRes As Variant
 
 r = ActiveCell.Row
 
 myRes = MsgBox("合計を出します", vbYesNo)
 
 For i = r - 1 To 1 Step -1
 If Cells(i, 1).Value = "合計" Or Cells(i, 1).Value = "品    名" Then
 If i = r - 1 Then
 MsgBox ("計算する行がありません")
 Else
 Cells(r, rc2).Value = "=sumif(A" & i + 1 & ":" & rc1 & r - 1 & _
 ",""小計"",rc1" & i + 1 & ":" & rc1 & r - 1 & ")"
 Cells(r, 1).Value = "合計"
 End If
 i = 1
 End If
 Next
 End Sub
 >  'ldat(4, 1) = "AA": ldat(4, 2) = 27 という展開も可能
 >  'リストボックス設定
 >  With ListBox1
 >   .MultiSelect = fmMultiSelectSingle
 >   .ListStyle = fmListStyleOption
 >   .List = ldat
 >   .BoundColumn = 2
 >   .ListIndex = 0 'デフォはB
 >  End With
 >End Sub
 >
 >Private Sub CommandButton1_Click()
 >  Dim rc1 As String '列情報:文字
 >  Dim rc2 As Integer '列情報:番号
 >  rc1 = ListBox1.Text
 >  rc2 = ListBox1.Value
 >  '
 > <<以下略>>
 >
 >以下、
 >Bとしていたところを変数rc1に、
 > 例: Cells(r, 2).Value = "=sum(" & rc1 & i + 1 & ":" & rc1 & r - 1 & ")"
 >
 >2としていたところを変数rc2に訂正して試してみてください。
 > 例:  If .Column <> rc2 Or .Value <> "" Then
 
 
 |  |