@NickSlashが昨日述べたように、列に「ビジネスプロセスID」(スペースを含む)のような範囲名を付けているとは思えません。ただし、これはバージョンの問題である可能性があるため、「TaskB」という名前の列の「列全体」範囲オブジェクトを取得する方法を示します(「名前の定義」ダイアログを使用)。
' Range by Name
Set oRng = oWs.Range("TaskB")
(列)番号で2番目の列の範囲を取得するには、次を使用します。
' Range by Number
Set oRng = oWs.Cells(1, 2).EntireColumn
注意:行番号と列番号は1で始まります。したがって、「。Offset(、1)」コードは非常に怪しげに見えます。「不明なランタイムエラー」が発生した可能性があります。
私が思うに、最初の行に列のタイトルを書き込んだ場合は、その行の列をループして値を確認する必要があります。
' Range by Lookup
Set oRng = Nothing
For nCol = 1 To 5
If "Title B" = oWs.Cells(1, nCol).Value Then
Set oRng = oWs.Cells(1, nCol).EntireColumn
Exit For
End If
Next
実験したい場合は、これらのスニペットを次のようなテストコードに挿入します。
Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
Dim sDir : sDir = oFS.GetAbsolutePathname("..\xls")
Dim sFSpec : sFSpec = oFS.BuildPath(sDir, "work.xls")
' Start clean
oFS.CopyFile oFS.BuildPath(sDir, "13763603.xls"), sFSpec
' Open .XLS
Dim oXls : Set oXls = CreateObject("Excel.Application")
Dim oWb : Set oWb = oXls.Workbooks.Open(sFSpec)
Dim oWs : Set oWs = oWb.Worksheets(1)
Dim oRng, nCol
' Range by XXX
...
oXls.Visible = True
WScript.Stdin.ReadLine
If Not oRng Is Nothing Then
oRng.Delete
WScript.Stdin.ReadLine
End If
oXls.Visible = False
oWb.Close False
oXls.Quit
証拠を与えるための写真:

