• 締切済み

C#でExcelのシートを選択する方法

C#でExcelを操作し、1シート目を取得するのは oWB = (Excel._Workbook)(oXL.Workbooks.Open(strFileName,・・・,・・・); oSheet = (Excel._Worksheet)oWB.ActiveSheet; でできたのですが、2シート目を指定する方法がわかりません。 nシート目や、シート名で指定したシートを取得する方法を教えてください。よろしくお願いいたします。

みんなの回答

  • nagare
  • ベストアンサー率33% (280/831)
回答No.1

oSheet = (Excel._Worksheet)oWB.Worksheets("シート名") oSheet = (Excel._Worksheet)oWB.Worksheets(インデックス番号) だと思います 参考 http://www.big.or.jp/~seto/vbaref/vbaref6.htm

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelシートのコピー

    VB2008,Excel2007です。 VBからExcelのシートコピーを行いたいのですが、エラーが出てしまい対応策が分からず困っています。 どうすればいいのかご教授ください。 今、書いている処理は下記になります。 エラーが発生するのは最終行です。 エラー内容は「"HRESULT からの例外: 0x800A03EC"」 Dim CopyExcel ,PasteExcel As New Excel.Application Dim CopyBooks ,PasteBooks As Excel.Workbooks Dim CopyBook ,PasteBook As Excel.Workbook Dim CopySheets,PasteSheets As Excel.Sheets Dim CopySheet ,PasteSheet As Excel.Worksheet 'ExcelBookオープン CopyBooks = CopyExcel.Workbooks CopyBook = CopyBooks.Open("C:\Copy.xls") CopySheets = CopyBook.Worksheets PasteBooks = PasteExcel.Workbooks PasteBook = PasteBooks.Open("D:\Paste.xls") PasteSheets = PasteBook.Worksheets 'シートコピー CopySheet = DirectCast(CopySheets.Item(1), Excel.Worksheet) PasteSheet = DirectCast(PasteSheets.Item(1), Excel.Worksheet) CopySheet.Copy(PasteSheet)

  • C#でEXCEL オープンできない

    C#でEXCEL オープンできない C#でEXCELファイルをオープンするプログラムを作りました。 自分のPCでは問題なくオープンすることができましたが、 他のPCで動かすとエラーが出てしまいます。(画像参照) 何が足りないのでしょうか、どなたかご教授ください。 よろしくお願いいたします。 以下、EXCELをオープンするソース部分 ---- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace Testxxx { <中略> // ボタン押下時 private void btn_Click(object sender, EventArgs e) { // ファイル名作成 string sNewXls = Application.StartupPath + @"\TEST.xls"; // Excelをオープン Excel.Workbook oWBook = OpenExcel(sNewXls); } // エクセルオープン private Excel.Workbook OpenExcel(string strExFile) { Excel.Application oXls; Excel.Workbook oWBook; oXls = new Excel.Application(); // Excelファイルをオープンする oWBook = (Excel.Workbook)(oXls.Workbooks.Open(strExFile,Type.Missing,false,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing)); Excel.Worksheet oSheet; oSheet = (Excel.Worksheet)oWBook.Sheets[1]; oSheet.Unprotect("test99"); // 仮設定 oSheet.Cells[3, 12] = "10965"; oSheet.Cells[4, 12] = "102"; oSheet.Protect("test", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); oXls.Visible = true; // Excelのウィンドウを表示する // Excel終了 //oXls.Workbooks.Close(); //oXls.Quit(); //System.Runtime.InteropServices.Marshal.ReleaseComObject(oXls); return oWBook; } ----

  • 保存してもワークブック&シートが消えています(Excel)

    プログラミング初心者です。今DelphiでExcelを操作するプログラムを作成しており、Serversコンポーネントを使わずにOLEオブジェクトを使って操作しています。DelPhi側でExcelを起動させて、既存のファイルにDelPhiで取り出したSQLのデータをExcelに表示させるというものですが、データを上書き保存してもExcelのブックが消えていているようで、保存したxlsを起動させてもブック及びシートが表示されません。但し印刷プレビューには保存していたデータがプレビューされます。 原因が分からないので、申し訳ありませんがよろしくお願いします。 書いたプログラム↓ (uses節にComObj,Excel2000があります。) Var Excel,WorkBook,WorkSheet: Variant; ... ... Excel := CreateOleObject('Excel Application'); WorkBook := Excel.WorkBooks.Open(FileName := 'C:\@@@.xls',ReadOnly := False); WorkSheet := WorkBook.Wordsheets[1]; WorkSheet.Name := '@@@'; ... ...(以下Record取得の表記など) Excel.Visible := True; (Recordを取得し、値をCellにセットしてからVisibleをTrueにしています。) ... 大変読みにくくて申し訳ありませんがよろしくお願いします。環境はDelphi7,Excel2000,SQLServer2000です。

  • TextBoxに入力した文字をExcelに書き込むには?

    VB2008を使用しています。 VBフォーム内のTextBox1に入力した内容(例 りんご)をBottanを押すことによりExcelの指定したセル(例 A1)に書き込んで保存する方法はありますでしょうか? 現在、以下のところまでは出来ています。 ' excelを定義 Dim excel As New Microsoft.Office.Interop.Excel.Application ' excel testをファイルから開く Dim book As Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Open("C:\test.xls") ' 1枚目のワークシートを取得 Dim sheet As Microsoft.Office.Interop.Excel.Worksheet sheet = CType(book.Worksheets.Item(1), Microsoft.Office.Interop.Excel.Worksheet) Excelの開放からsheetの取得までは出来たのですが、ここから先がわかりません。よろしくお願いいたします。

  • SYLK変換でシート名を指定したい

    EXCEL97のマクロで、TEXTファイルをSYLKファイルに変換します。  ファイル名と、シート名を分けたいのですが、  どのようにすればわかりません。  関係しそうな変換部分は次の通りです。    Call Workbooks(2).SaveAs(strFileName, xlSYLK)  strFileName には、パス名と、ファイル名を指定していますが、  シート名を指定したい場合、どこで指定すればいいのでしょうか?   ※上記方法ではファイル名がそのままシート名になります。

  • ブックのすべてのシート名を取得するコード

    何が間違いなんでしょうか? エクセル2003です。 ブックのすべてのシート名を取得するコードを考えてるのですが なぜか一番左のシート名しか取得できません。 コードは↓です。 ----------------------------------- Sub test01() Dim x As Workbook For Each x In Workbooks Debug.Print ActiveSheet.Name Next End Sub ----------------------------------- できないので「Workbooks」の部分を「ThisWorkbook」に変えてみたところ 実行時エラーになってしまいました。 ご教授よろしくお願いします。

  • AccessでExcelのSheet間のコピーをしたい

    ACCESSのデータを読み込み、エクセルの元帳からレイアウトをコピー、新しいExcelのSheetにレイアウトとデータを書き込もうとしていますがうまく動きません。どこが悪いのでしょうか?次のように書きました。 Private Sub NEW_BOOK() Dim xlBookOrig As Workbook Dim xlBookNew As Workbook Dim xlSheetOrig As Worksheet Dim xlSheetNew As Worksheet Set xlApp = CreateObject("Excel.Application") xlApp.Application.Visible = True Set xlBookOrig = xlApp.Workbooks.Open("C:\元帳.xls") Set xlSheetOrig = xlBookOrig.Worksheets(1) Set xlBookNew = xlApp.Workbooks.Add Set xlSheetNew = xlBookNew.Worksheets(1) xlSheetOrig.Copy xlSheetNew.Paste xlSheetNew.Name = Left$(strMODL, 9) xlSheetNew.Cells(5, 1).Value = strSTAT xlSheetNew.Cells(4, 3).Value = strITEM ..... xlSheetNew.SaveAs "C:\'" & Left$(strMODL, 7) & "'.xls" これで実行すると、BOOK1 BOOK2 の2つが生成され、 BOOK1にはSHEET名、各データが書き込まれ、BOOK2には元帳のレイアウトがコピーされレイアウトとデータが一つになりません。 どこが間違っているのでしょうか? 宜しくお願いします

  • VisualBaic2005でExcelファイルを読む方法

    Dim oExl As Excel.Application Dim WorkBookName As Excel.Workbook Dim Open_WorkSheet_Name As Excel.Worksheet oExl = CreateObject("Excel.Application") WorkBookName = oExl.Workbooks.Open("d:\book011.xls", , False) この時点でExcelのファイルが開きません。 また、oExl.Visible = True を実行するとExcel自体は開くのですが、ファイルのオープンは できません。また、終了時に oExl.Workbooks.Close() oExl = Nothingを実行すると Excel自体は閉じるのですが、プロセスは残りまます。 VB2005からExcelファイルを読む方法とクローズ処理の方法を 教えてください。よろしくお願いします。

  • c#でエクセルを操作したい

    お世話になります。 C#初心者です。 C#でExcelを操作したく、下記コードを記述致しましたが、 エラーになってしまいます。 どうすれば良いか分からず、困っています。 どなたかご教示頂きたく、宜しくお願い致します。       記 public static bool Esousa() {   Excel.Application oExcelApp; Excel.Workbooks xlwkbook; Excel.Worksheet worksheet1; oExcelApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); xlwkbook = (Excel.Workbooks)oExcelApp.Workbooks; worksheet1 = (Excel.Worksheet)xlwkbook[1].Worksheets[1]; //←この行でエラー発生     ~~処理~~ oExcelApp = null; xlwkbook = null; worksheet1 = null; return true; }

  • Excelのシートをコピー

    環境は,Visual Studio 2005 Standard Editionです. プログラムを実行後,以下の例外が発生しました. 「HRESULT からの例外: 0x800A03EC」 発生場所は★の位置です. ここから------- Dim xlApp As Microsoft.Office.Interop.Excel.Application = Nothing Dim xlBook As Microsoft.Office.Interop.Excel.Workbook = Nothing Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet = Nothing xlBook = xlApp.Workbooks.Open("ファイルのパスが入ります") xlSheet = xlBook.Worksheets("シート名が入ります") Dim xlBook2 As Microsoft.Office.Interop.Excel.Workbook = Nothing Dim xlSheet2 As Microsoft.Office.Interop.Excel.Worksheet = Nothing xlBook2 = xlApp.Workbooks.Open("ファイルパスが入ります") xlSheet2 = xlBook.Worksheets("シート名が入ります") 'Excelを表示しない xlApp.Visible = False xlSheet.Copy(Before:=xlSheet2) ★ ここまで-------------- やろうとしているのは,xlSheet2のシートを含むExcelファイルに,xlSheet2の前にxlSheetをコピーする処理です. ★のところで上の例外が発生してしまいます. 以上,よろしくお願いします.