【VBA】ExcelファイルのOpen

※変数の定義を強制する方法:

一番上に、「Option Explicit」を追加して、変数の定義が必須となる。

ソース

 1 Private Sub CommandButton2_Click()
 2 //スクリーンのロック
 3 Application.ScreenUpdating = False
 4 //異常の発生の場合、「TheEnd」へ移動
 5 On Error GoTo TheEnd
 6     '----↓----変数定義----↓----'
 7     Dim xlTmpBook As Excel.Workbook
 8     Dim thisSheet As Excel.Worksheet
 9     
10     'ファイル集合
11     Dim excelName As Variant
12     '一時開いたファイル
13 
14     Dim q As Integer
15     Dim colorRow As Integer
16 
17     'ファイルの型とダイアログのタイトルを設定、ファイル集合を返す
18     excelName = Application.GetOpenFilename("Excelファイル (*.csv;*.xls), *.xls", , "★★★★Title★★★★", , True)
19     
20     '----↓----繰り返す----↓----'
21     For q = 1 To UBound(excelName)
22         If excelName(q) = False Then
23             Exit Sub
24         Else
25             'Debug.Print excelName(q)
26         End If
27     
28         '開いたファイルのチェック、存在しない場合、ファイル名が設定
29         If IsObject(xlTmpBook) Then
30             'ファイルが開く
31             Set xlTmpBook = Application.Workbooks.Open(excelName(q))
32         Else
33             //処理中止
34             Exit Sub
35         End If
36         //専用のシートを選択
37         Set thisSheet = xlTmpBook.Worksheets("画面項目説明_詳細")
38         
39         //シートを活性化にする
40         thisSheet.Range("A1").Activate
41         
42         //「A」列の一番最後の行を取得
43         colorRow = CInt(thisSheet.Range(thisSheet.Cells(thisSheet.Rows.count, "A").End(xlUp).Address(ReferenceStyle:=xlA1)).Row)
44 
45         //..............
46         //スクリプト
47         //..............
48         
49         //「A1」セールを選定にする
50         thisSheet.Cells(1, 1).Select
51         
52         If (MsgBox("更新しますか?", vbOKCancel) = vbOK) Then
53             //開いたファイルを更新する
54             xlTmpBook.Close savechanges:=True
55         Else
56             //開いたファイルを更新しない
57             xlTmpBook.Close savechanges:=False
58         End If
59 Next q
60 TheEnd:
61 //スクリーンのロック
62 Application.ScreenUpdating = true
63 
64 End Sub
原文地址:https://www.cnblogs.com/lnsylt/p/10170614.html