|
▼りん@とおりすがり さん:
ありがとうございます。
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
|
|