Sample Macro  画面制御 [基本型] Previous Next


1)更新 2)全画面表示 3)ズーム このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 画面更新の制御()
    Application.ScreenUpdating = False          '画面を更新しない
    Application.ScreenUpdating = True           '画面を更新する
End Sub
'=================================================================================
Sub 全画面表示の制御()
    Application.DisplayFullScreen = False       '全画面表示しない
    Application.DisplayFullScreen = True        '全画面表示する
End Sub
'=================================================================================
Sub ウインドウサイズに合わせてズームする()
    Range("A1:E5").Select                       'A1:E5にはズーム対象範囲を記入
    ActiveWindow.Zoom = True                    'ズームする
End Sub
'---------------------------------------------------------------------------------
Sub 指定された表示倍率でズームする()
    Range("A1:E5").Select                       'A1:E5にはズーム対象範囲を記入
    倍率 = 150                                  '150には%で記入
    ActiveWindow.Zoom = 倍率                    'ズームする
End Sub
'=================================================================================


4) リボン制御 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub リボンを非表示にする()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub
'---------------------------------------------------------------------------------
Sub リボンを表示する()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub
'=================================================================================
Sub リボンの表示状態を取得する()
    If Application.CommandBars("Ribbon").Visible = True Then
        MsgBox "リボンは表示されています。", , "すぐマク"
    Else
        MsgBox "リボンは表示されていません。", , "すぐマク"
    End If
End Sub
'=================================================================================
Sub 開発タブをリボンに表示する()
    Application.ShowDevTools = True
End Sub
'---------------------------------------------------------------------------------
Sub 開発タブを非表示にする()
    Application.ShowDevTools = False
End Sub
'=================================================================================
リボンと開発タブ(Excel2007以降)
 

5) コマンドバー制御 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub コマンドバーが表示されているか調べる()
    名前 = "Standard"                           '「標準」ツールバー
    If CommandBars(名前).Visible Then
        MsgBox CommandBars(名前).NameLocal & " は表示されています"
    Else
        MsgBox CommandBars(名前).NameLocal & " は表示されていません"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub コマンドバーの一部の表示非表示を切り替える()
    名前 = "Formatting"                         '「書式設定」ツールバー
    If CommandBars(名前).Visible Then
        CommandBars(名前).Visible = False       '非表示にする
    Else
        CommandBars(名前).Visible = True        '表示にする ※1
    End If
End Sub
'---------------------------------------------------------------------------------
Sub すべてのコマンドバーの使用可否を切り替える()
Dim 各コマンドバー As CommandBar
    For Each 各コマンドバー In CommandBars      'コレクションの各要素に対して反復処理する
       各コマンドバー.Enabled = Not 各コマンドバー.Enabled '使用可否を切り替える
    Next                                        '繰り返す
End Sub
'---------------------------------------------------------------------------------
Sub 自作コマンドバーを画面の左端に表示する()
    Application.CommandBars("名前").Left = 0    '""内に自作コマンドバーの名前を指定する
End Sub
'=================================================================================
Sub アンサーウィザードのドロップダウンメニューの表示を切り替える()
    With Application.CommandBars
        If .DisableAskAQuestionDropdown = True Then
            .DisableAskAQuestionDropdown = False
        Else
            .DisableAskAQuestionDropdown = True
        End If
    End With
End Sub
'=================================================================================
<コメント>
※1 先行して Enabledプロパティに Trueが設定されていることが必要


6) 数式バー制御 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 数式バーを非表示にする()
    Application.DisplayFormulaBar = False   '※1
End Sub
'=================================================================================
    使用可能なExcelのバージョン
'=================================================================================
Sub 数式バーの高さを設定する()
    行数 = 3                                '※2
    Application.FormulaBarHeight = 行数
End Sub
'---------------------------------------------------------------------------------
Sub 数式バーの高さを取得する()
    行数 = Application.FormulaBarHeight
    MsgBox " 数式バーの高さは " & 行数 & "行分です。", , "すぐマク"
    Application.FormulaBarHeight = 1        '標準に戻す
End Sub
'=================================================================================
<コメント>
※1 False:非表示にする、True:表示する
※2 3 には行数を記述する


7) ウィンドウの最大・最小化 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub Excelのアプリケーションウィンドウを最大化する()
    Application.WindowState = xlMaximized       'Macintoshでは設定できない
End Sub
'---------------------------------------------------------------------------------
Private Sub Excelのアプリケーションウィンドウを最小化する()
    Application.WindowState = xlMinimized       'Macintoshでは設定できない
End Sub
'---------------------------------------------------------------------------------
Private Sub Excelのアプリケーションウィンドウを最大化も最小化もしない()
    Application.WindowState = xlNormal
End Sub
'=================================================================================
<コメント>
※1 最小化すれば他の処理が可能(マクロの実行は続くので、終了時に最大化が必要)
※2 アプリケーションウィンドウは外枠、アクティブウィンドウは内枠
サンプルブックのダウンロードは ここをクリック (YNxv203_saidaika.xls 34KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


8) ウィンドウを分割 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ウィンドウを分割する()
    With ActiveWindow
        .SplitColumn = 2                        '垂直分割線の左側の列数 ※1
        .SplitRow = 1                           '水平分割線の上側の行数 ※2
        .FreezePanes = True                     '分割ウィンドウ枠を固定する
    End With
End Sub
'---------------------------------------------------------------------------------
Sub ウィンドウの分割位置を取得する()
    MsgBox ActiveWindow.SplitColumn             'ウィンドウの左右分割位置を示す列数
    MsgBox ActiveWindow.SplitRow                'ウィンドウの上下分割位置を示す行数
End Sub
'=================================================================================
<コメント>
※1 2 には列数を記述
※2 1 には行数を記述


9) ウィンドウを並べて表示 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ウィンドウを並べて表示する()                'そのブックにシートが3枚ある場合の例
    Sheets("Sheet3").Select
        ActiveWindow.NewWindow
    Sheets("Sheet2").Select
        ActiveWindow.NewWindow
    Sheets("Sheet1").Select
    Windows.Arrange ArrangeStyle:=xlTiled       '※1 タイル状に
    Windows.Arrange ArrangeStyle:=xlCascade     '※1 段々状に
    Windows.Arrange ArrangeStyle:=xlHorizontal  '※1 水平に
    Windows.Arrange ArrangeStyle:=xlVertical    '※1 垂直に
End Sub
'=================================================================================
<コメント>
※1 並べたい形によりどれかの行を生かす


10) ウィンドウをZオーダーで移動する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 指定したウィンドウをZオーダーで一番後ろに移動する() '※1
    Windows("Book2.xls").ActivateNext           '※2
End Sub
'---------------------------------------------------------------------------------
Sub Zオーダーで一番後ろのウィンドウをアクティブにする()
    ActiveWindow.ActivatePrevious
End Sub
'=================================================================================
<コメント>
※1 Zオーダーとは Z軸(奥行)方向の階層構造における順番
※2 例えば、Book1.xls にこのマクロを作成しておき、Book2.xls、Book3.xls の順で開いてから
   マクロを実行すると動きを理解しやすい


11) ウィンドウをスクロールする このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 指定した行番号が上端になるようにウィンドウをスクロールする()
    シート名 = "Sheet1"                         '※1
    Worksheets(シート名).Activate
    行番号 = 2                                  '※2
    ActiveWindow.ScrollRow = 行番号
End Sub
'---------------------------------------------------------------------------------
Sub 指定した列番号が左端になるようにウィンドウをスクロールする()
    シート名 = "Sheet1"                         '※1
    Worksheets(シート名).Activate
    列番号 = 3                                  '※2
    ActiveWindow.ScrollColumn = 列番号
End Sub
'---------------------------------------------------------------------------------
Sub アクティブシートのA1セルを選択してウィンドウをスクロールする()
    Application.Goto Range("A1")                '※3
End Sub
'---------------------------------------------------------------------------------
Sub 指定シートの指定セルを選択してウィンドウをスクロールする()
    シート名 = "Sheet1"                         '※1
    セル番号 = "E25"                            '※4
    Application.Goto Reference:=Worksheets(シート名)
        .Range (セル番号), scroll:=True         '※5
End Sub
'=================================================================================
<コメント>
※1 Sheet1 にはワークシート名を記入
※2 2 または 3 には行または列番号を記入
※3 ウィンドウ枠を固定している場合ばデータ部はスクロールされない
※4 E25 にはセル番号を記入
※5 ウィンドウ枠を固定している場合はデータ部の左上端セルとなる


12) スクロール可能領域を設定 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub スクロール可能領域を設定する()
    シート名 = "Sheet1"                         '※1
    Worksheets(シート名).ScrollArea = "A1:D10"  '※2
End Sub
'---------------------------------------------------------------------------------
Sub スクロール可能領域を使われたセル範囲に設定する()
    ActiveSheet.ScrollArea = ActiveSheet.UsedRange.Address
End Sub
'---------------------------------------------------------------------------------
Sub スクロール可能領域の設定を解除する()
    シート名 = "Sheet1"                         '※1
    Worksheets(シート名).ScrollArea = ""
End Sub
'=================================================================================
<コメント>
※1 Sheet1 にはワークシート名を記入
※2 A1:D10 にはセル番号を記入


13) マウスポインタの形状の取得と設定 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 現在のマウスポインタの形状を取得して表示する()
    形状 = Application.Cursor                   '定数の値を取得する
    If 形状 = -4143 Then
        説明 = "標準"
    ElseIf 形状 = 1 Then
        説明 = "北西矢印"
    ElseIf 形状 = 2 Then
        説明 = "砂時計"
    ElseIf 形状 = 3 Then
        説明 = "I 字"
    End If
    MsgBox "マウスポインタの形状は " & 説明 & "型 ( " & 形状 & " ) です", , "すぐマク"
End Sub
'---------------------------------------------------------------------------------
Sub マウスポインタの形状を標準型に設定する()
    Application.Cursor = xlDefault              '-4143 ※1 
End Sub
'=================================================================================
<コメント>
※1 xlMousePointerクラスの定数の値
形状 定数
標準型 xlDefault -4143
北西矢印型 xlNorthwestArrow 1
(砂)時計型 xlWait 2
I字型 xlIBeam 3
※2 マクロ終了時には xlDefaultに戻しておく(自動的にはリセットされない)


14) セルの枠線の表示・非表示 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub セルの枠線を表示する()
    ActiveWindow.DisplayGridlines = True
End Sub
'---------------------------------------------------------------------------------
Private Sub セルの枠線を非表示にする()
    ActiveWindow.DisplayGridlines = False
End Sub
'---------------------------------------------------------------------------------
Private Sub セルの枠線の表示と非表示を切り替える()
    ActiveWindow.DisplayGridlines = Not (ActiveWindow.DisplayGridlines)
End Sub
'=================================================================================
<コメント>
※1 DisplayGridlinesプロパティは、値の取得と設定が可能
※2 Trueなら表示、Falseなら非表示
サンプルブックのダウンロードは ここをクリック (YNxv203_Gridlines.xls 34KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


15) デスクトップを表示 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub デスクトップを表示する()
    CreateObject("Shell.Application").ToggleDesktop
End Sub
'=================================================================================


16) ウィンドウ左端からセル左端までの距離 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub アクティブウィンドウ左端からアクティブセル左端までの水平距離を取得する()
    Worksheets("SSS").Activate
    Range("A1").Select
        MsgBox ExecuteExcel4Macro("GET.CELL(42)") '※1、2
    Range("A100").Select
        MsgBox ExecuteExcel4Macro("GET.CELL(42)")
    Range("A1000").Select
        MsgBox ExecuteExcel4Macro("GET.CELL(42)")
    Range("A10000").Select
        MsgBox ExecuteExcel4Macro("GET.CELL(42)")
    Range("A" & Rows.Count).Select
        MsgBox ExecuteExcel4Macro("GET.CELL(42)")
End Sub
'---------------------------------------------------------------------------------
Sub 列Aの左端からアクティブセルの左端までの距離を取得する()
    Range("C3").Select
    MsgBox ActiveCell.Left                      '※3(ポイント単位)
End Sub
'---------------------------------------------------------------------------------
Sub 行1の上端からセル範囲の上端までの距離を取得する()
    Range("C3").Select
    MsgBox ActiveCell.Top                      '※3(ポイント単位)
End Sub
'=================================================================================
<コメント>
※1 ExecuteExcel4Macroメソッドは、Excel 4.0マクロ関数を実行して結果を返してくれる
※2 GET.CELL(42)関数に相当する Visual Basic の関数はない
※3 ポイント:印刷する文字のサイズ(高さ)を指定する基本単位(1ポイントは約0.0353cm、1/72インチ)

Excel VBA Macro