BEAGLE-HC 医薬品、医療機器の研究・開発 ポータルサイト
 現在位置 : HOME > ITの活用 プログラミング > Excel コードライブラリアン(ウィンドウ操作)
くすりのこと
 治療薬の最前線
データブック
 ヘルスケア市場
 データブック
 (売上ランキング)
ニュース
 企業ニュース
 (パイプラインニュース)
 (財務・決算ニュース)
 (M&Aニュース)
 メディアニュース
ITの活用
 バリデーション
 セキュリティ
 WORD文書の作成
 プログラミング
 (Word/VBA)
 (Excel/VBA)
 (Access/VBA)
 (SAS)
 (SQL)
イベント
 イベントカレンダ
製薬会社研究
 製薬会社
 製薬会社研究
 決算短信一覧
 
 
 
記述の規則 開始・終了処理 プログラム制御 ファイル操作
ワークブック・シート操作 セル・行・列の操作 セルの書式設定 関数
ウィンドウ操作 グラフ操作 データベースの操作 印刷
サンプルプログラム      
 
Page Index
●Excelを非表示にする
●Excelを画面の表示領域外に表示する
●Excelの画面を指定した位置に表示する
●Excelの画面を最大化・最小化する
●ウインドウ枠の横分割
●ウインドウ枠の縦分割
●タイトル バーに表示される名前を設定する
●メニュバーにバージョン情報を表示する
●メニューやメニュー項目を削除または復元する
●メニューバーを非表示にする
●メニュバーのボタンを削除する
●新しいメニュー バーをアプリケーションに追加する
●新しいメニューアイテムをメニュー バーに追加する
●メニュバー名およびメニュ名を取得する
●新しいツールバー・ツールボタンを追加する
●ツールバー名およびツールバーボタン名を取得する
●ツールバーを非表示にする
●すべてのツールバーを非表示にする
●すべてのコマンドバーを非表示にする
●ステータスバーにメッセージを表示する
●次のボタンをFocusする
●SendKeys メソッドを使って 項目のtab移動をする
●ダイアログボックスをInputBox関数で表示する
●メッセージボックスを表示する
●メッセージボックスのメッセージを途中で改行する
●シート上のテキストボックスの表示位置を移動する
●画面キャプチャを取得する
●クリップボード内容をクリアする
●ユーザーフォームを表示する
●ユーザーフォームを非表示にする
 
本章では、ウインドウ操作(GUIに関わる部分)についてコードサンプルを示しながら説明しています。
 
Excelを非表示にする ↑ このページの最初へ
'現在のExcelの表示位置を取得
winTop = Application.Top
winLeft = Application.Left

Application.WindowState = xlNormal
Application.Left= -Application.Width

'Excelを元の位置に再表示
Application.Top = winTop
Application.Left = winLeft
 
Excelを画面の表示領域外に表示する ↑ このページの最初へ
'Excelを画面上で見えなくします
Dim myTop As Double
Dim myLeft As Double

'現在のExcelの表示位置を取得

myTop = Application.Top
myLeft = Application.Left

'Excelが最大化、もしくは最小化で表示されていたら処理を終了
If Application.WindowState <> xlNormal Then Exit Sub
'Excelを画面の表示領域外に表示
Application.Left = -Application.Width

'Excelを元の位置に再表示
Application.Top = myTop
Application.Left = myLeft
 
Excel画面を指定した位置に表示する ↑ このページの最初へ
'Excelをリサイズする

Dim myTop As Double
Dim myLeft As Double
Dim myWidth As Double
Dim myHeight As Double


'現在のExcelの表示位置を取得

If Application.WindowState <> xlNormal Then
'Excelが最大化、もしくは最小化されている

Else
 myLeft = Application.Left
 myTop = Application.Top
 myWidth = Application.Width
 myHeight = Application.Height
End If

If Application.WindowState = xlNormal Then
 Application.Left = 480
 Application.Top = 85.75
 Application.Width = 288.75
 Application.Height = 356
End If

'Excel表示を元に戻す
Application.Left = myLeft
Application.Top = myTop
Application.Width = myWidth
Application.Height = myHeight
 
Excel画面を最大化・最小化する ↑ このページの最初へ
'Excelを最小化します
Application.WindowState = xlMaximized

'Excelを最小化します

Application.WindowState = xlMinimized
 
ウインドウ枠の横分割 ↑ このページの最初へ
ActiveWindow.SplitRow = 13

ウインドウ分割を解除する
ActiveWindow.SplitRow = 0
 
ウインドウ枠の縦分割 ↑ このページの最初へ
ActiveWindow.SplitColumn = 5

ウインドウ分割を解除する
ActiveWindow.SplitRow = 0
 
タイトル バーに表示される名前を設定する ↑ このページの最初へ
Application.Caption = "ブルー スカイ予約システム
 
メニュバーにバージョン情報を表示する ↑ このページの最初へ
MenuBars(xlWorksheet).Menus.Add Caption:="バージョン情報(&M)"

MenuBars(xlWorksheet).Menus("バージョン情報(&M)").MenuItems.Add Caption:= "Ver.5"
 
メニューやメニュー項目を削除または復元する ↑ このページの最初へ
For Each mb In MenuBars
For Each mn In mb.Menus
mn.Delete
Next mn
Next mb
End Sub

Sub すべてのメニュの状態を元にもどす()
For Each mb In MenuBars
mb.Reset
Next mb

組み込みのメニュー バーを非表示にすることはできない(Excel95)
 
メニューバーを非表示にする ↑ このページの最初へ
*Excel97以降で有効

Sub メニューバーを非表示にする
  CommandBars("Worksheet Menu Bar").Enabled = False

  
'メニューバーを元に戻す
  CommandBars("Worksheet Menu Bar").Enabled = True

End Sub

参考1(メニュバーの構造)
メニュバー
メニュ
メニュアイテム

参考2(メニュバーの種類は以下のようにたくさんある)
Worksheet Menu Bar
Chart Menu Bar
Standard
Formatting
PivotTable
Chart
Reviewing
Forms
Stop Recording
External Data
Auditing
Full Screen
Circular Reference
Visual Basic
Web
Control Toolbox
Exit Design Mode
Drawing
Query and Pivot
Workbook tabs
Cell
Column
Row
Cell
Column
Row
Ply
XLM Cell
Document
Desktop
Nondefault Drag and Drop
AutoFill
Button
Dialog
Series
Plot Area
Floor and Walls
Trendline
Chart
Formula Bar
PivotTable Context Menu
Query
Query Layout
AutoCalculate
Object/Plot
Title Bar (Charting)
Layout
WordArt
Picture
Shadow Settings
3-D Settings
Borders
Chart Type
Pattern
Font Color
Fill Color
Line Color
Order
Nudge
Align or Distribute
Rotate or Flip
Lines
Connectors
AutoShapes
Callouts
Flowchart
Block Arrows
Stars & Banners
Basic Shapes
Shapes
Inactive Chart
Excel Control
Curve
Curve Node
Curve Segment
Pictures Context Menu
OLE Object
ActiveX Control
WordArt Context Menu
Rotate Mode
Connector
ウィザード(&W)
Add Command
Built-in Menus
System
 
メニュバーのボタンを削除する ↑ このページの最初へ
Dim myCB As CommandBar
Dim myCBCtrl As CommandBarControl

Set myCB = CommandBars("Worksheet Menu Bar")
For Each myCBCtrl In myCB.Controls
myCBCtrl.Delete
Next myCBCtrl

'メニューバーを初期状態に戻す
MenuBars(xlWorksheet).Reset
End Sub
 
新しいメニュー バーをアプリケーションに追加する ↑ このページの最初へ
新しいメニュー バーをアプリケーションに追加するには、Add メソッドを使います。
次の使用例は、新しいメニュー バーを追加し、それをアクティブにします。

With MenuBars.Add("株価市況")
With .Menus.Add("ファイル")
.MenuItems.Add "更新", "UpdateProc"
.MenuItems.Add "印刷", "PrintProc"
End With
End With
MenuBars("株価市況").Activate
 
新しいメニューアイテムをメニュー バーに追加する ↑ このページの最初へ
[Visual Basic モジュール] メニュー バーに、新しいメニューアイテムを追加します。

MenuBars(xlModule).Menus.Add Caption:="詳細ヘルプ(&M)"

定数名 説明

xlWorksheet ワークシート、マクロ シート、ダイアログ シート
xlChart グラフ
xlModule Visual Basic モジュール
xlNoDocuments ファイルが開かれていない状態
xlInfo 情報ウィンドウ
xlWorksheetShort ショート ワークシート メニュー (Excel 3.1 互換)
xlChartShort ショート グラフ メニュー (Excel 3.1 互換)
xlWorksheet4 旧ワークシート メニュー バー (Excel 4.0 互換)
xlChart4 旧グラフ メニュー バー (Excel 4.0 互換)
 
メニュバー名およびメニュ名を取得する ↑ このページの最初へ
Worksheets("sheet1").Activate
For col = 1 To MenuBars.Count
Cells(1, col) = MenuBars(col).Caption
For rw = 2 To MenuBars(col).Menus.Count + 1
Cells(rw, col) = MenuBars(col).Menus(rw - 1).Caption
Next
Next
 
新しいツールバー・ツールボタンを追加する ↑ このページの最初へ
[標準] ツールバーの先頭に新しいツールバー ボタンを追加し、
このボタンに myNewButtonMacro というマクロを登録します。

Set newButton = Toolbars("標準").ToolbarButtons.Add _
(Button:=210, Before:=1)
newButton.OnAction = "myNewButtonMacro"

次の使用例は、すべてのツールバーをそれぞれの既定の状態に戻します。

For Each tb In Application.Toolbars
tb.Reset
Next tb
 
ツールバー名およびツールバーボタン名を取得する ↑ このページの最初へ
Worksheets("sheet1").Activate
For col = 1 To Toolbars.Count
Cells(1, col) = Toolbars(col).Name
For rw = 2 To Toolbars(col).ToolbarButtons.Count + 1
Cells(rw, col) = Toolbars(col).ToolbarButtons(rw - 1).Name
Next
Next
 
ツールバーを非表示にする ↑ このページの最初へ
Toolbars(1).Visible = False
Toolbars(2).Visible = False
With Application
.ShowToolTips = False
.LargeButtons = False
.ColorButtons = False
End With

'ツールバーを初期状態に戻す
Toolbars(1).Visible = True
Toolbars(2).Visible = True
With Application
.ShowToolTips = True
.LargeButtons = False
.ColorButtons = True
End With
 
すべてのツールバーを非表示にする ↑ このページの最初へ
Sub すべてのツールバーを非表示にする()
Dim col As Integer
Worksheets("sheet1").Activate
For col = 1 To Toolbars.Count
Cells(col, 2) = ""
If Toolbars(col).Visible = True Then
Toolbars(col).Visible = False
Cells(col, 2) = "True" '状態保存
End If
Next
End Sub

Sub ツールバーの表示を元に戻す()
Dim col As Integer
Worksheets("sheet1").Activate
For col = 1 To Toolbars.Count
If Cells(col, 2) = "True" Then
Toolbars(col).Visible = True '状態復帰
End If
Next
End Sub

参考(ツールバーの構造)
ツールバー
ツールバーボタン
 
すべてのコマンドバーを非表示にする ↑ このページの最初へ
Dim myCB As CommandBar

'エラーが発生しても処理を続行する
On Error Resume Next

For Each myCB In CommandBars
  myCB.Visible = False
Next myCB

'エラーのトラップを無効にする
On Error GoTo 0

'このバーだけは例外でEnabledでセットする
CommandBars("Worksheet Menu Bar").Enabled = False

注意事項
元にもどす場合、
  myCB.Visible = False を すべて True にして元にもどすと
  すべてのバーが表示されてしまう
ステータスバーにメッセージを表示する ↑ このページの最初へ
Application.DisplayStatusBar = True
Application.StatusBar = "処理 50% 終了しました"

'ステータスバーを表示しない
Application.DisplayStatusBar = False
 
次のボタンをFocusする ↑ このページの最初へ
Application.SendKeys ("{TAB}")

*ワークシート上のボタンにはFocusはない
 
SendKeys メソッドを使って 項目のtab移動をする ↑ このページの最初へ
SendKeys {TAB},true
 
ダイアログボックスをInputBox関数で表示する ↑ このページの最初へ
Dim myNo As Integer
Dim myMsg As String,myTitle As String

mymsg = "売上No.を指定してください"
myTitle = "売上データ削除"

myNo = Val(InputBox(Prompt:=myMsg, _
Title:=myTitle))

If myNo <> 0 Then
  MsgBox myNo & "を削除します"
Else
  MsgBox "削除処理はキャンセルされました"
End If
 
メッセージボックスを表示する ↑ このページの最初へ
MsgBox "日付が入力されていません。" & Chr(13) & Chr(10) & _
  "記録がない場合は、" & Date & "を入力して下さい。"


If MsgBox("ファイル更新しますか?", vbYesNo) = vbYes Then
  MsgBox "日付が入力されていません。
End If
 
メッセージボックスのメッセージを途中で改行する ↑ このページの最初へ
Sub メッセージボックスのメッセージを途中で改行する()
  msgText = "現在のフォルダ:" & Chr(13) & CurDir()
  MsgBox msgText
End Sub

Sub Dialog1 のリスト ボックス 1 の選択項目を、英字の A から Z に設定する()
  For i = 65 To 90
  DialogSheets("Dialog1").ListBoxes(1).AddItem Text:=Chr(i)
  Next i
End Sub

Chr(9) タブ
Chr(10) ライン フィード文字
Chr(13) キャリッジ リターン
 
シート上のテキストボックスの表示位置を移動する ↑ このページの最初へ
ActiveSheet.DrawingObjects("テキスト 4").Select
Selection.Left = 109.5
Selection.Top = 33

位置の単位は、ポイント (1 ポイントは、1/72 インチ、0.35 mm)
 
画面キャプチャを取得する ↑ このページの最初へ
'画面全体をキャプチャする
Private Declare Sub keybd_event Lib "user32"(ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
 
Private Const KEYEVENTF_EXTENDEDKEY As Long = &H1
Private Const KEYEVENTF_KEYUP As Long = &H2
Private Const fKEYDOWN = KEYEVENTF_EXTENDEDKEY
Private Const fKEYUP = KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP
 
Sub GetCapture()


  
'キーストロークをシュミレート
    keybd_event vbKeySnapshot, 0&, fKEYDOWN, 0&   
'PrintScreenキー押す
    keybd_event vbKeySnapshot, 0&, fKEYUP, 0&      'PrintScreenキー離す

    Worksheets("Sheet1").Paste

End Sub
 
'アクティブ画面をキャプチャする
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
  ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Const KEYEVENTF_EXTENDEDKEY As Long = &H1
Private Const KEYEVENTF_KEYUP As Long = &H2
Private Const VK_LALT As Long = &HA4
Private Const fKEYDOWN = KEYEVENTF_EXTENDEDKEY
Private Const fKEYUP = KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP

Sub GetCapture2()

  'キーストロークをシュミレート
  keybd_event VK_LALT, 0&, fKEYDOWN, 0&        'ALTキー押す
  keybd_event vbKeySnapshot, 0&, fKEYDOWN, 0&    'PrintScreenキー押す
  keybd_event vbKeySnapshot, 0&, fKEYUP, 0&       'PrintScreenキー離す
  keybd_event VK_LALT, 0&, fKEYUP, 0&           
'ALTキー戻す

  Worksheets("Sheet1").Paste

End Sub
 
クリップボード内容をクリアする ↑ このページの最初へ
Sub ClearClipboard()

  Excel.Application.CutCopyMode = False

End Sub
 
ユーザーフォームを表示する ↑ このページの最初へ
Application.Visible = False 'ウインドウを消す
UserForm1.Show '表示
 
ユーザーフォームを非表示にする ↑ このページの最初へ
Unload UserForm1
Application.Visible = True 'ウインドウを復活

↑ このページの最初へ

   ご意見・ご感想をお寄せください。 ‖ お問い合わせはこちらから ‖ このサイトについて           サイトマップ  ‖
  Copyright 2006 - 2013 uTRAM Corp. All Rights Reserved
 
PHARCIS(ヘルスケア最新情報提供)
Facebook for PHARCIS
ClinMark8
アクセスランキング
(2013年5月)

1位 企業ニュース
2位 売上ランキング
3位 メディアニュース
4位 製薬会社
5位 治療薬の最前線
6位 決算短信一覧
7位 データブック
8位 製薬会社研究
9位 イベントカレンダ
10位 パイプラインニュース