[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストボックスの値をセルに反映』(にに)
こんにちは。質問させて下さい。
ユーザーフォームを作成し、フォーム上にリストボックスを置いています。
そこで、リストボックスに表示されている値をセルに反映させたいと思い、フォーム上にボタンを置いて下記のコードを作成しました。
Private Sub CommandButton1_Click()
Dim i As Long Dim r As Long
r = 4 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then Cells(r, "B") = ListBox1.List(i) r = r + 1 End If Next i Cells(r, "B") = "終了" Unload UserForm1
End Sub
あらかじめA3〜B32に罫線を入れ(3行目はタイトル)、ボタンを押すと、選択している値のみをB列の4行目から反映されるようにしています。
しかし、値の数が多く32行目を超えてしまう場合があります。その場合は、3行空けた下に自動で表(罫線を書く)を作成し、値の30個目からは36行目に続きで入るようにしたいです。一つの表に29個まで値を入れられるようにし、それ以降は値の数に合わせて3行下に同じ表を作っていく、という形が理想なのですが、どのように書けば良いのかわからず困っています。申し訳ありませんがお助け願えないでしょうか。よろしくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Private Sub CommandButton1_Click() Dim i As Long Dim r As Long
r = 4
For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then Cells(r, "B") = ListBox1.List(i) r = r + IIf((r - 3) Mod 31 + 1 > 29, 4, 1) End If
Next i Cells(r, "B") = "終了" Unload UserForm1
End Sub
(半平太) 2018/03/01(木) 17:03
回答ありがとうございます。試してみたところ、3ページ目(行数でいうと68行目)からずれてしまいます。68行目から始まらなければならないところ、67行目から始まっています。2ページ目まではうまくいくのですが・・・。
(54) 2018/03/01(木) 20:38
済みません。 32周期だったですねぇ。
> r = r + IIf((r - 3) Mod 31 + 1 > 29, 4, 1) ↓ r = r + IIf((r - 3) Mod 32 + 1 > 29, 4, 1)
(半平太) 2018/03/01(木) 21:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.