- ベストアンサー
VBでエクセルを制御したい
始めまして。 VBでアプリを組んでいて、指定のエクセルファイルを 操作したいのですが、うまくいきません。 ファイル指定まではうまくいったのですが、 具体的には、エクセルの指定範囲をソートしたいのですが。 Dim intR, lastR As Long intR = 2 lastR = 1000 sh.Rows(intR & ":" & lastR).Select sh.selection.Sort key1:=range(sh.Cells(intR, 5)), & _ order1:=xlascending, key2:=range(sh.Cells(intR, 1)),& _ order2:=xlascending このようなコードで実行すると、 実行時エラー438 オプジェクトはこのプロパティまたはメソッドを サポートしていません と出ます。やはりエクセルVBAと同様という簡単なものでは ないのでしょうか。 お分かりの方、お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
メニュー[プロジェクト]-[参照設定]をクリックして、 Visual Basic For Applications と Microsoft Excel 9.0 Object Library にチェックを入れてください。
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
参照設定の具合は分かりませんが、 sh.selection. がエラー438を出している気がします。selection. でいいと思います。 また、range(sh.Cells(intR, 5)) も?ですね。Cells(intR, 5) でOK? 2箇所の『,& _』も?です。以上、見ただけの感想です。 sh.Rows(intR & ":" & lastR).Select sh.selection.Sort key1:=range(sh.Cells(intR, 5)), & _ order1:=xlascending, key2:=range(sh.Cells(intR, 1)),& _ order2:=xlascending ↓ sh.Rows(intR & ":" & lastR).Select selection.Sort key1:=Cells(intR, 5), order1:=xlascending, _ key2:=Cells(intR, 1)),order2:=xlascending
- taka_tetsu
- ベストアンサー率65% (1020/1553)
まず、shとは? あと、ファイルの指定はどのような方法で行いましたでしょうか? CreateObject() or GetObject()ですか?
お礼
ありがとうございました! 教えていただいたところを確認したところ エラーはなくなり、無事パスしました。助かりましたー! 思えば、 Dim sh as Excel.Worksheet などとしたいところが、入力候補にExcelが出てきてませんでした。 (そこでおかしいと思わなければ、、、、) またお世話になるかとは思いますが、よかったら教えてください。