質問: 最終列を取得するにはどのようにコードを記述すべきかご教授下さい
回答: こちらを参考にして下さい。 貴殿の上げたプログラムは駄目です。 For I = 2 To Sheets(2).Range("B2").End(xlToRight).Column If Sheets(2).Range(I & 2).Value = "" Then i は数字なので i & 2 = "22" になり、エラーになります。 >シート1のセルB2〜B10まで入ってる文字をシート2のセルB2〜B10に移す。B2が埋まってた場合、C2〜C10に入るようにする場合 3例つ上げます。 Macro1は途中空白があっても無視して1番右に転記します。普通はこの様にします。 Macro2、Macro3は途中空白を探してそこに転記します。ループを使う例と使わない例です。 一々、Sheet(1)を書くのは面倒なので、変数にしました。 Option Explicit ' Sub Macro1() Dim I As Worksheet Dim O As Worksheet Dim Colu As Integer ' Set I = Sheets(1) Set O = Sheets(2) Colu = O.Cells(2, Columns.Count).End(xlToLeft).Column O.[A2:A10].Offset(, Colu) = I.[B2:B10].Value End Sub ' Sub Macro2() Dim I As Worksheet Dim O As Worksheet Dim Colu As Integer ' Set I = Sheets(1) Set O = Sheets(2) ' For Colu = 2 To O.Cells(2, Columns.Count).End(xlToLeft).Column + 1 ' If O.Cells(2, Colu) = "" Then O.Cells(2, Colu).Resize(9) = I.[B2:B10].Value Exit For End If Next Colu End Sub ' Sub Macro3() Dim I As Worksheet Dim O As Worksheet Dim Colu As Integer ' Set I = Sheets(1) Set O = Sheets(2) ' If O.[B2] = "" Then Colu = 1 ElseIf O.[C2] = "" Then Colu = 2 Else Colu = [B2].End(xlToRight).Column End If O.[A2:A10].Offset(, Colu) = I.[B2:B10].Value End Sub