| 
    
     |  | takashi さん、こんにちわ。 
 >現在下記コードをユーザーフォーム上で利用しているのですが
 >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) = "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
 
 
 |  |