- 締切済み
C#でExcelのシートを選択する方法
C#でExcelを操作し、1シート目を取得するのは oWB = (Excel._Workbook)(oXL.Workbooks.Open(strFileName,・・・,・・・); oSheet = (Excel._Worksheet)oWB.ActiveSheet; でできたのですが、2シート目を指定する方法がわかりません。 nシート目や、シート名で指定したシートを取得する方法を教えてください。よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nagare
- ベストアンサー率33% (280/831)
関連する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)
- ベストアンサー
- Visual Basic
- 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の取得までは出来たのですが、ここから先がわかりません。よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 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ファイルを読む方法とクローズ処理の方法を 教えてください。よろしくお願いします。
- ベストアンサー
- Visual Basic
- 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; }
- ベストアンサー
- C・C++・C#
- 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をコピーする処理です. ★のところで上の例外が発生してしまいます. 以上,よろしくお願いします.
- 締切済み
- Visual Basic