こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBA コードをスマートに

EXCEL VBAのフォームで、
テキストボックスの値をあらかじめTextBox1に入力しておくコードを
書いてみました。

Private Sub UserForm_Initialize()
TextBox1.Value = Cells(4, 1) & Cells(4, 3) & Cells(4, 5) & Cells(4, 7) & Cells(6, 1) & Cells(6, 3) & Cells(6, 5) & Cells(6, 7)Cells(8, 1) & Cells(8, 3) & Cells(8, 5) & Cells(8, 7).Value
End Sub

実際はもっと長いです・・・
どうしたら、スマートに記述できますか?
お知恵をお貸しください!!!

投稿日時 - 2009-11-10 17:46:06

QNo.5437057

困ってます

質問者が選んだベストアンサー

こんにちは。

こういうことでしょうか?

Private Sub UserForm_Initialize()
Dim buf As String
For i = 4 To 8 Step 2
 For j = 1 To 7 Step 2
 buf = buf & Cells(i, j).Value
 Next j
Next i
TextBox1.Value = buf
End Sub

投稿日時 - 2009-11-10 18:09:47

お礼

完璧です!!!
なるほど・・・そうやって組むのですね。
勉強になります。
有難うございました。

投稿日時 - 2009-11-10 18:37:12

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

規則的ならループでまわせばいいかと思います。

4, 6, 8・・・

(n + 1) * 2
で表現できますし、

1, 3, 5, 7・・・

n * 2 - 1
で表現できます。

投稿日時 - 2009-11-10 18:00:32

お礼

そのループをどうやって表現すればよいか、わかりません。。
有難うございます。

投稿日時 - 2009-11-10 18:37:49

あなたにオススメの質問