VBSでソート処理を行っています。
Excel2007以上の環境では、正常に動作したのですがExcel2003環境では
どうもうまく動きません。
とても困っています。
ご教示いただけないでしょうか。
'ソート処理
'// エクセルオブジェクトを使用して実行
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Workbooks.Open "C:\test.csv"
objXL.ActiveSheet.Sort.SortFields.Clear
objXL.ActiveSheet.Range("A1:M" & iLine).Sort objXL.ActiveSheet.Range("K1"), , , , , , , 0, 1, False, 1, 1, 0
objXL.ActiveSheet.Sort.SetRange objXL.ActiveSheet.Range("A1:O5000")
objXL.ActiveSheet.Sort.Header = 1
objXL.ActiveSheet.Sort.MatchCase = 0
objXL.ActiveSheet.Sort.Orientation = 1
objXL.ActiveSheet.Sort.Apply
Excel2003では、「Clear」がサポートされていないようで、
その処理を抜いて実行してみましたが、「438のエラー」が表示されてしまいます。
根本から理解できておらず申し訳ありません
どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
SortオブジェクトはExcel2007で追加されたものだとのことです。
http://msdn.microsoft.com/ja-jp/library/office/f …
http://officetanaka.net/excel/vba/tips/tips148.htm
つまり、Excel2003にはSortオブジェクトはないということのようです。
そのため、質問者様のコードをExcel2003で実行すると、
objXL.ActiveSheet.Sort.
で始まる行はすべてエラーになると思われます。
かわりにRange.Sortメソッドを使ってください。
http://msdn.microsoft.com/ja-jp/library/office/f …
それで対応できなければオートフィルタを使ったりVBAで書いたりしなければならないと思います。
それを踏まえて質問者様のコードを見ると、Range.SortメソッドとSortオブジェクトのApplyメソッドの両方が書いてありますね。2回ソートしているということでしょうか。
以上いかがでしょうか。さらに解説が必要であればその旨補足ください。
参考URL:http://msdn.microsoft.com/ja-jp/library/office/f …
ご回答いただきましてありがとうございます。
Range.Sortメソッドのみで正常に動作しました。
2回ソートしている、ご指摘をありがとうございました。
Excel2003と2007で使えるメソッドがかなり違うことがわかりました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 改ページを挿入 1 2022/12/04 23:19
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBScriptでExcel(2019)上のデータ並び替え
Ruby
-
VBScriptでExcel上のデータ並び替え
その他(プログラミング・Web制作)
-
VBscriptでExcel sheetの並び替えできますか?
Visual Basic(VBA)
-
-
4
VBscriptが起動しない?
Microsoft ASP
-
5
VBScriptでファイルの日時順(降順)で並び替えて一覧を出力したい。
その他(プログラミング・Web制作)
-
6
VBS Bookを閉じるコード
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーブレットコンテキストの意...
-
servletからjspへオブジェクト...
-
VB.netでメソッドからコントロ...
-
エクセルVBA 画像を貼り付ける...
-
C#のクラスで値渡しをする
-
VB2005でADDとINSERTの違いは?
-
Dispose()は、どんな時に使うの...
-
Excel VBA 定数にオブジェクト...
-
GridViewに行追加するには?
-
UTF-8のテキストファイルを開く...
-
VBAでの[]
-
drawStringの座標について
-
String型からlong型への変換は...
-
java名簿管理プログラム
-
VB.NETでのnothing の意義について
-
ADOのOPENで実行時エラー
-
Excel 2007 <VBAでグラフの操作...
-
MIME::Parserのparse_dataメソ...
-
mkdirsでフォルダが作成されない
-
画像ファイルをリクエストパラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
servletからjspへオブジェクト...
-
VBAでの[]
-
サーブレットコンテキストの意...
-
エクセルVBA 画像を貼り付ける...
-
JSPでのArrayListの表示につい...
-
C#のクラスで値渡しをする
-
VB.netでメソッドからコントロ...
-
Excel VBA 定数にオブジェクト...
-
Vba ListViewの行挿入に関して...
-
javaで、、、
-
Dispose()は、どんな時に使うの...
-
VB.NETでのnothing の意義について
-
getParameter()について
-
String型からlong型への変換は...
-
JTableで値を右寄せ表示する方法
-
C#で親にイベントを投げる方法
-
Javaでブラウザ判定
-
VBスクリプトでテキストファイ...
-
PrintFormを使用してのプリント
-
UTF-8のテキストファイルを開く...
おすすめ情報