[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.