名称未設

【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

バックナンバー


この記事が気に入ったらサポートをしてみませんか?