無料アプリで、すぐに、エクセルVBAマクロを作成できます。
例として、「カレンダー形式のデータを、リスト形式にする 」VBAマクロを作成します。
(ページの末尾に、VBAコード掲載)
事例
カレンダー形式の、左上の値(赤枠の部分)を基準に、データをリスト化します。
右側のリストに、カレンダーのデータを転記しました。(^^)/
アプリの設定
アプリの設定です。
アプリのトップページ
⇒▼表形式の変換
⇒リスト形式へ
⇒【ツール】カレンダー形式のデータを、リスト形式にする
【ポイント】
■ カレンダーとリストの書式(日にち、時間)は、事前に揃えます。
■ 「カレンダーの日にちの部分」とは、下記の赤枠の部分です。
なお、下の表示されるコードの「塊」も、下記の赤枠部分です。
■ 「カレンダーの、見出し行の、左上以外」とは、下記の赤枠の部分です。
![]()
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
Sub デモ_88() 'カレンダー形式のデータを、リスト形式にする
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止Dim リスト As Variant, 塊 As Long, 対象行 As Long, 対象列 As Long, 行 As Long
'◆リストの空の配列を作成
ReDim リスト(1 To (5 - 1) * (8 / 4) * (10 / 5), 1 To 4 + 1)
'◆各塊の右上セルの取得を繰り返す
塊 = 0
行 = 1
For 対象行 = 0 To 10 - 1 Step 5
For 対象列 = 0 To 8 - 1 Step 4
Call リスト形式にする(リスト, 塊, 対象行, 対象列, 行)
塊 = 塊 + 1
Next 対象列
Next 対象行
'◆リストを出力
Worksheets("Sheet1").Select
Range("j2").Resize((5 - 1) * (8 / 4) * (10 / 5), 4 + 1) = リスト
Application.DisplayAlerts = True ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
Sub リスト形式にする(リスト As Variant, 塊 As Long, 対象行 As Long, 対象列 As Long, 行 As Long)
Dim 配列 As Variant, 縦 As Long, 横 As Long
'◆塊を2次元配列に格納
配列 = Worksheets("Sheet1").Range("a1").Offset(対象行, 対象列).Resize(5, 4).Value
'◆配列をリストに格納
For 縦 = 1 To 5 - 1
For 横 = 1 To 4
If 配列(縦 + 1, 横) <> "" Then GoTo 書き込み
Next 横
GoTo 書き込みなし
書き込み:
For 横 = 1 To 4
リスト(行, 1) = 配列(1, 1)
リスト(行, 1 + 横) = 配列(縦 + 1, 横)
Next 横
行 = 行 + 1
書き込みなし:
Next 縦
End Sub
マクロを使うメリット
手作業で数分かかる作業が、1秒で終わります。
ぜひ、アプリをご利用ください。