Sample Macro  ブックシート [基本型] Previous Next


1) ブックを開く このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックを開く()
    Workbooks.Open FILENAME:=("BBB.xls")        '※1
End Sub
'---------------------------------------------------------------------------------
Sub ブックを読み取り専用で開く()
    Workbooks.Open FILENAME:=("BBB.xls"), ReadOnly:=True '※1
End Sub
'---------------------------------------------------------------------------------
Sub ブックをリンクの更新をしないで開く()
    Workbooks.Open FILENAME:=("BBB.xls"), UpdateLinks:=0
End Sub
'=================================================================================
Sub ファィルを開くダイアログを利用してブックを開く()
    フルパス = Application.GetOpenFilename("*.xls,*.xls") '※2
    If フルパス = "False" Then Exit Sub         '[キャンセル]ボタンがクリックされた場合
    Workbooks.Open フルパス
End Sub
'=================================================================================
Sub ファイル名をフィルタリングしてファィルを開くダイアログを表示する()
    Application.Dialogs(xlDialogOpen).Show "2010*.xls"  '※3
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 Excel2007以降では、ファイルフィルターを ("*.xls?,*.xls?") としてもよい
※3 Showメソッドの第1引数はファイル名を指定できるので、"2010*.xls"のように
   ワイルドカード文字を使ってフィルタリング可能


2) ブックを保存する、閉じる このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub アクティブブックを名前を付けて保存する()
    ブック名 = "BBB.xls"                        '※1
    ActiveWorkbook.SaveAs ブック名
End Sub
'=================================================================================
Sub 名前を付けて保存ダイアログボックスを表示する()
    Application.Dialogs(xlDialogSaveAs).Show    '※2
End Sub
'---------------------------------------------------------------------------------
Sub 名前を付けて保存ダイアログボックスを表示する_ファイル名指定1()
    ファイル名 = "BBB"                          '※1
    Application.Dialogs(xlDialogSaveAs).Show (ファイル名)
End Sub
'---------------------------------------------------------------------------------
Sub 名前を付けて保存ダイアログボックスを表示する_ファイル名指定2()
    ファイル名 = "BBB"                          '※1
    Application.Dialogs(xlDialogSaveAs).Show arg1:=ファイル名
End Sub
'---------------------------------------------------------------------------------
Sub 名前を付けて保存ダイアログボックスを表示する_ファイル名とファイルの種類指定()
    ファイル名 = "TTT"                          '※1"
    ファイルの種類 = 36                         '※4 xlTextPrinter
    Application.Dialogs(xlDialogSaveAs).Show arg1:=ファイル名, arg2:=ファイルの種類
End Sub
'=================================================================================
Sub アクティブブックのコピーを保存する()
    ActiveWorkbook.SaveCopyAs Filename:="BBB_Copy.xls" '※1
End Sub
'---------------------------------------------------------------------------------
Sub アクティブブックを上書き保存して閉じる()
    ActiveWorkbook.Save                         '上書き保存
    ActiveWorkbook.Close                        '閉じる
End Sub
'---------------------------------------------------------------------------------
Sub ブックのファイル形式を指定して保存する()
    ActiveWorkbook.SaveAs FileFormat:=xlNormal '※5
End Sub
'=================================================================================
Sub ブックの内容の変更を保存しないで閉じる()
    Workbooks("BBB.xls").Close SaveChanges:=False '※1
End Sub
'---------------------------------------------------------------------------------
Sub 確認メッセージを表示しないでブックを閉じる()
    Application.DisplayAlerts = False           '確認メッセージを表示しない
    ActiveWorkbook.Close                        '閉じる
End Sub
'---------------------------------------------------------------------------------
Sub 開かれているすべてのブックを閉じる()
    Workbooks.Close
End Sub
'=================================================================================
<コメント>
※1 BBB、または、BBB_Copyにはブック名を記入
※2 サンプルは こちら
※3 保存先フォルダーへのパスを記入
※4 ファイルの種類を指定
   1…Microsoft Office Excel ブック (*.xls)、 3…テキスト (タブ区切り) (*.txt)、
   6(xlCSV)…CSV (カンマ区切り) (*.csv)、 17…テンプレート (*.xlt)、
   36(xlTextPrinter)…テキスト (スペース区切り) (*.prn)、
   42(xlUnicodeText)…Unicode テキスト (*.txt)、
   51…Excel 2007 ブック (*.xlsx)
※5 FileFormatプロパティの定数と値は こちら


3) 保存してない変更があるか調べる このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 保存してない変更があるか調べる()
    Worksheets("SSS").Activate                  'ワークシートをアクティブにする ※1
    If ActiveWorkbook.Saved = False Then        'False(変更を未保存)なら
        メッセージ = "保存してない変更があります"
        MsgBox メッセージ, vbExclamation, "サンプルマクロ"
    Else                                        'そうでなければ
        メッセージ = "保存してない変更は、ありません" & Chr(13) & Chr(13) & _
                "「OK」ボタンを押してから、セルに何か入力し、" & Chr(13) & Chr(13) & _
                "その後で、お試しボタンを押してみてください"
        MsgBox メッセージ, vbInformation, "サンプルマクロ"
    End If
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入
サンプルブックのダウンロードは ここをクリック (YNxv202_Saved.xls 35KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


4) Webページとして保存する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub アクティブブックをWebページとして保存する()
    ドライブ = "C"                                  '※1
    フォルダー名 = "My Documents"                   '※2
    ファイル名 = "ExcelBookをWebページに"           '※3
    パス = ドライブ & ":\" & フォルダー名 & "\" & ファイル名 & ".html" '※4
    ActiveWorkbook.SaveAs Filename:=パス, FileFormat:=xlHtml '※5
End Sub
'=================================================================================
<コメント>
※1 保存するドライブ番号を指定
※2 保存するフォルダー名を指定
※3 保存するファイル名を指定
※4 拡張子の '.html' は 'htm' でもよい
※5 FileFormatプロパティの値は、xlHtml とする
サンプルブックのダウンロードは ここをクリック (YNxv202_Web.xls 29KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


5) 新しいブックを作成する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 新しいブックを作成する()
    Workbooks.Add
End Sub
'=================================================================================


6) ブックのシート数を取得 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub アクティブブックのワークシート数を取得する()
    シート数 = ActiveWorkbook.Worksheets.Count
End Sub
'---------------------------------------------------------------------------------
Sub 指定ブックのワークシート数を取得する()
    ブック名 = "BBB" & ".xls"                   '※1
    シート数 = Workbooks(ブック名).Worksheets.Count
End Sub
'=================================================================================
Sub アクティブブックのシート数を取得する()
    シート数 = ActiveWorkbook.Sheets.Count      '※2
End Sub
'---------------------------------------------------------------------------------
Sub 指定ブックのシート数を取得する()
    ブック名 = "BBB" & ".xls"                   '※1
    シート数 = Workbooks(ブック名).Sheets.Count '※2
End Sub
'=================================================================================
Sub アクティブブックの選択されているシート数を取得する()
    シート数 = ActiveWindow.SelectedSheets.Count '※2
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 ワークシートとグラフシートが対象


7) ブックのプロパティの設定・取得 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックのプロパティを設定する()
    ActiveWorkbook.BuiltinDocumentProperties("Title").Value = "すぐマク" 'タイトル ※1
    ActiveWorkbook.BuiltinDocumentProperties("Author").Value = "永井善王" '作成者
    URL = "http://www.geocities.jp/happy_ngi/"
    ActiveWorkbook.BuiltinDocumentProperties("Hyperlink Base").Value = URL
End Sub
'---------------------------------------------------------------------------------
Sub ブックのプロパティを取得して表示する()
    MsgBox ActiveWorkbook.BuiltinDocumentProperties(3).Value '作成者 ※1
    MsgBox ActiveWorkbook.BuiltinDocumentProperties(7).Value '最終更新者
    MsgBox ActiveWorkbook.BuiltinDocumentProperties(11).Value '作成日時
    MsgBox ActiveWorkbook.BuiltinDocumentProperties(12).Value '更新日時
End Sub
'---------------------------------------------------------------------------------
Sub ブックの作成者の名前を操作する()
    作成者名 = ActiveWorkbook.Author            '取得する
    ActiveWorkbook.Author = ""                  '削除する
    ActiveWorkbook.Author = 作成者名            '設定する
End Sub
'---------------------------------------------------------------------------------
Sub ブックのパスを含めたブック名を表示する()
    MsgBox ActiveWorkbook.FullName
End Sub
'=================================================================================
<コメント>
※1 BuiltinDocumentPropertiesプロパティのインデックス値とプロパティ名は こちら


8) ブックのファイル形式の取得 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックのファイル形式を取得する()
    値 = ActiveWorkbook.FileFormat
End Sub
'---------------------------------------------------------------------------------
Sub 指定されたファイルの形式と種類を取得して表示する()
    定数 = "?"
    種類 = "?"
    値 = ActiveWorkbook.FileFormat          'ファイル形式の値を取得する

    If 値 = xlWorkbookNormal Then           '-4143
        定数 = "xlWorkbookNormal"
        種類 = "Microsoft Excelブック (*.xls)"
    ElseIf 値 = xlExcel5 Then               '39
        定数 = "xlExcel5"
        種類 = "Microsoft Excel5.0/95ブック (*.xls)"
    ElseIf 値 = xlExcel9795 Then            '43
        定数 = "xlExcel9795"
        種類 = "Microsoft Excel97-2000および5.0/95ブック (*.xls)"
    End If

    タイトル = "作業中のブックの現在のファイル形式は"
    メッセージ = "FileFormatの定数: " & 定数 & "   値: " & 値 & _
                Chr(13) & Chr(13) & "ファイルの種類: " & 種類
    MsgBox メッセージ, vbInformation, タイトル
End Sub
'=================================================================================
<コメント>
※1 FileFormatプロパティの定数と値は こちら


9) ブックのマクロ添付状況の取得 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックのマクロ添付状況を取得する()
    マクロ添付状況 = ActiveWorkbook.HasVBProject '※1
End Sub
'---------------------------------------------------------------------------------
Sub マクロ添付状況に合わせてファイル形式を設定し名前を付けて保存する()
    With Application.FileDialog(msoFileDialogSaveAs)
        If ActiveWorkbook.HasVBProject Then
            .FilterIndex = 2                    '※2
        Else
            .FilterIndex = 1
        End If
        If .Show = -1 Then .Execute             '※3、※4
    End With
End Sub
'=================================================================================
<コメント>
※1 HasVBProjectプロパティの返り値 True…VBAプロジェクトが添付されている、False…いない
※2 FilterIndexプロパティの定数 1…Excel ブック (*.xlsx)、2…Excel マクロ有効ブック (*.xlsm)
※3 Showメソッドの返り値 -1…[保存(S)]ボタン、0…[キャンセル]ボタン
※4 Executeメソッド Showメソッドが呼び出された直後のユーザーのアクションを実行する


10) ブックのコピー・削除・移動・変更 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックをコピーする()
    FileCopy "C:\FFF\BBB.xls", "C:\F22\B22.xls" '※1,3,4,5,6
End Sub
'---------------------------------------------------------------------------------
Sub ブックをコピーする_FileSystemObjectの場合()
    With CreateObject("Scripting.FileSystemObject")
        .CopyFile "C:\FFF\BBB.xls", "C:\F22\B22.xls" '※1,3,4,5,6
    End With
End Sub
'=================================================================================
Sub ブックを削除する()
    Kill "C:\FFF\BBB.xls"                       '※1,3,4
End Sub
'=================================================================================
Sub ブックを移動する()
    Name "C:\FFF\BBB.xls" As "C:\F22\BBB.xls"   '※1,3,4,5
End Sub
'---------------------------------------------------------------------------------
Sub ブックを移動しブック名を変更する()
    Name "C:\FFF\BBB.xls" As "C:\F22\B22.xls"   '※1,3,4,5,6
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 SSSにはシート名を記入
※3 Cにはフォルダーが保存されているドライブを記入
※4 FFFにはブックが保存されているフォルダー名を記入
※5 F22にはコピー先・移動先のフォルダー名を記入
※6 B22には新しいブック名を記入


11) ブックのアクセス権・読み取り専用 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 読み取り専用か調べる_アクティブブックの場合()
    If ActiveWorkbook.ReadOnly Then
        MsgBox "アクティブブックは読み取り専用です。"
    Else
        MsgBox "アクティブブックは読み取り専用ではありません。"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub 読み取り専用か調べる_開いてないブックの場合()
    フルパス = "C:\A\テスト.xls"                '※1
    If GetAttr(フルパス) And vbReadOnly Then
        MsgBox フルパス & " は読み取り専用です。"
    Else
        MsgBox フルパス & " は読み取り専用ではありません。"
    End If
End Sub
'=================================================================================
Sub アクティブブックの読み取り専用属性をオンにする()
    ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly '※2
End Sub
'---------------------------------------------------------------------------------
Sub アクティブブックで読み取り専用属性をオンにした後にオフにする()
    ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite '※3, 4
End Sub
'=================================================================================
Sub 開いてないブックを読み取り専用に設定する()
    フルパス = "C:\A\テスト.xls"
    If GetAttr(フルパス) And vbReadOnly Then
        MsgBox フルパス & " を読み取り専用に設定します。"
        SetAttr フルパス, vbNormal
    Else
        MsgBox フルパス & " は既に読み取り専用になっています。"
    End If
End Sub
'=================================================================================
<コメント>
※1 C:\A\テスト.xls は例示
※2 この効果はブックを閉じると失われる
※3 読み取り専用から書き込み可能に変更すると、再読み込みされる
※4 書き込みパスワードの指定も可能


12) ブックを保護・非保護 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックの保護_非保護()
    ActiveWorkbook.Unprotect                    'ブック非保護
    ActiveWorkbook.Protect Structure:=True, Windows:=False  'ブック保護
End Sub
'---------------------------------------------------------------------------------
Sub ブックのシート構成が保護されているか調べる()
    If ActiveWorkbook.ProtectStructure = True Then
        MsgBox "このブックのシート構成は保護されています。", , "すぐマク"
    Else
        MsgBox "このブックのシート構成は保護されていません。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub ブックのウィンドウが保護されているか調べる()
    If ActiveWorkbook.ProtectWindows = True Then
        MsgBox "このブックのウィンドウは保護されています。", , "すぐマク"
    Else
        MsgBox "このブックのウィンドウは保護されていません。", , "すぐマク"
    End If
End Sub
'=================================================================================


13) ブック・シートを選択・アクティブに このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックをアクティブにしてシートを選ぶ()
    Workbooks("BBB.xls").Activate               'ブックをアクティブにする ※1
    Sheets("SSS").Select                        'シートを選ぶ ※2
End Sub
'---------------------------------------------------------------------------------
Sub 指定ブックの指定シートをアクティブにする()
    ブック名 = "BBB"                            '※1
    シート名 = "SSS"                            '※2
    Workbooks(ブック名 & ".xls").Worksheets(シート名).Activate
End Sub
'---------------------------------------------------------------------------------
Sub 指定ブックの指定シートの選択状態を調べる()
    ブック名 = "BBB" & ".xls"                   '※1
    シート名 = "SSS"                            '※2
    For Each 各シート In Workbooks(ブック名).Windows(1).SelectedSheets '※7
        If 各シート.Name = シート名 Then
            MsgBox 各シート.Name & " は選択されています。"
            Exit For
        End If
    Next
End Sub
'=================================================================================
Sub アクティブシートの1つ左のシートを選択する()
    ActiveSheet.Previous.Select
End Sub
'---------------------------------------------------------------------------------
Sub アクティブシートの1つ右のシートを選択する()
    ActiveSheet.Next.Select
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 SSSにはシート名を記入
※3 Cにはフォルダーが保存されているドライブを記入
※4 FFFにはブックが保存されているフォルダー名を記入
※5 F22には移動先のフォルダー名を記入
※6 B22には新しいブック名を記入
※7 アクティブウィンドウは常にWindows(1)と記述


14) ブック・シート名を取得・変更 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブック名シート名を取得する()                '※12
    ブック名 = ActiveWorkbook.Name
    シート名 = ActiveSheet.Name                 'シートタブに表示される名前
    シートのオブジェクト名 = ActiveSheet.CodeName 'コード名
    シートのインデックス番号 = ActiveSheet.Index
End Sub
'---------------------------------------------------------------------------------
Sub ブック内の全部のシート名を取得する()
    Worksheets("NNN").Select                    '※7 取得したシート名を記入するシート選択
    For I = 1 To Worksheets.Count               '※8 ワークシートの数だけ繰り返す
        Cells(I, 1).Value = Worksheets(I).Name  '※9 取得したシート名をセルへ記入する
    Next
End Sub
'---------------------------------------------------------------------------------
Sub ブック名を変更する()
    Name "C:\FFF\BBB.xls" As "C:\FFF\B22.xls"   '※1,3,4,6,10,11
End Sub
'---------------------------------------------------------------------------------
Sub シート名を変更する()
    Worksheets("Sheet1").Name = "新しい名前"    '※11
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 SSSにはシート名を記入
※3 Cにはフォルダーが保存されているドライブを記入
※4 FFFにはブックが保存されているフォルダー名を記入
※5 F22には移動先のフォルダー名を記入
※6 B22には新しいブック名を記入
※7 NNNには取得したシート名を記入するためのシート名を記入
※8 Worksheets.CountをSheets.Countに変えるとワークシート以外も取得可能
※9 Worksheets(I).Nameについても※8と同様
※10 Macintoshではパスの記述が異なる
※11 ブック名またはシート名に使用禁止文字が含まれているか31文字超の場合は変更されない
   使用禁止文字とは : \ / ? * [ ]  および 空白
※12 シートの名前・オブジェクト名・インデックス番号の関連図
   


15) ブック・シートの再計算 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ブックの計算方法を設定する()
    計算方法 = xlCalculationAutomatic           '※1
    Application.Calculation = 計算方法
End Sub
'=================================================================================
Sub ブックを保存する前に再計算するように設定する()
    Application.Calculation = xlManual
    Application.CalculateBeforeSave = True      '※2、※3
End Sub
'=================================================================================
Sub ワークシートの再計算を自動的に実行しないように設定する()
    ActiveSheet.EnableCalculation = False       '※2
End Sub
'=================================================================================
<コメント>
※1 xlCalculationAutomatic…自動、xlCalculationSemiautomatic…テーブル以外自動、
   xlCalculationManual…手動
※2 True…する、False…しない
※3 この設定はCalculationプロパティに xlManual が設定されているときだけ有効


16) シートを保護・非保護 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub シートの保護_非保護()
    ActiveSheet.Unprotect                       'シート非保護
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 'シート保護
    ActiveSheet.Protect UserInterfaceOnly:=True '画面上からの変更だけ保護 ※1
End Sub
'---------------------------------------------------------------------------------
Sub シートの保護_非保護_パスワード付き()
    ActiveSheet.Unprotect "PW"                  '※2
    ActiveSheet.Protect "PW", DrawingObjects:=True, Contents:=True, Scenarios:=True '※2
End Sub
'---------------------------------------------------------------------------------
Sub シートが保護されているか調べる()
    If ActiveSheet.ProtectContents Then
        MsgBox "保護されています。", , "すぐマク"
    Else
        MsgBox "保護されていません。", , "すぐマク"
    End If
End Sub
'=================================================================================
<コメント>
※1 マクロからの変更は可能。保存して閉じると再度実行しないとマクロからも変更ができなくなる
※2 PWにはパスワードを記入


17) シート切替時の自動処理 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
シートがアクティブになったときに実行されるイベントマクロ

Private Sub Workbook_SheetActivate(ByVal シート名 As Object) '※1
    MsgBox "アクティブにされたシート名は、" & シート名.Name
End Sub
'=================================================================================
シートがアクティブでなくなったときに実行されるイベントマクロ

Private Sub Workbook_SheetDeactivate(ByVal シート名 As Object) '※1
    MsgBox "非アクティブにされたシート名は、" & シート名.Name
End Sub
'=================================================================================
<コメント>
※1 ワークブックのコード画面に作成する


18) シートを隠す このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ユーザーが再表示できないようにシートを隠す()
    Worksheets("SSS").Visible = xlVeryHidden       '※1
End Sub
'---------------------------------------------------------------------------------
Sub シートを隠す()
    Worksheets("SSS").Visible = False              '※1
End Sub
'---------------------------------------------------------------------------------
Sub 隠したシートをもどす()
    Worksheets("SSS").Visible = True               '※1
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入


19) シートの使用・未使用 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub シートの使用未使用を判別する()
    If WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 Then
        MsgBox "未使用です。", , "すぐマク"
    Else
        MsgBox "使用済みです。", , "すぐマク"
    End If
End Sub
'=================================================================================


20) シートを削除する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ワークシート名を指定して削除する()
    Application.DisplayAlerts = False           '※4 注意メッセージを表示しない
    シート名 = "SSS"                            'ワークシート名をセットする ※1
    Worksheets(シート名).Delete                 'ワークシートを削除する ※2
    Application.DisplayAlerts = True            '※4 注意メッセージを表示する
End Sub
'---------------------------------------------------------------------------------
Sub 現在アクティブなワークシートを削除する()
    Application.DisplayAlerts = False           '※4
    シート名 = ActiveSheet.Name                 'アクティブシート名を取得する
    Worksheets(シート名).Delete                 'ワークシートを削除する ※2
    Application.DisplayAlerts = True            '※4
End Sub
'---------------------------------------------------------------------------------
Sub 現在アクティブなシートを削除する()
    Application.DisplayAlerts = False           '※4
    ActiveSheet.Delete                          'シートを削除する ※3
    Application.DisplayAlerts = True            '※4
End Sub
'---------------------------------------------------------------------------------
Sub シートを選択してから削除する()
    Application.DisplayAlerts = False           '※4
    Sheets("SSS").Select                        'シートを選択する ※1、3
    ActiveWindow.SelectedSheets.Delete          '選択されたシートを削除する ※3
    Application.DisplayAlerts = True            '※4
End Sub
'---------------------------------------------------------------------------------
Sub 未使用ワークシートを削除する()
    Application.DisplayAlerts = False           '※4
    For Each 各シート In Worksheets
        If 各シート.UsedRange.Address(0, 0) = "A1" And _
            各シート.Range("A1").Value = Empty Then
            If Worksheets.Count <> 1 Then       '※5
                各シート.Delete
            End If
        End If
    Next
    Application.DisplayAlerts = True            '※4
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入
※2 ワークシート以外のシートが指定されているとエラーになる
※3 ワークシート以外のシートも可能
※4 注意メッセージを表示したくない場合に指定する (関連ページはこちら
※5 最後の1シートは未使用でも残さないとエラーが発生するため


21) シートを追加する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 新しいワークシートをアクティブシートの前へ追加する()
    Sheets("SSS").Select                        '※1
    ActiveWorkbook.Worksheets.Add               'アクティブシートの前へ追加する
End Sub
'---------------------------------------------------------------------------------
Sub 新しいワークシートをアクティブシートの後へ追加する()
    Sheets("SSS").Select                        '※1
    シート名 = ActiveSheet.Name                 'アクティブシート名を覚える
    Worksheets.Add after:=Worksheets(シート名)  'アクティブシートの後へ追加する
End Sub
'---------------------------------------------------------------------------------
Sub 新しいワークシートを最後のシートの後へ追加する()
    Sheets("SSS").Select                        '※1
    Worksheets.Add.Move after:=Worksheets(Worksheets.Count) '最後のシートの後へ追加する
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入


22) シート見出しをスクロールする このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub シート見出しを先頭までスクロールする()
    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
End Sub
'---------------------------------------------------------------------------------
Private Sub シート見出しを末尾までスクロールする()
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
End Sub
'---------------------------------------------------------------------------------
Private Sub シート見出しを前方にスクロールする()
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
End Sub
'---------------------------------------------------------------------------------
Private Sub シート見出しを後方にスクロールする()
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
End Sub
'=================================================================================


23) シート見出しの色を設定する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub シート見出しの色を赤にする()
    ActiveWorkbook.Sheets("SSS").Tab.ColorIndex = 3 '※1、2
End Sub
'---------------------------------------------------------------------------------
Private Sub シート見出しの色をなしにする()
    ActiveWorkbook.Sheets("SSS").Tab.ColorIndex = -4142 '※1、2
End Sub
'---------------------------------------------------------------------------------
Private Sub シート見出しの色がなしなら黄色にする()
    If Worksheets("SSS").Tab.ColorIndex = xlColorIndexNone Then '※1
        ActiveWorkbook.Sheets("SSS").Tab.ColorIndex = 6 '※1、2
    End If
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入
※2 カラーパレットのインデックス番号
   (1=黒、2=白、3=赤、4=明るい緑、5=青、6=黄、7=ピンク、-4142=なし、等)



24) シートの背景のグラフィックスを設定 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ワークシートの背景のグラフィックスを設定する()
    フルパス = "C:\YN2007USA_a.jpg"             '※1
    Worksheets("Sheet1").SetBackgroundPicture Filename:=フルパス
End Sub
'---------------------------------------------------------------------------------
Sub ワークシートの背景のグラフィックスを削除する()
    Worksheets("Sheet1").SetBackgroundPicture Filename:=vbNullString
End Sub
'=================================================================================
<コメント>
※1 ""内には画像ファイルのフルパスを記入

Excel VBA Macro