(1)ワークシートに名前をつける
プログラム例8-1: Nameを用いることで,ワークシートの名の設定や取得ができる.ここでは,2番目のワークシートの名を「グラフ」に変更するプログラムを作成する.
(2)ワークシートを移動する
プログラム例8-2: Moveを用いることで,ワークシートを移動することができる.ここでは,1番目のワークシートを2番目のワークシートの後ろに移動するプログラムを作成する.
(3)ワークシートを追加する
プログラム例8-3: Addを用いることで,ワークシートを追加することができる.ここでは,2番目のワークシートの前に追加するプログラムを作成する.
(4)ワークシートをコピーする
プログラム例8-4: Copyを用いることでワークシートをコピーすることができる.ここでは,2番目のワークシートを2番目のワークシートの前にコピーするプログラムを作成する.
(5)ワークシートを削除する
プログラム例8-5: Deleteを用いることで,ワークシートを削除することができる.ここでは,2番目のワークシートを削除するプログラムを作成する.
(6)アクティブなワークシートの指定
プログラム例8-6: ワークシートを選択する場合,Activateを利用する.ここでは,2番目のワークシート"Sheet2"を選択し,そのシート上のセルA1に123と表示するプログラムを作成する.
①「1-5節(1)」 の①~⑩の手順でコマンドボタンを作成し,コードウィンドウを表示する.
②(プログラム例8-6 )を入力する.
③ Excel表示ボタンでシートを表示し,デザインモードを解除する.
④ コマンドボタンをクリックすると,以下のように解析結果が表示される.
(プログラム例8-6)
Private Sub CommandButton1_Click()
Worksheets("Sheet2").Activate
ActiveSheet.Range("A1").Value = 123
End Sub
(プログラム例8-6の結果)
(注)このプログラム例は,Sheet1とSheet2,Sheet3がすでに表示されている場合の例である.Sheeet3はなくても処理可能である.
プログラム例8-6 において,単純に
Range("A1").value = 123
としても,"Sheet2"のセルA1に123は表示されない.現在選択されたワークシートに表示するためには,
プログラム例8-6 のように,Rangeの前にActiveSheet.を付けることで,選択されたワークシートに表示される.これは,
図8-1 に示すように,マクロが"Sheet1"に対して設定されているためである.
図8-1
特定のワークシート,例えば,"Sheet2"に表示したい場合は以下のようにワークシートを指定すればよい.
Worksheets("Sheet2").Range("A1").value = 123
もし複数の命令をまとめて処理したい場合は, With~End Withの構文を利用するとよい.
プログラム例8-7: ワークシート"Sheet2"のセルA1に123,B1にabcを表示するプログラムを作成する.
①「1-5節(1)」 の①~⑩の手順でコマンドボタンを作成し,コードウィンドウを表示する.
②(プログラム例8-7 )を入力する.
③ Excel表示ボタンでシートを表示し,デザインモードを解除する.
④ コマンドボタンをクリックすると,以下のように解析結果が表示される.
(プログラム例8-7)
Private Sub CommandButton1_Click()
With Sheets("Sheet2")
.Range("A1").Value = 123
.Range("B1").value = "abc"
End With
End Sub
(プログラム例8-7の結果)
(注)このプログラム例は,Sheet1とSheet2,Sheet3がすでに表示されている場合の例である.Sheeet3はなくても処理可能である.
(1)枠線の表示・非表示
Excelのシートは通常,
図8-2(a) のように枠線が表示されている.DisplayGridlinesを用いることで,これを
図8-2(b) のように表示しないようにすることができる.
(a) 枠線あり (b) 枠線無し
図8-2
プログラム例8-8: ActiveWindow.DisplayGridlinesの値をFalseとして,枠線を表示しないようにするプログラムを作成する.
(2)行列番号の表示・非表示
ActiveWindow.DisplayHeadingsを用いることで,行の番号と列の英字を表示しないようにすることができる.
プログラム例8-9: ActiveWindow.DisplayHeadingsの値をFalseとして,行番号を表示しないようにするプログラムを作成する.
(3)スクロールバーの表示・非表示
下記の命令を用いることで,水平および垂直方向のスクロールバーの表示・非表示をコントロールすることができる.これらの値をFalseとすれば非表示,Trueとすれば表示することができる.
(水平バー)ActiveWindow.DisplayHorizontalScrollBar
(垂直バー)ActiveWindow.DisplayVerticalScrollBar
(4)数式・ステータス・タスクバーの表示・非表示
上記以外にも,下記の命令を用いて様々なバーを表示したり,非表示にすることができる.これらの値をFalseとすれば非表示,Trueとすれば表示することができる.
(数式バー) Application.DisplayFormulaBar
(ステータスバー) Application.DisplayStatusBar
(タスクバー) Application.ShowWindowsInTaskbar
(1)セルの挿入と削除
Insert Shift:=でセルの挿入を,Delete Shift:=でセルの削除を行うことができる.
プログラム例8-10: セルA2とB2を挿入し,旧セルの値を右にシフトさせるプログラムを作成する.
プログラム例8-10 は挿入の例であるが,削除の場合は,Insert Shift:=のかわりにDelete Shift:=を用いる.このとき,値をxlShiftToLeftとすることで左方向にシフト,xlShifToUpで上方向にシフトさせることができる.
(2)セルの結合・解除除
MergeCellsを用いることで,セルの結合,解除をすることができる.
プログラム例8-11: セルA2~C2を結合するプログラムを作成する.
(3)行の高さと列の幅の設定
Rangeに対するRowHeightやColumnWidthを指定することで,行の高さや列の幅を指定することができる.
プログラム例8-12: セルB2の高さを20ポイントに,列の幅を標準フォントの30文字分に設定するプログラムを作成する.
このように,セルB2のサイズだけが変更になるのではなく,高さを変更した場合には,該当行全てのセルの高さが変更され,また,列の幅を変更した場合は,該当列全てのセル幅が変更される.なお,各行の最大の行の高さは 409 ポイント (1 ポイントは約 0.35 mm) ,各セルの最大の列の幅は 255 文字である.この値は,標準フォント(標準フォント : ワークシートの文字に標準で設定されるフォント)の書式が適用されたセルに表示できる文字数を表す.
なお,Rangeの代わりにCellsを用いて指定することもできる.行と列を指定せず,単純にCellsとした場合は,すべてのセルに対して適用される.
(4)セルの罫線の描画
Rangeに対してBorders()を指定することで,罫線を設定することができる.( )内には
表8-1 の値を設定することができる.
表8-1 罫線の位置
設 定 内 容
xlEdgeTop 上側
xlEdgeBottom 下側
xlEdgeLeft 左側
xlEdgeRight 右側
xlInsideHorizontal 内側の縦線
xlInsideVertical 内側の横線
xlDiagonalUp 右上がりの斜線包含
xlDiagonalDown 右下がりの斜線包含
また,下記の値を指定することで,先の書式を指定することができる.
1)LineStyleで罫線の種類を設定できる.罫線の種類として,表8-2 に示すものが利用できる.
表8-2 罫線の種類
設 定 内 容
xlContinuous 実線
xlDash 破線
xlDashDot 一点鎖線
xlDashDotDot 二点鎖線
xlDot 点線
xlDouble 二重線
xlSlanDashDot 斜め破線
xlLineStyleNone なし
2)Weightで罫線の太さを設定できる.指定できる太さは,xlHairline(極細線),xlThin(細線),xlMedium(中太線),xlThick(太線)の4種類である.
3)ColorIndexもしくはColorを用いて罫線に色を指定することができる.ColorIndexは色の番号を,ColorはRGBの値を指定する.以下は青色を指定した例である.
Range("A2:C2").Borders(xlEdgeTop).ColorIndex = 5
Range("A2:C2").Borders(xlEdgeTop).Color = RGB(0, 0, 255)
プログラム例8-13: A列~C列の2行目の上側の枠線を波線,中太,青色の罫線で引くプログラムを作成する.
①「1-5節(1)」 の①~⑩の手順でコマンドボタンを作成し,コードウィンドウを表示する.
②(プログラム例8-13 )を入力する.
③ Excel表示ボタンでシートを表示し,デザインモードを解除する.
④ コマンドボタンをクリックすると,以下のように解析結果が表示される.
(プログラム例8-13)
Private Sub CommandButton1_Click()
With Range("A2:C2").Borders(xlEdgeTop)
.LineStyle = xlDash
.Weight = xlMedium
.ColorIndex = 5
End With
End Sub
(プログラム例8-13の結果)
プログラム例8-14: BordersAroundを用いてセル範囲の周辺に罫線を引くプログラムを作成する.
①「1-5節(1)」 の①~⑩の手順でコマンドボタンを作成し,コードウィンドウを表示する.
②(プログラム例8-14 )を入力する.
③ Excel表示ボタンでシートを表示し,デザインモードを解除する.
④ コマンドボタンをクリックすると,以下のように解析結果が表示される.
(プログラム例8-14)
Private Sub CommandButton1_Click()
Range("B2:C3").BorderAround _
LineStyle:=xlDash, _
Weight:=xlMedium, _
ColorIndex:=5
End Sub
(プログラム例8-14の結果)
(5)セル内のフォントの書式の設定
セル内の文字に対する書式指定のために
Font が用いられる.以下代表的な書式の例を示す.
Font.Name フォント名を設定
Font.Size フォントサイズを設定
Font.FontStyle フォントスタイルを設定
Font.Superscript 上付き文字を設定(True:設定 False:設定しない)
Font.Subscript 下付き文字を設定(True:設定 False:設定しない)
プログラム例8-15: セルA1とB1の文字に対する書式として,MSゴシック,14ポイント,太字,青色の設定を行うプログラムを作成する.
①「1-5節(1)」 の①~⑩の手順でコマンドボタンを作成し,コードウィンドウを表示する.
②(プログラム例8-15 )を入力する.
③ Excel表示ボタンでシートを表示し,デザインモードを解除する.
④ コマンドボタンをクリックすると,以下のように解析結果が表示される.
(プログラム例8-15)
Private Sub CommandButton1_Click()
With Range("A1:B1")
.Font.Name = "MS ゴシック"
.Font.Size = 14
.Font.FontStyle = "太字"
.Font.ColorIndex = 5
End With
Range("A1").Value = "漢字"
Range("B1").Value = 123
End Sub
(プログラム例8-15の結果)
(6)セル内の文字列の配置
セル内の文字列に対する水平方向と鉛直方向の配置を指定する場合,それぞれ,HorizontalAlignmentとVerticalAlignmentを用いる.使用方法は以下の通りである.
Range("A1").HorizontalAlignment = xlHAlignCenter
Range("A1").VerticalAlignment = xlVAlignTop
それぞれの配置として,表8-3 と表8-4 に示す値を指定することができる.
表8-3 HorizontalAlignmentの設定内容
設 定 内 容
xlHAlignCente 中央揃え
xlHAlignCenterAcrossSelection 選択範囲内で中央
xlHAlignDistributed 均等割り付け
xlHAlignFill 繰り返し
xlHAlignGeneral 標準
xlHAlignJustify 両端揃え
xlHAlignLeft 左詰め
xlHAlignRight 右詰め
表8-4 VerticalAlignmentの設定内容
設 定 内 容
xlVAlignBottom 下詰め
xlVAlignCenter 中央揃え
xlVAlignDistributed 均等割り付け
xlVAlignJustify 両端揃え
xlVAlignTop 上揃え
プログラム例8-16: セルA1の文字を水平方向「中央揃え」,鉛直方向「中央揃え」で表示するプログラムを作成する.
①「1-5節(1)」 の①~⑩の手順でコマンドボタンを作成し,コードウィンドウを表示する.
②(プログラム例8-16 )を入力する.
③ Excel表示ボタンでシートを表示し,デザインモードを解除する.
④ コマンドボタンをクリックすると,以下のように解析結果が表示される.
(プログラム例8-16)
Private Sub CommandButton1_Click()
Range("A1").HorizontalAlignment = xlHAlignCenter
Range("A1").VerticalAlignment = xlVAlignTop
Range("A1").Value = "漢字"
End Sub
(プログラム例8-16の結果)
(7)セルのロック
セル内の文字列を以下の方法で,ロックしたり解除することができる.
(ロックする) Range("A1").Locked = True
(ロック解除) Range("A1").Locked = False