![名称未設](https://assets.st-note.com/production/uploads/images/8977193/rectangle_large_type_2_a1799668c04f5d74a31146ef66b1ab64.jpg?width=1200)
【ExcelVBA公開模試】1列に並んでいるデータを4列にする
文法を無視して、とりあえず動けばいいという邪道ExcelVBA講座こと「速読VBA単語」に準拠した問題を出題します。
問題
A1:A100に適当な文字列が入っています(図1)。図は、数字・アルファベットになっていますが、どんな文字列でも構いません。
C2:D26,F2:G26の4列に100個のデータを並べようとしています。
ExcelVBAを用いて次の指示に従ってそれぞれ並べなさい。
(1)図2のように縦向きに並べなさい。
(2)図3のように横向きに並べなさい。
<図1>
<図2:設問(1)完成イメージ>
<図3:設問(2)完成イメージ>
わえなび式 正解例
(このページの下にあります)
目標回答時間
プロ1分以内、アマチュア10分以内に処理ができたら合格
この問題の出題範囲
「速読VBA単語」Program3-2まで
ご案内
ExcelVBAをなんとなく理解できればいいという初心者のための「速読VBA単語」を受講希望の方はカリキュラムをご覧ください。
考え方
いきなり完成させようとせず、最初の列(C列)だけを完成させます。上手くいったらこれをコピーして増やします。
Sub kakko1()
For i = 2 To 26
Cells(i, 3) = Cells(i - 1, 1)
Next
End Sub
Sub kakko2()
For i = 2 To 26
Cells(i, 3) = Cells(i * 4 - 7, 1)
Next
End Sub
正解例
「i-1+25」は「i+24」としてもよいですが、可読性重視でそのままにしています。kakko1とkakko2を交互に実行すると、瞬時に並び変わります。
Sub kakko1()
For i = 2 To 26
Cells(i, 3) = Cells(i - 1, 1)
Cells(i, 4) = Cells(i - 1 + 25, 1)
Cells(i, 6) = Cells(i - 1 + 50, 1)
Cells(i, 7) = Cells(i - 1 + 75, 1)
Next
End Sub
Sub kakko2()
For i = 2 To 26
Cells(i, 3) = Cells(i * 4 - 7, 1)
Cells(i, 4) = Cells(i * 4 - 6, 1)
Cells(i, 6) = Cells(i * 4 - 5, 1)
Cells(i, 7) = Cells(i * 4 - 4, 1)
Next
End Sub
バックナンバー
この記事が気に入ったらサポートをしてみませんか?