プログラミングのメモ

プログラミングの学び直し備忘録

VBA:Excel :ブック

ブックを開く

'*************************************
'// ブックを開く
'//
'*************************************
Sub ブックを開く_パス指定()

    Dim wb As Workbook
    
    '戻りを使わないときには、引数をカッコで括らないというのがVBAの文法です。
    '戻りを使うのならカッコで引数を括らなければならない。
    Set wb = Workbooks.Open(Filename:="D:\_Prog\Excel_VBA\■01_ブック\Sample.xlsx")
    
    MsgBox wb.Name
    MsgBox wb.Path
    
    wb.Close
    
End Sub

ブックを閉じる

'*************************************
'// ブックを閉じる
'//   上書き保存/保存しない
'*************************************
Sub mth_CloseBook()
    
    Call ブックを開く_パス指定
    
    Dim wb As Workbook
    Set wb = Workbooks("Sample.xlsx")
    
    Dim ws As Worksheet
    Set ws = wb.Worksheets(1)
    
    ws.Range("A1").Value = "dd"
    
    Dim bSaveFlg As Boolean
    
    Dim res As VbMsgBoxResult
    res = MsgBox("上書き保存?", vbYesNo)
    
    If res = vbYes Then
        bSaveFlg = True
    Else
        bSaveFlg = False
    End If
    
    If bSaveFlg Then
        wb.Close SaveChanges:=True
    Else
        wb.Close SaveChanges:=False
    
    End If

End Sub

ブック OPEN確認

'*******************************
'// Check book Opened
'// ファイルOPEN確認
'*******************************
Function mth_ChkBookOpen(ByVal sFile_fp As String) As Boolean
    On Error Resume Next
    
    Open sFile_fp For Append As #1
    Close #1
    
    If Err.Number > 0 Then
        mth_ChkBookOpen = True
    Else
        mth_ChkBookOpen = False
    End If
    
End Function

ブック開く ダイアログ

'*******************************
'// Open FileDialog
'// ダイアログでファイルを開く
'*******************************
Sub mth_OpenFileDialog()

    Dim vFileName_fp As Variant
    
    '// GetOpenFilename : 「キャンセル」の戻り値は、bool型
    vFileName_fp = Application.GetOpenFilename("Excel Book,*.xsl?")
    If VarType(vFileName_fp) = vbBoolean Then
        MsgBox "Cancel"
    Else
        Workbooks.Open vFileName_fp
    End If
    
End Sub

他のブックのプロシージャ呼び出し

'****************************************
'// 他のブックのプロシージャ呼び出し
'****************************************
Sub mth_他のブックのプロシージャ呼び出し()

    Dim sFile_fp As String
    sFile_fp = "D:\_Prog\Excel_VBA\■01_ブック\Sample_VBA.xlsm"
    Debug.Print Application.Run("'D:\_Prog\Excel_VBA\■01_ブック\Sample_VBA.xlsm'!Test", 2)
    
    Debug.Print Application.Run("'" & sFile_fp & "'" & "!Test", 2)
    
End Sub