• ベストアンサー

Exelのsheetをアクティブにする方法

VB2008を使用している初心者です。 Excelをオープンすることは出来ましたが、作業するSheetの指定が出来なくてこまっています。作業するSheetをアクテイブにするためのコード、プロパティ、パラメータ、など教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.4

VB2008でExcelのVBプロパティを使うには、「Microsoft Excel Object Library」の参照が必要になります。 VB2008でその設定が抜けているので、COMExceptionが発生するだけです。 ライブラリの参照方法については、参考URLを参照してみてください。 ご参考まで。

参考URL:
http://jeanne.wankuma.com/tips/vb.net/excel/
chiici
質問者

補足

質問した時点で”Microsoft.Office.Interop.Excel”は参照に追加しています。 最終的には exSheet = oWBook.Worksheets("配布用名簿") exSheet.Select() で設定できるようになりましたが、盲目撃ちに撃った弾がたまたま当たっただけで、理解しているわけではありません。これで良くなった訳を教えて頂けるとありがたいです。

その他の回答 (3)

  • sujino
  • ベストアンサー率30% (3/10)
回答No.3

ごめんなさい、vb2008だったのでね。 vbaと勘違いしておりました、勘違いの回答でお騒がせして申し訳ありませんでした。

chiici
質問者

お礼

ありがとうございました。暗中模索し、下記にて指定できました。ただし適当にいじっていたら出来てしまった。ということで内容は全然理解できていません。 'シートを"配布用名簿"に設定 exSheet = oWBook.Worksheets("配布用名簿") exSheet.Select()

  • sujino
  • ベストアンサー率30% (3/10)
回答No.2

私もあまり、エクセルVBAは詳しくは無いのですが、テストで下記作ってみましたがが、ちゃんとシートがアクティブになってます? Public Function SheetName() 'シート名変数定義 Dim strSheetName As String '指定シートアクティブ ActiveWorkbook.Worksheets("Sheet2").Activate 'シート名変数へアクティブシート名代入 strSheetName = ActiveSheet.Name 'シート名をメッセージボックスで表示 MsgBox strSheetName End Function ↓の"シート名"を入れ替え実行すると、現在アクティブなシート名を表示します。 ActiveWorkbook.Worksheets("Sheet2").Activate

chiici
質問者

補足

ありがとうございます。 VB2008での話ですので、VBAとは違うのではないでしょうか。

  • sujino
  • ベストアンサー率30% (3/10)
回答No.1

私は、「ActiveWorkbook.Worksheets("シート名").Activate」 と書いてます。

chiici
質問者

補足

ありがとうございます。 早速追加して確認したところ、”ActiveWorkbook”は宣言されていません、とエラーメッセージが出ましたので”Dim ActiveWorkbook = New Excel.Application”を追加しました。 エラーメッセージはなくなりましらが、デバッグ時に”ActiveWorkbook.Worksheets("配布用名簿").Activate()”の所で「COMExceptionはハンドルされませんでした」とエラーメッセージが表示され停止してしまいます。他の所に原因があるのかもしれませんが、初心者ですので対応できません。確認すべき事項などありましたらお教え下さい。 なお”配布用名簿”はシートの名称です。