サンプル集  >  other  >  指定したBookのシート毎のセルの内容を取得
指定したBookのシート毎のセルの内容を取得
2025/07/12

指定したBookのシート毎のセルの内容を取得しDebug.Printで表示してみます。

◆環境
OS Windows 10 Home 22H2 64bit
Excel Microsoft Office Home and Business 2010
14.0.7268.5000 (32 ビット)
  1. 開発タブを表示する設定
  2. プログラム

開発タブを表示する設定

[ファイル]メニューを開き[オプション]を選択します。


[リボンのユーザー設定]を選択し右側の[開発]をチェックし[OK]を押します。


[開発]タブを選択し[Visual Basic]をクリックします。


以上でVBAの編集の準備ができました。

プログラム

実行するとファイル選択ダイアログが開き、Excelブックを指定するとそのブックのすべてのシートのセル(5, 5)の値を表示するプログラムを作ってみます。

YMWEVBA045.xlsm
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
Option Explicit

Function ProcEachWorkbook(wb As Workbook) As Integer

    Debug.Print "wb.Name=[" & wb.Name & "]"

    Dim ws As Worksheet
    Dim ret As Integer: ret = 0
    For Each ws In wb.Worksheets
        ret = ProcEachWorksheet(ws)
        If ret <> 0 Then
            Exit For
        End If
    Next

    ProcEachWorkbook = ret

End Function

Function ProcEachWorksheet(ws As Worksheet) As Integer

    Debug.Print "ws.Name=[" & ws.Name & "]"
    Debug.Print "(5:5)=[" & ws.Cells(5, 5).Value & "]"

    ProcEachWorksheet = 0

End Function

Sub ReadBook()

    Debug.Print "START ReadBook"

    ' ファイルを選択
    Dim FileName As String
    FileName = Application.GetOpenFilename( _
                 "Excel ファイル,*.xlsx" _
               )
    If FileName = "False" Then
        MsgBox "ファイルを指定してください。"
        Exit Sub
    End If

    Debug.Print "FileName=[" & FileName & "]"

    ' ファイルを開く
    Dim wb As Workbook
    Set wb = Workbooks.Open(FileName)

    Dim ret As Integer
    ret = ProcEachWorkbook(wb)

    ' ファイルを閉じる
    wb.Close

    Debug.Print "E N D ReadBook"

End Sub

ブック毎の処理とシート毎の処理で関数を分けてみました。

▲ PageTop  ■ Home


Copyright (C) 2025 ymlib.com