| 見出し1 | 見出し2 | 見出し3 | 見出し4 | 見出し5 |
| 内容11 | 内容12 | 内容13 | 内容14 | 内容15 |
| 内容21 | 内容22 | 内容23 | 内容24 | 内容25 |
| 内容31 | 内容32 | 内容33 | 内容34 | 内容35 |
| 内容41 | 内容42 | 内容43 | 内容44 | 内容45 |
| 内容51 | 内容52 | 内容53 | 内容54 | 内容55 |
既存のエクセル内の表に対して
A.一番上の行を見出し行と見なし,黒背景白文字ボールドセンタリングを行う
B.2行目以下について,偶数行と奇数行で背景色を交互に塗り分け
を実現
ここで,実装するべき機能は
1.選択されたセルを開始位置として,そこから表が続く限り処理を繰り返す
(表が終われば処理終了)
2.1つめのif文で1行目か否かを判別し,1行目ならばAの処理を実行
3.2つめのif文で2行目移行と判別できたら,その行が奇数行か偶数行か判別
3-1.奇数行だった場合,少し薄めの色で背景を塗る
3-2.偶数行だった場合,奇数行よりも少し濃いめの色で背景を塗る
です.
1.横方向に移動し,セルの内容を表示するプログラム
Sub ironuri1()
Do While Not (ActiveCell.Value = "")
MsgBox ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Loop
End Sub
2.縦方向に移動し,セルの内容を表示するプログラム
Sub ironuri2()
Do While Not (ActiveCell.Value = "")
MsgBox ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
End Sub
3.横方向に移動し,セルの内容を表示するプログラム+行末までたどり着いたら自動的に改行
Sub ironuri3()
Do While Not (ActiveCell.Value = "")
MsgBox ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Offset(1, 0).Select
End Sub
4.横方向に移動し,セルの内容を表示するプログラム+行末までたどり着いたら自動的に改行
+表の左端まで移動
Sub ironuri4()
Do While Not (ActiveCell.Value = "")
MsgBox ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Offset(1, -5).Select
End Sub
5.横方向に移動し,セルの内容を表示するプログラム+行末までたどり着いたら自動的に改行
+「任意の大きさの」表の左端まで移動
Sub ironuri5()
Dim i As Integer
i = 1
Do While Not (ActiveCell.Value = "")
MsgBox ActiveCell.Value
ActiveCell.Offset(0, 1).Select
i = i + 1
Loop
ActiveCell.Offset(1, (-i + 1)).Select
End Sub
6.横方向に移動し,セルの内容を表示するプログラム+行末までたどり着いたら自動的に改行
+「任意の大きさの」表の左端まで移動
+移動後の行に対しても同様の処理を行う
=任意の表の各セル全範囲を移動し,セルの内容を表示するプログラム
Sub ironuri6()
Do While Not (ActiveCell.Value = "")
Dim i As Integer
i = 1
Do While Not (ActiveCell.Value = "")
MsgBox ActiveCell.Value
ActiveCell.Offset(0, 1).Select
i = i + 1
Loop
ActiveCell.Offset(0, (-i + 1)).Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub
7.任意の表の各セル全範囲を移動し,セルの内容を表示するプログラム+行数把握
Sub ironuri7()
Dim j As Integer
j = 1
Do While Not (ActiveCell.Value = "")
Dim i As Integer
i = 1
Do While Not (ActiveCell.Value = "")
MsgBox ActiveCell.Value & ", " & j & "行目"
ActiveCell.Offset(0, 1).Select
i = i + 1
Loop
ActiveCell.Offset(0, (-i + 1)).Select
ActiveCell.Offset(1, 0).Select
j = j + 1
Loop
End Sub
8.任意の表の各セル全範囲を移動し,セルの内容を表示するプログラム+行数把握
+1行目とその他の行で処理分岐
Sub ironuri8()
Dim j As Integer
j = 1
Do While Not (ActiveCell.Value = "")
Dim i As Integer
i = 1
Do While Not (ActiveCell.Value = "")
If j = 1 Then
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行です)"
Else
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行ではありません)"
End If
ActiveCell.Offset(0, 1).Select
i = i + 1
Loop
ActiveCell.Offset(0, (-i + 1)).Select
ActiveCell.Offset(1, 0).Select
j = j + 1
Loop
End Sub
9.任意の表の各セル全範囲を移動し,セルの内容を表示するプログラム+行数把握
+1行目とその他の行で処理分岐
+2行目以降の奇数行・偶数行で処理分岐
Sub ironuri9()
Dim j As Integer
j = 1
Do While Not (ActiveCell.Value = "")
Dim i As Integer
i = 1
Do While Not (ActiveCell.Value = "")
If j = 1 Then
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行です)"
Else
If (j Mod 2) = 1 Then
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行ではありません)(奇数行)"
Else
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行ではありません)(偶数行)"
End If
End If
ActiveCell.Offset(0, 1).Select
i = i + 1
Loop
ActiveCell.Offset(0, (-i + 1)).Select
ActiveCell.Offset(1, 0).Select
j = j + 1
Loop
End Sub
10.任意の表の各セル全範囲を移動し,セルの内容を表示するプログラム+行数把握
+1行目とその他の行で処理分岐
+2行目以降の奇数行・偶数行で処理分岐
+各行にあわせた処理を記述
Sub ironuri10()
Dim j As Integer
j = 1
Do While Not (ActiveCell.Value = "")
Dim i As Integer
i = 1
Do While Not (ActiveCell.Value = "")
If j = 1 Then
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行です)"
ActiveCell.Font.Bold = True
ActiveCell.Font.ColorIndex = 2
ActiveCell.Interior.ColorIndex = 1
Else
If (j Mod 2) = 1 Then
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行ではありません)(奇数行)"
ActiveCell.Interior.ColorIndex = 15
ActiveCell.BorderAround ColorIndex:=1
Else
MsgBox ActiveCell.Value & ", " & j & "行目(見出し行ではありません)(偶数行)"
ActiveCell.Interior.ColorIndex = 48
ActiveCell.BorderAround ColorIndex:=1
End If
End If
ActiveCell.Offset(0, 1).Select
i = i + 1
Loop
ActiveCell.Offset(0, (-i + 1)).Select
ActiveCell.Offset(1, 0).Select
j = j + 1
Loop
End Sub