ねこになりたい

おふとんと朝の別れをするのが辛い人向けです。正論で殴らず見守ってあげてください。

Excelマクロ覚書 ~データ入力・編集編~

図書館で借りてきた某書籍の覚書です。

 

 


【表全体を選択する】

アクティブなセル領域を取得すれば表全体が取得できるので、
CurrentRegionプロパティを使う。

Rangeオブジェクト.CurrentRegion

Range("A3").CurrentRegion.Select
Selection.Borders.LineStyle = xlContinuous

【取得するセル範囲を変更する】

アクティブなセル領域を取得した後で、セル範囲の大きさを変更する。
セル範囲の大きさを変更するにはResizeプロパティを使う。

元のセル範囲.Resize(行数, 列数)

Range("A3").CurrentRegion.Resize(1).Interior.Color = RGB(0, 255, 255)

【新たな入力セルを選択する】

指定した方向の末端のセルを取得したい場合、Endプロパティを使う。

基準となるセル.End(方向)

末端のセル+1で新規入力用のセルが取得できる。
指定した位置から、移動した範囲を取得するにはOffsetプロパティを使う。

基準となるセル.Offset(方向)

※移動先の方向

xlDown :舌へ
xlToLeft :左へ
xlToRight :右へ
xlUp :上へ
Range("A3").End(xlDown).Offset(1).Select  'セルA3から下方向に移動し、Offsetプロパティで1行下のセルを取得する'

【セルにフリガナを設定する】

フリガナを設定するには、SetPhoneticプロパティを使う。

Rangeオブジェクト.SetPhonetic

フリガナに設定されているテキストを取得・設定するにはTextプロパティを使う。

Phoneticオブジェクト.Text

フリガナに関する情報を取得するにはPhoneticプロパティを使う。

Rangeオブジェクト.Phonetic

Dim i As Long

i = 4
Do Until Range("B" & i).Value = "" 'B列が空欄になるまで処理を続行'
Range("B" & i).SetPhonetic 'B列の値にフリガナを設定する'
Range("C" & i).Value = Range("B" & i).Phonetic.Text 'C列にB列に設定したフリガナを入力する'
i = i + 1
Loop

ハイパーリンクを設定する】

ハイパーリンクを取得するには、Hyperlinksプロパティを使う。

Worksheetオブジェクト.Hyperlinks

ハイパーリンクを追加するには、Addメソッドを使う。

Hyperlinksオブジェクト.Add Andhor:= 対象セル, Address:= アドレス, SubAddress:= サブアドレス, TextToDisplay:= 表示テキスト

Dim i As Long

i = 4
Do Until Range("B" & i).Value = "" 'B列が空欄になるまで処理を続行'
Worksheets("目次").Hyperlinks.Add _ 'ワークシート「目次」にハイパーリンクを設定'
Anchor:=Range("B" & i) _ 'B列にハイパーリンクを設定'
, Address:=Range("B" & i).Value & "!A1" '実際にリンクするリンク先を各月のワークシートのセルA1にする'
i = i + 1
Loop

【独自のリストを作成する】

独自のリストを作成するには、AddCustomListプロパティを使う。

Applicationオブジェクト.AddCustomList ListArray:=設定するリスト

Application.AddCustomList ListArray:=Range("D2:D4")           'ユーザーリストに、セルE2~E4のデータを設定する'

【連続するデータを設定する】

児童で連番を振るには、AutoFillプロパティを使う。

Rangeオブジェクト.AutoFill Destination:=セル範囲, Type:= オートフィルの種類

※オートフィルの種類

xlFillCopy

:【セルのコピー】値と形式をコピーする

xlFillSeries :【連続データ】値(連番)をコピーする
xlFillFormats :【書式のみコピー(フィル)】書式のみをコピーする
xlFillValues :【書式なしコピー(フィル)】値のみをコピーする
xlFillDays :【連続データ(日単位)】日単位でコピーする
xlFillWeekDays :【連続データ(週日単位)】週日単位でコピーする
xlFillMonths :【連続データ(月単位)】月単位でコピーする
xlFillYears :【連続データ(年単位)】年単位でコピーする
xlLinearTrend :【連続データ(加算)】連続データを加算してコピーする
xlGrowthTrend :【連続データ(乗算)】連続データを乗算してコピーする
xlFillDefault :【連続データ】規定値を指定してコピーする
Range("A2").AutoFill Destination:=Range("A3:A8")  'セルA2の値を基準に、セルA3~A8の範囲に連続データでオートフィルを行う'

【リストで入力する】

入力規則の設定をするには、Validationプロパティを使う。

Rangeオブジェクト.Validation

入力規則を追加するには、Addプロパティを使う。

Validationオブジェクト.Add Type:= 入力用の種類, Formula1:=入力する値

入力規則を削除するには、Deleteプロパティを使う。

Validationオブジェクト.Delete

※オートフィルの種類

xlValidateCustom

:ユーザ設定

xlInputOnly :すべての値
xlValidateList :リスト
xlValidateWholeNumber :整数
xlValidateDate :日付
xlValidateDecimal :小数点数
xlValidateTextLength :文字列(長さ指定)
xlValidateTime :時刻
Range("B4:C8").Validation.Add _             '入力規則を設定'
Type:=xlValidateList _ '入力用の種類にリストを設定'
, Formula1:="川崎支店, 盛岡支点, 仙台支店" '入力する値を設定'

【文字列の一部を取得する】

左側から指定した文字数だけ取得するには、Leftプロパティを使う。

Left(対象のデータ, 文字数)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Len(Range("B" & i).Value, 2) 'C列(「姓」欄)に、B列のデータのうち左から2文字分のデータを入力'
  i = i + 1
Loop

指定した位置から指定した文字数だけ取得するには、Mid関数を使う。

Mid(文字列, 開始位置, 文字数)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Mid(Range("B" & i).Value, 4, 3) 'C列(「姓」欄)に、B列のデータのうち4文字目から3文字目までのデータを入力'
  i = i + 1
Loop

【全角のカタカナに統一する】

文字列を指定した形式に変換するには、StrConv関数を使う。

StrConv(文字列,変換方法)

※変換方法の種類

xlUpperCase

:文字列を大文字に変換

xlLowerCase :文字列を小文字に変換
xlProperCase :文字列の各単語の先頭の文字を大文字に変換
xlWide :文字列内の半角文字を全角文字に変換
xlNarrow :文字列内の全角文字を半角文字に変換
xlKatakana :文字列内のひらがなをカタカナに変換
xlHiragana :文字列内のカタカナを平仮名に変換
xlUnicode :文字列をUnicodeに変換
Dim i As Long

i = 4
Do Until Range("B"& i).Value = "" 'C列のデータが空欄になるまで処理を繰り返す'
Range("C" & i).Value = _ ''
StrConv(Range("C" & i).Value, vbWide) 'C列のデータを、全角に変換したデータで置き換える'
  i = i + 1
Loop

【アルファベットを大文字に統一する】

指定した文字を大文字に変換するには、Ucase関数を使う。

Ucase(文字列)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Range("B" & i).Value = Ucase(Range("B" & i).Value) 'B列のデータを大文字に変換したデータで置き換える'
  i = i + 1
Loop

【バラバラに入力された文字を結合する】

文字列を連結するには、&演算子を使う。

文字列1 & 文字列2

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Range("D" & i).Value = Range("B" & i).Value & Range("C" & i).Value 'D列のデータをB列とC列のデータを結合した文字で入力する'
  i = i + 1
Loop

【空白の半角/全角を統一する】

指定した文字を、指定した文字に置き換えるにはReplace関数を使う。

Replace(対象, 検索文字, 置換文字)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Range("D" & i).Value = Replace(Range("B" & i).Value, " ", " ") 'B列の半角スペースを全角スペースに置き換える'
  i = i + 1
Loop

Excelマクロ覚書 ~エラー処理編~

図書館で借りてきた某書籍の覚書です。

 

 


【エラーが発生したときの処理を追加する】

想定外のことがあっても処理を続けたい場合は、On Error Resume Nextステートメントを使う。
On Error Resume Nextステートメントを使うことで、エラー発生時には直下の処理を無視して次の行の処理を行う。

On Error Resume Next

Dim Sum As Long
Dim i As Long

On Error Resume Next 'エラーが発生したら、Forステートメント以下を無視する'
For i = 4 To 15 Sum = Sum + Range("F" & i).Value Next MsgBox "合計額:" & Sum End If

指定した位置に処理を移す場合は、On Error GoToステートメントを使う。

On Error GoTo 行ラベル
      処理
   エラー発生箇所
    Exit Sub

行ラベル:
    エラー処理ルーチン

Dim Sum As Long
Dim i As Long

On Error GoTo ErrCd1 'エラーが発生したら、ErrCd1に処理を移す'
For i = 4 To 15 Sum = Sum + Range("F" & i).Value Next MsgBox "合計額:" & Sum Exit Sub

ErrCd1:
MsgBox "数値以外のデータが入力されています。処理を終了します。"

エラー発生時に、エラー内容に応じた処理を適用させる場合、Errプロパティを使う。
Numberプロパティでエラー番号を取得する。

Err.Number

Dim Sum As Long
Dim i As Long

On Error GoTo ErrCd1 'エラーが発生したら、ErrCd1に処理を移す'
For i = 4 To 15 Sum = Sum + Range("F" & i).Value Next MsgBox "合計額:" & Sum Exit Sub

ErrCd1

Select Case Err.Number
Case 11
Range("E" & i).Value = "0です。"
Case 13
Range("E" & i).Value = "数値を入力"
End Select
Resume Next

【コードを簡略化する】

処理をまとめる場合は、Withステートメントを使う。

With 対象
         .処理1
         .処理2
End With

With Range("A3:G3")
.Interior.Color = RGB(0, 255, 255)
          .Font.Name = "MS Pゴシック"
        .Font.Size = 14

        .Font.Bold = True
        .Font.Italic = True
        .Borders(xlEdgeBottom).LineStyle = xlDouble

End With

Excelマクロ覚書 ~条件分岐編~

図書館で借りてきた某書籍の覚書です。

 

 


【条件を満たすときに処理を行う】

処理によって条件を分けるときはIfステートメントを使う。
入れ子にすることもできるので、複数の条件分岐も可能。
Endの後にIfを書き忘れないよう注意。

If 条件式 Then
   処理1
Else
   処理2
End If


If Range("G4").Value >= 70 Then  'G4セルが70以上なら'
MsgBox "合格"         '「合格」と表示' Else              'それ以外なら' MsgBox "不合格"       '「不合格」と表示' End If

 

【条件を満たすときに処理を分岐する】

複数の分岐条件が必要な場合は、ElseIf以下に条件を記述できる。

If 条件式 Then
   処理1
ElseIf
   処理2

Else
   処理3
End If


If Range("G4").Value >= 70 Then    'G4セルが70以上なら'
MsgBox "合格"             '「合格」と表示'
ElseIf Range("G4").Value >= 50 Then  'G4セルが50以上なら'
          MsgBox "再試"        '「再試」と表示'
      Else MsgBox "不合格"           '「不合格」と表示' End If

 

【条件を満たすときに処理を分岐する2】

固定値に応じた処理を分岐する場合は、Select Caseステートメントを使う。

Select Case 条件判断の対象
Case 条件式
   処理1

Case 条件式
   処理2
Case Else
   処理3


Dim Age As Long
Age = Range("C4")
Select Case age
Case age >=30    'G4セルが30以上なら'
MsgBox "30代"
Case age >=20    'G4セルが20以上なら'
MsgBox "20代"
Case Else
MsgBox "その他"
      End Select

 

【条件が成立している間は処理を繰り返す】

条件が成立している間だけ繰り返す場合は、Forステートメントを使う。

for カウンタ変数 = 初期値 To 終了値
 繰り返す処理

Next


Dim i As Long
im Sum As Long
For i = 4 To 8
Sum = Sum + Range("C" & i) .Value
Next
MsgBox "合計額:" & Sum

 処理を強制的に抜ける場合はExitステートメントを使う。

Exit 処理対象


Dim i As Long
im Sum As Long

For i = 4 To 8
If Range("C"&i).Value = "" Then
MsgBox "セルC" & i"のデータが入力されていません
Exit Sub
End Sub Sum = Sum + Range("C" & i) .Value Next MsgBox "合計額:" & Sum

 

【指定した回数だけ同じ処理を繰り返す】

処理を指定した分だけ繰り返す場合は、Do Loopステートメントを使う。

Do While 条件式
      繰り返す処理
Loop


Dim i As Long
im Sum As Long
i = 4
      Do While Range("C" & i).Value <> ""  'G列が空欄ではない間' Sum = Sum + Range("C" & i),Value       '合計額にCの値を加算' Loop                     'ループ処理' MsgBox "合計額:" & Sum

 

【条件が成立するまで処理を繰り返す】

条件が成立するまで処理を繰り返すには、Do Loopステートメントを使う。

Do Until 条件式
      繰り返す処理
Loop


Dim i As Long
Dim Sum As Long
i = 4 Do Until Range("C" & i).Value = "" 'C列が空欄になるまで処理を繰り返す'
Sum = Sum + Range("C" & i).Value     'Cに値を加算'
i = i + 1                '次のセルに移動'
Loop                   '処理をループする'
MsgBox "合計金額:"& Sum

 

【オブジェクトに対して処理を繰り返す】

全てのワークシートに処理を適用させるなど、オブジェクト単位で繰り返し処理を行う場合はFor Each Nextステートメントを使う。

For Each 要素変数 In 対象
      繰り返す処理
Next


Dim i As Long
Dim wK As Worksheet
For Each wK In Worksheets '全てのワークシートを取得する'
If wK.Name = "2019年7月" Then 'ワークシートが2019年7月であるか確認' wK.Activate
MsgBox "「2019年7月」ワークシートが存在します"

Exit Sub
End If
Next MsgBox "「2019年7月」ワークシートは存在しません"

Excelマクロ覚書 ~変数・定数編~

図書館で借りてきた某書籍の覚書です。

キャプチャ貼らないとな・・・忘れる。

 

 


【変数を使用する】

変数を宣言するには、Dimステートメントを使う。

Dim 変数名 As データ型

Dim 変数名 As データ型, 変数名 As データ型


Dim Money As Long  '「Money」変数を用意する
Money = Range("D4").Value '「Money」変数にD4の値を代入する MsgBox "所持金:" & Money 'メッセージを表示する'

 

【オブジェクト変数を使用する】

オブジェクト変数を宣言するには、Dimステートメントを使う。

Dim オブジェクト変数名 As オブジェクト


Dim wK As Worksheet  '変数「wK」にオブジェクト変数を宣言する
Set wK = Worksheets.Add 'ワークシートを追加し、wKに代入する'
sh.Name = "新規ワークシート '追加したwKオブジェクト変数のシート名を変更する

 

【定数を使用する】

定数を宣言するには、Constステートメントを使う。

Const 定数名 As データ型


Const Tax As Currency = 0.08   '変数「wK」にオブジェクト変数を宣言する
MsgBox "消費税:" & Range("H4").Value * Tax   'H4シートに消費税を加算してメッセージ表示する'

 

【配列を使用する】

配列を宣言するには、Dimステートメントを使う。

Dim 配列名(0から) As データ型


Dim i =Long
Dim Person As String  '配列「Person」を宣言'
For i = 0 To UBound(Person)
Person(i) = Range("B" & i + 4).Value
Next MsgBox "氏名:" & Person(2)

 

【動的配列を使用する】

毎月データ件数が変わる場合などは、ReDimステートメントを使う

ReDim 配列名 As データ型


ReDim Person As String  '配列「Person」を宣言する'
ReDim Person(Range("B1:B8").Rows.Count - 1) As String  '配列の要素数を求める'    Person(0) = Range("A4").Value
       Person(1) = Range("A5").Value
       Person(2) = Range("A6").Value

Excelマクロ覚書 ~印刷編~

図書館で借りてきた某書籍の覚書です。
にゃ~ん。

 

 


【印刷プレビューする】

ブックを印刷プレビューするにはPrintOutメソッドを使う。

ActiveSheetプロパティ.PrintOut Preview = True / False

※設定できる値

True :印刷プレビューする
False :印刷プレビューしない
ActiveSheet.PrintOut Preview = True  '印刷プレビューを表示する'

【余白を設定する】

ページレイアウトを設定するにはPageSetupプロパティを使う。
TopMarginプロパティなどを使うことで、余白が設定できる。

Worksheetsプロパティ.PageSetup.TopMargin = 値
Worksheetsプロパティ.PageSetup.BottomMargin = 値
Worksheetsプロパティ.PageSetup.LeftMargin = 値
Worksheetsプロパティ.PageSetup.RightMargin = 値

Worksheets("2019年").PageSetup = 5  '5ポイントの余白を設定する'

余白はセンチメートル単位でも設定できる。
その場合はCentimetersToPointsメソッドを使う。

Applicationプロパティ.CentimetersToPoints(数値)


【印刷位置を設定する】

印刷位置を設定するにはCenterHorizontallyプロパティを使う。

Worksheetsプロパティ.PageSetup.CenerHorizontally = True / False

※設定できる値

True :水平方向の中央に配置
False :配置しない
Worksheets("2019年").PageSetup CenterHorizontally= True  '印刷位置を水平方向のページ中央にする'

用紙の向きはOrientationプロパティから設定できる。

Applicationプロパティ.PageSetup.Orientation = 方向

※設定できる値

xlPortrait :縦方向
xlLandscape :横方向
Worksheets("2019年").PageSetup Orientation = xlPortrait  '縦方向に指定する'

【指定した枚数分印刷する】

ブックを指定した枚数だけ印刷するにはPrintOutメソッドに引数Copiesを使う。

ActiveSheetプロパティ.PrintOut Copies = 枚数

Worksheet("2019年").PrintOut Copies = 3  '3枚印刷する'

指定したページを印刷するには、引数FromとToを使う

ActiveSheetプロパティ.PrintOut From := 開始ページ, To := 終了ページ

Worksheets("2019年").PrintOut From:= 2, To:= 5  ' 2ページ目~3ページ目までを印刷する'

部数単位で印刷するには引数Collateを使う。

ActiveSheetプロパティ.PrintOut Collate = True / False

True :部数単位で印刷する
False :部数単位で印刷しない
Worksheet("2019年").PrintOut Collate:= True  '部数単位で印刷する'

【ヘッダー・フッターの設定をする】

ヘッダーとフッターの設定をするには、LightHeaderプロパティなどを使う。

ActiveSheetプロパティ.PageSetup LeftHeader = "ヘッダー名"

ActiveSheetプロパティ.PageSetup RightHeader = "ヘッダー名"

ActiveSheetプロパティ.PageSetup CenterHeader = "ヘッダー名"


Worksheet("2019年").PageSetup LeftHeader:= "タイトル"   'ヘッダー中央部にタイトルを設定'
Worksheet("2019年").PageSetup RightHeader:= "&D"   '日付'
Worksheet("2019年").PageSetup LeftHeader:= "&P"   'ページ番号'

【印刷物にロゴを印刷する】

ロゴを印刷する位置を指定してファイルを添付する。
たとえば、LeftHeaderPictureだと左側に図が挿入される。

ActiveSheetプロパティ.PageSetup LeftHeaderPicture.Filename = "ファイル名"

ActiveSheetプロパティ.PageSetup RightHeaderPicture.Filename = "ファイル名"

ActiveSheetプロパティ.PageSetup CenterHeaderPicture.Filename = "ファイル名"

Worksheet("2019年").PageSetup LeftHeaderPicture:= "C\User\Excel\Logo.png"   '左側にロゴを指定する'

【印刷範囲の設定をする】

PrintAreaにセル範囲を設定することで、印刷範囲を設定できる。

PageSetupオブジェクト.PrintArea = セル範囲

Worksheet("2019年").PageSetup PrintArea:= "A1:G36"   'ワークシート2019年の印刷範囲を、セルA1~G36に設定する'

【行タイトル・列タイトルを設定する】

PrintTitleRows、PrintTitleColumnsプロパティを使うことで、列タイトルと行タイトルを設定する。

PageSetupオブジェクト.PrintTitleRows = セル範囲

PageSetupオブジェクト.PrintTitleColumn = セル範囲

Worksheet("2019年").PageSetup PrintTitleRows:= "$2:$2"   '「2019年」ワークシートの行タイトルを2行目に設定する'

【セルの行列番号を印刷する】

行列番号を印刷するにはPrintHeadingsを使う。

True :行列番号の印刷を行う
False :行列番号の印刷を行わない

PageSetupオブジェクト.PrintHeadings = 値

Worksheet("2019年").PageSetup PrintHeadings:= True   '行列番号の印刷を行う'

Excelマクロ覚書 ~ブック操作編~

図書館で借りてきた某書籍の覚書です。
なんか見づらいので、いつか清書します・・・。

 

 

【ブックを新規に作成する】

ブックを新規作成するにはAddメソッドを使う。

Worksheetsコレクション.Add

Worksheets.Add  'ワークブックを追加する'

 


【ブックを開く】

既存のブックを開くにはOpenメソッドを使う。

Worksheetsコレクション.Open

Worksheets.Open Fielname:="C:User\Excel\今年度売上.xlsx"  'C:User\Excelフォルダの「今年度売上.xlsx」ファイルを開く'

読み取り専用でブックを開くには、引数ReadOnlyにTrueを指定する。


Worksheets.Open Fielname:="C:User\Excel\今年度売上.xlsx", ReadOnly:=True  'C:User\Excelフォルダの「今年度売上.xlsx」ファイルを読み取り専用で開く'

【ブックを保存する】

ブックを上書き保存するにはSaveメソッドを使う。

ThisWorkbook.Save

ThisWorkbook.Save  '上書き保存する'

ブックを名前をつけて保存するにはSaveAsメソッドを使う。

ThisWorkbook.SaveAs

ThisWorkbook.Save  '名前をつけて保存する'

【ブックをアクティブにする】

ブックをアクティブ(切り替え表示)にするにはActivateメソッドを使う。

Workbooksオブジェクト.Activate


Workbooks("今年度売上.xlsx").Activate  '「今年度売上.xlsx」をアクティブにする'

アクティブなブックの確認をするにはNameプロパティを使う。

ActiveWorkbook.Name

MsgBox ActiveWorkbook.Name  'ダイアログボックスにアクティブなブック名を表示する'

【ブックを閉じる】

ブックを閉じるにはCloseメソッドを使う。

Workbooksオブジェクト.Close

ThisWorkbook.Close  '閉じる'

上書き保存せずに閉じるには、SaveChangesにFalseを設定する。
変更後は、必ずTrueにする。
ただし、保存してから閉じるのが基本。

Workbooksオブジェクト.Close SaveChanges: = False


Workbooks("Saving.xslm").Close  '閉じる'

 

すべてのブックを閉じるにはFor Each~Nextステートメントを使う


For Each In Workbooks 
Dim temp As Close 
SaveChange Temp 
Next

【PDFとして保存する】

ブックをPDF保存するには。ExportAsFixedFormatメソッドを使う。

Workbooksオブジェクト.ExportAsFixedFormat Type := ファイル形式, File:=ファイル名


Workbooks("今年度売上.xlsx").ExportAsFixedFormat _ Type := xlTypePDF, _ Filename := "C:\User\ExcelVBA\今年度売上.pdf"   '「今年度売上.xlsx」をPDFにして、C:\User\ExcelVBAフォルダに保存する'

Excelを終了する】

Excelを終了するには。Quitメソッドを使う。

Applicationプロパティ.Quit

Application.Quit   'Excelを閉じる'

Excelマクロ覚書 ~ワークシートの操作編~

図書館で借りてきた某書籍の覚書です。

 

 

【ワークシートを選択する】

複数のワークシートから指定されたワークシートを選ぶときは、
Worksheetsプロパティを使う。
Worksheetではないので注意(sを忘れない)

Worksheets(値)

Worksheets("2018年").Select  '2018年のシートを選択する'

複数のワークシートを選択するときは、Array関数を使う。

Array(要素A, 要素B, 要素C...)

Worksheets(Array("3月","5月")).Select  '3月と5月のシートを選択する'

【ワークシートをコピーする】

指定されたワークシートをコピーするときは、Copyメソッドを使う。
Worksheetsプロパティとの間は半角スペースで開ける。

Worksheetsプロパティ.Copy before / after

※指定できる値

Before :指定したワークシートの左側
After :指定したワークシートの右側
Worksheets("2018年").Copy After:="2017年"  '2017年の後ろに2018年のシートをコピーする'

【ワークシートを移動する】

指定されたワークシートを移動するときは、Moveメソッドを使う。
引数には何も指定しない場合は、新規ワークシートに移動する。

Worksheetsプロパティ.Move 移動する位置

※指定できる値

Before :指定したワークシートの左側
After :指定したワークシートの右側
Worksheets("表紙").Move Before:="集計用No1"  '集計用No1の前に表紙を移動させる

【ワークシートを削除する】

ワークシートを削除するときは、Deleteメソッドを使う。

Worksheetsプロパティ.Delete

誤操作を防ぐために、削除前には警告メッセージを表示するのがベター。
警告メッセージを表示するには、Display.Alertプロパティを使う。

Application.DisplayAlerts = True / False

※指定できる値

True :メッセージを表示する。Excelを再起動するまで設定が残るのを防ぐため、処理の最後には必ずTrueにする。
False :メッセージを表示しない。
Application.DisplayAlerts = True
      Worksheets("前年度").Delete  '前年度シートを削除する'

【ワークシートに名前をつける】

ワークシートに名前をつけるにはNameプロパティを使う。

Worksheetsプロパティ.Name = 値

Worksheets("initial").Name = Worksheets(i).Range("A1").Value.  'セルA1の値をシート名に設定する'

【ワークシートを追加する】

ワークシートを追加するにはAddメソッドを使う。

Worksheetsプロパティ.Add Before / After

Worksheets.Add After:= Worksheets("7月").  '7月の後に新しいシートを追加する'
ActiveSheet.Name = 8月 .  '新しいシート名を「8月」にリネームする'

【ワークシートを非表示にする】

ワークシートを非表示にするにはVisibleプロパティを使う。

Worksheetsプロパティ.Visible = 値

※指定できる値

xlSheetVisible :表示する
xlSheetHidden :非表示にする
True :表示する
False :非表示にする
Worksheets("4月").Visible = xlSheetHidden.  '4月のシートを非表示にする'

【ワークシートの見出しに色をつける】

ワークシートの見出しに色をつけるには、TabオブジェクトとColorプロパティを使う。

Worksheetsプロパティ.Tab.Color

※指定できる値

RGB(赤, 青, 緑) :色の割合を設定する
xlColorIndexNone :シート見出しの色を指定しない(標準)
Worksheets("4月").Tab.Color = RGB(255, 0, 0).  '「4月」のワークシートに赤色を設定する'

【ワークシートを保護する】

ワークシートのセルをロックするにはLockedプロパティを使う。

Rangeプロパティ.Locked = True / False

※指定できる値

True :ロックする(標準)
False :ロックを解除する
Range("B5").Locked = False.  'セルB5のロックを解除する'


ワークシートを保護するにはProtectメソッドを使う。
通常は、セルのロックを解除してからワークシートを保護する。
保護を解除するにはUnprotectプロパティを使う。

Worksheetsプロパティ.Protected
Worksheetsプロパティ.Unprotected

Worksheets("Sheet1").Protect.  'Sheet1を保護する'