<コメント>
※1 True:表示する、False:非表示にする
'=========================================================================================
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が設定されていることが必要
'=========================================================================================
Sub 数式バーを非表示にする()
Application.DisplayFormulaBar = False '※1
End Sub
'=========================================================================================
'=========================================================================================
Sub 数式バーの高さを設定する()
行数 = 3 '※2
Application.FormulaBarHeight = 行数
End Sub
'-----------------------------------------------------------------------------------------
Sub 数式バーの高さを取得する()
行数 = Application.FormulaBarHeight
MsgBox " 数式バーの高さは " & 行数 & "行分です。", , "すぐマク"
Application.FormulaBarHeight = 1 '標準に戻す
End Sub
'=========================================================================================
<コメント>
※1 False:非表示にする、True:表示する
※2 3 には行数を記述する
'=========================================================================================
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) ※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。
|
'=========================================================================================
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 には行数を記述
'=========================================================================================
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 並べたい形によりどれかの行を生かす
'=========================================================================================
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 の順で開いてから
マクロを実行すると動きを理解しやすい
'=========================================================================================
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 ウィンドウ枠を固定している場合はデータ部の左上端セルとなる
'=========================================================================================
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 にはセル番号を記入
'=========================================================================================
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に戻しておく(自動的にはリセットされない)
'=========================================================================================
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) ※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。
|
'=========================================================================================
Sub デスクトップを表示する()
CreateObject("Shell.Application").ToggleDesktop
End Sub
'=========================================================================================
'=========================================================================================
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インチ)