http://q.hatena.ne.jp/1262665566
関数でもできるけど、VBAでやってみました。
vbastudy_28.xls
こちらをダウンロードして、開きます。
ツール→マクロ→Visual Basic Editorと開き、
罫線、右寄せも同時にやってます(^^)
プログラムはこんな感じ。
Visual Basic:
-
Sub test()
-
Dim hyouAlastgyou As Integer
-
Dim hyouAgyou As Integer
-
Dim hyouBgyou As Integer
-
-
'A列の最終行を求めます。
-
hyouAlastgyou = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
-
-
'表Bを1行目から値を入れていくとします。
-
-
hyouBgyou = 1
-
-
'A列が2行目からlastgyouまで入っているとして、
-
'それを1行ずつとっていきます。
-
-
For hyouAgyou = 2 To hyouAlastgyou
-
-
' hyouBgyou行目の8番目の列(H)に「品番」を代入します。
-
ActiveSheet.Cells(hyouBgyou, 8).Value = "品番"
-
' hyouAgyou 行目 の 1番目の列(A列)の値を、hyouBgyou行目の9番目の列(I列)に代入します。
-
ActiveSheet.Cells(hyouBgyou, 9).Value = ActiveSheet.Cells(hyouAgyou, 1).Value
-
-
'表Bを次の行に移します。
-
hyouBgyou = hyouBgyou + 1
-
-
' hyouBgyou行目の8番目の列(H)に「動物種類」を代入します。
-
ActiveSheet.Cells(hyouBgyou, 8).Value = "動物種類"
-
' hyouAgyou 行目 の 2番目の列(B列)の値を、hyouBgyou行目の9番目の列(I列)に代入します。
-
ActiveSheet.Cells(hyouBgyou, 9).Value = ActiveSheet.Cells(hyouAgyou, 2).Value
-
' hyouBgyou行目の9番目の列(I列)を右寄せにします。
-
ActiveSheet.Cells(hyouBgyou, 9).HorizontalAlignment = xlRight
-
-
'表Bを次の行に移します。
-
hyouBgyou = hyouBgyou + 1
-
-
' hyouBgyou行目の8番目の列(H)に「色」を代入します。
-
ActiveSheet.Cells(hyouBgyou, 8).Value = "色"
-
' hyouAgyou 行目 の 3番目の列(C列)の値を、hyouBgyou行目の9番目の列(I列)に代入します。
-
ActiveSheet.Cells(hyouBgyou, 9).Value = ActiveSheet.Cells(hyouAgyou, 3).Value
-
' hyouBgyou行目の9番目の列(I列)を右寄せにします。
-
ActiveSheet.Cells(hyouBgyou, 9).HorizontalAlignment = xlRight
-
-
'表Bを次の行に移します。
-
hyouBgyou = hyouBgyou + 1
-
-
' hyouBgyou行目の8番目の列(H)に「価格」を代入します。
-
ActiveSheet.Cells(hyouBgyou, 8).Value = "価格"
-
' hyouAgyou 行目 の 5番目の列(E列)の値を、hyouBgyou行目の9番目の列(I列)に代入します。
-
ActiveSheet.Cells(hyouBgyou, 9).Value = ActiveSheet.Cells(hyouAgyou, 5).Value
-
-
-
'今現在の行から3行前の8番目の列(H列)から、今の行の9番目の列(I列)の部分に罫線を引きます。
-
ActiveSheet.Range(Cells(hyouBgyou - 3, 8), Cells(hyouBgyou, 9)).Borders.LineStyle = True
-
-
'表Bを次の次の行に移します。
-
hyouBgyou = hyouBgyou + 2
-
-
'表Aを次の行に移します。
-
Next hyouAgyou
-
-
End Sub