【ExcelVBA】Excelを開く方法

絶対パスでExcelを開く

コード

Sub Function1()
   
    '絶対パス
    Dim filePath As String
    filePath = "C:/Temp/sample1.xlsx"
    
    '開く
    Dim wb As Workbook
    Set wb = Workbooks.Open(filePath)
    
    '先頭シート取得
    Dim ws As Worksheet
    Set ws = wb.Sheets(1)
    
    'セル(行,列)から値を取得
    Dim v As Variant
    v = ws.Cells(1, 2).Value
    
    'インクリメント
    v = v + 1
    
    'セル(行,列)へ値を設定
    ws.Cells(1, 2).Value = v
    
    '保存
    wb.Close savechanges:=True
    
End Sub

要点

  1. 絶対パスを指定
  2. Workbooks.Open関数でExcelを開く

相対パスでExcelを開く

コード

Sub Function2()
    
    '自分のExcelのパス取得
    Dim thisPath As String
    thisPath = ThisWorkbook.Path
    
    '相対パス
    Dim filePath As String
    filePath = thisPath & "/sample1.xlsx"
    
    '開く
    Dim wb As Workbook
    Set wb = Workbooks.Open(filePath)
    
    '先頭シート取得
    Dim ws As Worksheet
    Set ws = wb.Sheets(1)
    
    'セル(行,列)から値を取得
    Dim v As Variant
    v = ws.Cells(1, 2).Value
    
    'インクリメント
    v = v + 1
    
    'セル(行,列)へ値を設定
    ws.Cells(1, 2).Value = v
    
    '保存
    wb.Close savechanges:=True
    
End Sub

要点

  1. 相対パスを指定
  2. Workbooks.Open関数でExcelを開く

ダイアログでExcelを開く

コード

Sub Function3()
    
    'ダイアログ起動
    Dim filePath As String
    filePath = Application.GetOpenFilename("Excel,*.xls?")
    
    '開く
    Dim wb As Workbook
    Set wb = Workbooks.Open(filePath)
    
    '先頭シート取得
    Dim ws As Worksheet
    Set ws = wb.Sheets(1)
    
    'セル(行,列)から値を取得
    Dim v As Variant
    v = ws.Cells(1, 2).Value
    
    'インクリメント
    v = v + 1
    
    'セル(行,列)へ値を設定
    ws.Cells(1, 2).Value = v
    
    '保存
    wb.Close savechanges:=True
    
End Sub

要点

  1. ダイアログでExcelを選択
  2. Workbooks.Open関数でExcelを開く

関連リンク

  1. 【ExcelVBA】目次
おすすめの記事