閲覧したい項目をクリックすると表示されます。
このページで紹介しているマクロを実行したことによるトラブルについては
ページ管理者は責任を負えませんので自己の責任においてご使用ください。
| セル・シート操作系 | ||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 001.データの最終行番号を取得する
Range("A65536").End(xlUp).Row
End(xlUp)で上・End(xlDown)で下に向かってジャンプ(データのあるセルの行番号を取得)する EXCEL2003までは最大行数が65,536行のためこれを基準に取得する。
EXCEL2007以降は最大行数が1,048,576行となる。
ちなみに
EXCEL2003までの最大列数が256列で
EXCEL2007以降の最大列数は16,384列となる。 使用例
データの最終行にカーソルを移動し対象行をいちばん上に表示させる Sub test
Dim GYO As Long GYO = Range("A65536").End(xlUp).Row
ActiveWindow.ScrollRow = GYO + 1
Cells(GYO + 1,1).Select
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 002.文字色を設定する
Range("A1").Font.ColorIndex = 3
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・なお、ColorIndexに指定する色番号は次のとおり
|
||||||||||||||||||||||||||||||||||||||||||||||
| 003.文字のサイズを設定する
Range("A1").Font.Size = 10
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・指定できる値は1~409まで。
|
||||||||||||||||||||||||||||||||||||||||||||||
| 004.フォントの種類を設定する
Range("A1").Font.Name = "MS ゴシック"
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・フォント名は間違って指定した場合でもエラーとならないため正確に入力する。
・フォント名はツールバーのフォント指定ボックスに表示されているので参考にしてください。
|
||||||||||||||||||||||||||||||||||||||||||||||
| 005.セルの背景色を設定する
Range("A1").Interior.ColorIndex = 3
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・なお、ColorIndexに指定する色番号は次のとおり
|
||||||||||||||||||||||||||||||||||||||||||||||
| 006.セルのデータのみクリアする
Range("A1").ClearContents
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・データはクリアされるが書式(色・フォント等)はそのままになる。
|
||||||||||||||||||||||||||||||||||||||||||||||
| 007.セルの書式のみをクリアする
Range("A1").ClearFormats
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・書式(色・フォント等)はクリアされるがセルに入っている値はそのままになる。
|
||||||||||||||||||||||||||||||||||||||||||||||
| 008.セルのデータ・書式ともクリアする
Range("A1").Clear
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・セルはデフォルト(初期)状態に戻る。
|
||||||||||||||||||||||||||||||||||||||||||||||
| 009.セルのアドレス、行番号・列番号を取得する
相対参照形式で取得: ActiveCell.Address(False, False)
絶対参照形式で取得: ActiveCell.Address(True, True)
行番号のみを取得 : ActiveCell.Row
列番号のみを取得 : ActiveCell.Column
・セルの位置がA1の場合、相対参照形式では「A1」、絶対参照形式では「$A$1」が取得される。
・行番号は縦の番号であり、列番号は横の番号(Aなら1、Bなら2・・・)である。
使用例
セルの位置を相対参照形式にて取得しメッセージボックスに表示する Sub test
Dim Ans Ans = ActiveCell.Address(False, False)
Msgbox Ans
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 010.セルをコピーする
値のみコピー : Range("A1") = Range("B1")
値と書式をコピー: Range("A1").Copy Destination:=Range("B1")
・セルの指定はRangeの他にCells(行番号,列番号)でもよい。
・Copy→Pasteの動作では点滅枠線が残ってしまうが上記方法では表示されずスピーディ。
ちなみに点滅枠線はCopy文の後に Application.CutCopyMode = False を指定すると消える。
使用例
①セルA1の値をB1へ値のみコピーし、②A1の値と書式をC1へコピーする。 Sub test
Range("B1") = Range("A1") '・・・①
Range("A1").Copy Destination:=Range("C1") '・・・② End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 011.セルの罫線を設定する
With Range("B1:B5").Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
・Bordersの()カッコ内には罫線の種類を指定する定数が入る・・・表1
・.LineStyleには罫線のタイプを指定する定数が入る・・・表2
・Weightには罫線の太さを指定する定数が入る・・・表3
・ColorIndexには罫線の色を設定する定数(番号)が入る・・・「文字色を設定する」の項を参照
※xlAutomaticは「自動設定」(黒)を設定するときに使用する
使用例
セルB1からB5に標準サイズの罫線で枠をつける。 Sub test
With Range("B1:B5").Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Range("B1:B5").Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Range("B1:B5").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Range("B1:B5").Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 020.ワークシートを挿入してシート名をつける
Worksheets.Add
ActiveSheet.Name = "テスト"
・Worksheets.Addを実行すると新しく挿入されたシートがアクティブになる。
・"テスト"の部分に付けたい名前を指定する
|
||||||||||||||||||||||||||||||||||||||||||||||
| 021.ワークシートを削除する
Worksheets("シート名").Delete
・"シート名"の部分に削除したいシート名を指定する
・このまま使用すると「削除してもいいですか?」という確認メッセージが自動で出てしまうので
次の使用例のようにApplication.DisplayAlertsを使用し表示されないようにする
※Application.DisplayAlertsはFalseで非表示、Trueで表示となる。Falseを指定した場合は
必ずTrueで元の状態に戻すように習慣付けること
使用例
シート「テスト」を確認メッセージを表示させないで削除する Sub test
Application.DisplayAlerts = False
Worksheets("テスト").delete
Application.DisplayAlerts = True
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 022.ワークシートをコピーする
新規ブックへコピーする:
Worksheets("シート名").Copy
同じブックへコピーする:
Worksheets("シート名1").Copy After:=Worksheets("シート名2")
・"シート名"の部分にコピーしたいシート名を指定する
・Afterは指定したシートの後ろに、Beforeは指定したシートの前にコピーしたシートができる
・コピーしたシートがアクティブになる
・コピーするシートの有無、コピーしたシートの名称が既に存在しているかチェックした方がよい
使用例
シート「テスト」を同じブックのシート「計算」の後ろへコピーして新たに名前を付ける Sub test
Worksheets("テスト").Copy After:=Worksheets("計算")
ActiveSheet.Name = "集計"
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 023.ワークシートの存在を調べる
・For Eachで全ワークシートをチェックし指定した名前と一致するものがあるか調べる
・使用例を参考にすること
使用例
シート「テスト」が存在しているかどうか調べる Sub test
Dim FL As Boolean
Dim SH As Worksheet
For Each SH In Worksheets
If SH.Name = "テスト" Then FL = True
Next SH
If FL = True Then
MsgBox "「テスト」は存在します"
Else
MsgBox "「テスト」は存在しません"
End If
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 024.ワークシートを保護・保護解除する
保護する:Worksheets("シート名").Protect
保護解除:Worksheets("シート名").Unprotect
・"シート名"の部分に保護・保護解除したいシート名を指定する
・Protectに設定できる項目は下表を参照のこと
・Passwordを設定した場合、Unprotect使用時にも同じPassword項目を設定する
・保護後、特定のセルだけ編集できるようにするには、「セルの書式設定」→「保護」→
「ロック」のチェックマークをはずす
使用例
シート「テスト」をパスワードをつけ、マクロからの変更を有効にして保護する Sub test
Worksheets("テスト").Protect Password:="abc", UserInterfaceOnly:=True
MsgBox "「テスト」を保護しました"
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
| 031.行・列の表示・非表示
行番号を指定して非表示:
Rows("行番号":"行番号").EntireRow.Hidden = True
行番号を指定して表示(非表示された行の再表示):
Rows("行番号":"行番号").EntireRow.Hidden = False
列番号を指定して非表示:
Columns("列番号":"列番号").EntireColumn.Hidden = True
列番号を指定して表示(非表示された列の再表示):
Columns("列番号":"列番号").EntireColumn.Hidden = False
・行番号は数字(1,2,3・・・)、列番号はアルファベット(A,B,C・・・)を指定する。
使用例
10行目を非表示にする Sub test
Dim GYO
GYO = 10
Rows(GYO & ":" & GYO).EntireRow.Hidden = True
End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||
