【VBA】ExcelファイルのOpen

时间:2023-01-13 16:11:54

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

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

ソース

 Private Sub CommandButton2_Click()
//スクリーンのロック
Application.ScreenUpdating = False
//異常の発生の場合、「TheEnd」へ移動
On Error GoTo TheEnd
'----↓----変数定義----↓----'
Dim xlTmpBook As Excel.Workbook
Dim thisSheet As Excel.Worksheet 'ファイル集合
Dim excelName As Variant
'一時開いたファイル Dim q As Integer
Dim colorRow As Integer 'ファイルの型とダイアログのタイトルを設定、ファイル集合を返す
excelName = Application.GetOpenFilename("Excelファイル (*.csv;*.xls), *.xls", , "★★★★Title★★★★", , True) '----↓----繰り返す----↓----'
For q = To UBound(excelName)
If excelName(q) = False Then
Exit Sub
Else
'Debug.Print excelName(q)
End If '開いたファイルのチェック、存在しない場合、ファイル名が設定
If IsObject(xlTmpBook) Then
'ファイルが開く
Set xlTmpBook = Application.Workbooks.Open(excelName(q))
Else
//処理中止
Exit Sub
End If
//専用のシートを選択
Set thisSheet = xlTmpBook.Worksheets("画面項目説明_詳細") //シートを活性化にする
thisSheet.Range("A1").Activate //「A」列の一番最後の行を取得
colorRow = CInt(thisSheet.Range(thisSheet.Cells(thisSheet.Rows.count, "A").End(xlUp).Address(ReferenceStyle:=xlA1)).Row) //..............
//スクリプト
//.............. //「A1」セールを選定にする
thisSheet.Cells(, ).Select If (MsgBox("更新しますか?", vbOKCancel) = vbOK) Then
//開いたファイルを更新する
xlTmpBook.Close savechanges:=True
Else
//開いたファイルを更新しない
xlTmpBook.Close savechanges:=False
End If
Next q
TheEnd:
//スクリーンのロック
Application.ScreenUpdating = true End Sub