[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBSからエクセルのソート機能を使いたい』(さよなら西鶴またきて近松)
こんばんは。よろしくお願いいたします。
最終的にはVBSに移植するのですが、ソートの記述でエラーが起きています。 下記のコードの「ここでエラー」の部分がエラーになります。
実行時エラー'1004' 参照が正しくありません。
というエラーです。
Sub TEST()
Dim xl As Object
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Integer
Dim j As Integer
Dim r As Range
Set xl = CreateObject("Excel.Application")
xl.Visible = True
'xl.ScreenUpdating = False
Set wb = xl.Workbooks.Add
Set ws = wb.Worksheets(1)
For i = 1 To 20
For j = 1 To 5
ws.Cells(i, j).Value = i * j
Next
Next
'Set r = ws.Range(ws.Cells(1, 1), ws.Cells(20, 5))
Set r = ws.Cells(1, 1).Resize(20, 5)
r.Sort ws.Cells(1, 1), 2, 0, 1, False, 1, 1, 0 'ここでエラー
'xl.ScreenUpdating = True
Set ws = Nothing
Set wb = Nothing
Set xl = Nothing
End Sub
ソート作業をマクロの自動記録し、オブジェクトブラウザで引数の数値を確認して 置き換えました。
'自動記録マクロ
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
最終的には、VBSでエクセルオブジェクトを生成し、テキストファイルを読み込んでソート、 ソート後のものを新規テキストファイルに書き出し、ということをしようと考えています。 それでVBSからソート作業を行わせようとしています。
エラー箇所をどのように書き直せばいいでしょうか? ご教示お願いいたします。
> 参照が正しくありません。
r.Sort ws.Cells(1, 1), 2, , , , , , 0, 1, False, 1, 1, 0 ではないでしょうか?
(VBAメンテ担当)
VBAメンテ担当さん、ご回答ありがとうございます。
>r.Sort ws.Cells(1, 1), 2, , , , , , 0, 1, False, 1, 1, 0
第2、第3のキーの部分も記述しないといけなかったのですね。 おかげさまで解決しました。ありがとうございました。
最終形ではないですが、VBSを書いておきます。 といってもエラー箇所を書き換えただけですが・・・。
Dim xl
Dim wb
Dim ws
Dim i
Dim j
Dim r
Set xl = CreateObject("Excel.Application")
xl.Visible = True
'xl.ScreenUpdating = False
Set wb = xl.Workbooks.Add
Set ws = wb.Worksheets(1)
For i = 1 To 20
For j = 1 To 5
ws.Cells(i, j).Value = i * j
Next
Next
'Set r = ws.Range(ws.Cells(1, 1), ws.Cells(20, 5))
Set r = ws.Cells(1, 1).Resize(20, 5)
r.Sort ws.Cells(1, 1), 2, , , , , , 0, 1, False, 1, 1, 0
'xl.ScreenUpdating = True
Set ws = Nothing
Set wb = Nothing
Set xl = Nothing
(さよなら西鶴またきて近松)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.