Excelノート 1-1 起動・終了・開く・閉じる

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

1   常にマクロを有効にして立ち上げる方法
2   マクロでBookをCloseするには?
3   どのシートでブックを閉じても起動時シート1が開くようにする方法
4   エクセルのファイルを開いた時にフォームを同時に出すには?
5   ブックを「閉じるとき」に自動的に保存するには
6   BookとExcelの画面を一気に閉じるには?
7   保存確認のメッセージを表示しないでブックを閉じるには?
8   何よりも先にユーザーフォームを表示するには?
9   ファイル名の入ったセルを指定してブックを開くには
10 フォルダ内のEXCELファイルを全て開くには?
11 新規も含め、全てのExcelを起動した時、マクロを実行するには
12 リンクすると、リンク元のブックが勝手に閉じてしまう
13 ブックを開いた時に最小表示にするには
14 他のExcelファイルを開くには
15 起動時、システムメニューを表示しなくするには?
16 フォルダの中のフォルダにあるファイルを全て開くには
17 右クリックでエクセルを終了するには(保存して終了、保存しないで終了、別名で保存して終了)
18 ファイルが開いているかどうかをチェックして、開いていなければ開くには?
19 指定の時間以降、ファイルを開けなくするには?
20 ファイルを開く際、他のファイルへの自動リンクの更新メッセージを表示しない方法は?

1 常にマクロを有効にして立ち上げる方法
Excel97
 メニューから、[ツール]、[オプション]、[全般]、[マクロウィルスから保護する] のチェックを外します。
Excel2000
 メニューから、[ツール]-[マクロ]-[セキュリティ]でセキュリティレベルを低にする
2 マクロでBookをCloseするには?   
複数のブックを開いていてすべてのブックを終了
 Sub test()
  Workbooks.Close
 End Sub

アクティブなブックだけ終了
 Sub test()
  ActiveWorkbook.Close
 End Sub

ブック名を指定して終了
 Sub test()
   Workbooks("システム.xls").Close
 End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
3 どのシートでブックを閉じても起動時シート1が開くようにする方法
Private Sub Workbook_Open()
 Sheets("sheet1").Select
 Range("a1").Select
End Sub
 
  このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。
Sub auto_open()
 Sheets("sheet1").Select
 Range("a1").Select
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません)
Private Sub Workbook_Open と Sub auto_open では、
Private Sub Workbook_Open の方が先に実行されます。
4 エクセルのファイルを開いた時にフォームを同時に出すには?
Private Sub Workbook_Open()
 UserForm1.Show
End Sub

  このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。
Sub auto_open()
 UserForm1.Show
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません。)
5 ブックを「閉じるとき」に自動的に保存するには
Sub Auto_Close()
 ActiveWorkbook.Save
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません。)
6 BookとExcelの画面を一気に閉じるには?
http://www.keep-on.com/~excelyou/2000lng1/200005/00050057.txt
 「BookとExcelの画面を一気に閉じるには?」 【編集】
Sub 保存終了()
 ActiveWorkbook.Save
 Application.Quit
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
7 保存確認のメッセージを表示しないでブックを閉じるには?
Sub test1()  '保存しないでブックだけ閉じる
 Workbooks("BOOK1.XLS").Close SaveChanges:=False
 
'SaveChanges:=False は、False だけでもOK
End Sub
Sub test2()  
'保存してブックだけ閉じる
 Workbooks("BOOK1.XLS").Close SaveChanges:=True
 
'SaveChanges:=True は、True だけでもOK
End Sub
Sub test3()  
'現在のブックを保存してExcel自体も閉じる
 ThisWorkbook.Saved = True
 Application.Quit
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
8 何よりも先にユーザーフォームを表示するには?
ブックを開いた時にブックを非表示にします。
Sub Auto_Open()
 Windows("Book1.xls").Visible = False
 Load UserForm1
 UserForm1.Show
 Windows("Book1.xls").Visible = True
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません。)
9 ファイル名の入ったセルを指定してブックを開くには
http://www.keep-on.com/excelyou/2000lng4/200009/00090076.txt
  「セルを指定してブックを開くには」  【VBA】
Sub test()
    MyF$ = "c:\www\" & ActiveCell.Value & ".xls"
    if dir(MyF$) <> "" then Workbooks.Open Filename:=MyF$
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
10 フォルダ内のEXCELファイルを全て開くには?
My Documentsの中の全てのExcelファイルを開きます。
Sub Book_Open()
 Dim BookName As String
 Dim PathName As String
 PathName = "C:\My Documents\"
 BookName = Dir(PathName & "*.xls")
 Do Until BookName = ""
  Workbooks.Open PathName & BookName
  BookName = Dir()
 Loop
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
My Documentsの中の全てのExcelファイルを開きます。
Sub Book_Open()
 Dim i As Integer
 With Application.FileSearch
  .NewSearch
  .LookIn = "C:\My Documents\"
  .Filename = "*.xls"
  .FileType = msoFileTypeExcelWorkbooks
  If .Execute() > 0 Then
   For i = 1 To .FoundFiles.Count
   Workbooks.Open Filename:=.FoundFiles(i)
   Next
  Else
   MsgBox ("該当ファイルが見つかりません。")
  End If
 End With
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
11 新規も含め、全てのExcelを起動した時、マクロを実行するには
PERSONAL.XLS の標準モジュールに
 Sub auto_open()
  実行したい処理
 End Sub

と記入すると、次回起動時から実行されます。
PERSONAL.XLS というのは[ツール]−[マクロ]−[新しいマクロの記録]
そのダイアログの中にある「マクロの保存先」のプルダウンボタンが
普通(デフォルト)だと「作業中のブック」だと思いますが、
その中に「個人用マクロブック」というのが有ります。
そのブック(ファイル)が PERSONAL.XLS です。
もしないようでしたら、ちょっとしたマクロの自動記録をして
その保存先を「個人用マクロブック」にすると、
個人用マクロブック(PERSONAL.XLS) が作られます。
12 リンクすると、リンク元のブックが勝手に閉じてしまう
Excel97(この現象は、Excel2000では出ません)
 リンク元のブックは、変更がないと閉じてしまうので、どこかにNOW関数を張付け、
 保存時から変更を生じさせることにより、閉じないようにする。
13 ブックを開いた時最小表示にするには
Sub auto_open()
 Application.WindowState = xlMinimized
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません。)
14 他のExcelファイルを開くには
同じフォルダに入っているファイルの場合
Sub test()
 Workbooks.Open Filename:=ThisWorkbook.Path & "\Book2.xls"
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
別のフォルダに入っているファイルの場合、フルパスで指定します。
Sub test()
 Workbooks.Open Filename:="C:\My Documents\Book2.xls"
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
15 起動時、システムメニューを表示しなくするには?
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200205/02050090.txt
 「ブックを開くとき、EXCELのシステムメニューが表示されないようにするには?」【VBAラウンジ】
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
Private Declare Function GetWindowLong Lib "user32" _
 Alias "GetWindowLongA" _
 (ByVal hwnd As Long, _
 ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" _
 Alias "SetWindowLongA" _
 (ByVal hwnd As Long, _
 ByVal nIndex As Long, _
 ByVal dwNewLong As Long) As Long
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Sub HideSysMenu()
 Dim Ret As Long
 Dim hwnd As Long
 Dim Wnd_STYLE As Long
 hwnd = GetActiveWindow()
 Wnd_STYLE = GetWindowLong(hwnd, GWL_STYLE)
 Wnd_STYLE = Wnd_STYLE And Not WS_SYSMENU
 Ret = SetWindowLong(hwnd, GWL_STYLE, Wnd_STYLE)
 Ret = DrawMenuBar(hwnd)
End Sub
Private Sub RestoreSysMenu()
 Dim Ret As Long
 Dim hwnd As Long
 Dim Wnd_STYLE As Long
 hwnd = GetActiveWindow()
 Wnd_STYLE = GetWindowLong(hwnd, GWL_STYLE)
 Wnd_STYLE = Wnd_STYLE Or WS_SYSMENU
 Ret = SetWindowLong(hwnd, GWL_STYLE, Wnd_STYLE)
 Ret = DrawMenuBar(hwnd)
End Sub
Public Sub Auto_Open()
 HideSysMenu
End Sub
Public Sub Auto_Close()
 RestoreSysMenu
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません。)
16 フォルダの中のフォルダにあるファイルを全て開くには
「ツール」−「参照設定」でMicrosoft Scripting Runtimeにチェックし
ておきます。
Sub FoldersUnderFolder()
 Dim MyFS As Scripting.FileSystemObject
 Dim MyFolders As Scripting.Folders
 Dim MyFolder As Scripting.Folder
 Dim MyFile As Scripting.File
 Set MyFS = New Scripting.FileSystemObject
 Set MyFolder = MyFS.GetFolder("F:\Tmp\Test")
 Set MyFolders = MyFolder.SubFolders
  For Each MyFolder In MyFolders
   For Each MyFile In MyFolder.Files
    If MyFile.Type = "Microsoft Excel ワークシート" Then
     Workbooks.Open MyFile.Path
    End If
   Next
  Next
 Set MyFile = Nothing
 Set MyFolders = Nothing
 Set MyFolder = Nothing
 Set MyFS = Nothing
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
17 右クリックで終了するには(保存して終了、保存しないで終了、別名で保存して終了)
http://www.keep-on.com/~excelyou/2000lng4/200009/00090164.txt
  「右クリックでエクセルを終了させたいのですが****」  【VBA】
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
 Cancel = True
 Dim sentaku As Integer
 On Error GoTo TRAP
 sentaku = InputBox(prompt:="処理を選んでください" & Chr(10) & _
 "" & Chr(10) & "1)保存して終了する" & Chr(10) & _
 "2)保存しないで閉じる" & Chr(10) & _
 "3)別名で保存する", Title:="処理の選択", Default:=1)
 Select Case sentaku
  Case 1
   Call 保存して終了する
  Case 2
   Call 保存しないで終了
  Case 3
   Call 別名で保存して終了
 End Select
 Exit Sub
TRAP:
 Cancel = False
End Sub

  このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。

Sub 保存して終了する()
 ActiveWorkbook.Save
 ActiveWorkbook.Close
End Sub
Sub 保存しないで終了()
 ThisWorkbook.Close SaveChanges:=False
End Sub
Sub 別名で保存して終了()
 Application.Dialogs(xlDialogSaveWorkbook).Show
 ActiveWorkbook.Close
End Sub

  
このコードの使い方は、
マクロの使い方(1)標準モジュールにあります。
18 ファイルが開いているかどうかをチェックして、開いていなければ開くには?
http://www.keep-on.com/~excelyou/2000lng4/200006/00060029.txt
  他ブックからの参照方法」  【VBA ラウンジ】
マイドキュメント内の、得意先マスター.xlsを開きます。
Sub test()
 Dim wb As Workbook
 For Each wb In Workbooks
  If wb.Name = "得意先マスター.xls" Then
   wb.Activate
   Exit For
  End If
 Next
 If ActiveWorkbook.Name <> "得意先マスター.xls" Then
  Workbooks.Open "C:\My Documents\得意先マスター.xls"
 End If
End Sub

  このコードの使い方は、
マクロの使い方(1)標準モジュールにあります。
19 指定の時間以降、ファイルを開けなくするには?
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200203/02030020.txt
 
 「時間が来たら入力出来ないようにするには?」  【VBA ラウンジ】
このコードは、ファイルを開く際自動的に実行されます
Sub Auto_Open()
   Dim MyD As Date
   MyD = #2002/03/02 0:54:00#  
'ここで日付と時刻を指定
   If Now() >= MyD Then 
      MsgBox "締め切りが過ぎましたので" & Chr(10) & "ブックは使用できません", 48 
      ThisWorkbook.Close False 
   End If 
End Sub 
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません。)

上のコードを書き込んだファイルは、指定時間以降は他のファイルから次のコードで開きます
Sub Test()
   Workbooks.Open Filename:="ブック名.xls"
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

20 ファイルを開く際、他のファイルへの自動リンクの更新メッセージを表示しない方法は?
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200205/02050186.txt 
  「リンクされているBOOKのOPEN時のメッセージをOFFにするには」 【VBA ラウンジ】
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010244.txt 
  「リンクの自動更新」  【VBA ラウンジ】
【更新する場合】
 1. ツール → オプション → 編集 タブの「リンクの自動更新前にメッセージを表示する」のチェックをはずす。
   ※ この場合、全てのファイルでこの設定になります。
別のファイルを作成し、そこに書き込んで、そこから開きます。
【更新する場合】
 Sub Auto_Open()
  Application.ScreenUpdating = False
  Workbooks.Open Filename:="C:\My Documents\メッセージを消したいファイル名.xls", UpdateLinks:=3
  ThisWorkbook.Close
  Application.ScreenUpdating = True
 End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません)

【更新しない場合】
 Sub Auto_Open()
  Application.ScreenUpdating = False
  Workbooks.Open Filename:="C:\My Documents\メッセージを消したいファイル名.xls", UpdateLinks:=0
  ThisWorkbook.Close
  Application.ScreenUpdating = True
 End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
  (ただし、上記のマクロの使い方で、4番目の「Alt+F8 でマクロ名を選んで、実行します」は、必要ありません)

UpdateLinksの引数によって、以下の設定になります
 0  外部参照、リモート参照ともに更新されません。
 1  外部参照は更新され、リモート参照は更新されません。
 2  リモート参照は更新され、外部参照は更新されません。
 3  外部参照、リモート参照ともに更新されます。
他のブックを参照しているのが外部参照。
別のアプリケーションへリンクが張られていて、データを受け取っているのがリモート参照です。

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

このページのTOPへ

inserted by FC2 system