C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: VB.NETでExcleのコピー&ペースト


(過去ログ 68 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■39518 / inTopicNo.1)  VB.NETでExcleのコピー&ペースト
  
□投稿者/ けんと (1回)-(2009/08/10(Mon) 11:44:58)

分類:[.NET 全般] 


はじめまして、こんにちは。
作業中、行き詰ってしまったので質問させていただきたいです。

VB.NETで開発しております。

ExcelファイルBook1のSheet1のB3〜K9のデータをコピーして別のExcelファイルのシートのA1〜J7に貼り付けて保存すると言う動きを作りたいと思っています。

その際に、コピーする側のシートには「罫線.式.値」が保存されているのですが、貼り付ける側のシートには「罫線.値」のみを貼り付けて式は取り除きたいのです。

excelのマクロで大体のコードを見てみたのですが、VB.NETではエラーが出てしまって使い方がわからない状態で困っています。↓マクロで調べたコード

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


どうにかでExcelデータの式を取り除いて見た目だけのデータを保存できるようなVB.netでの記述の仕方をご教授していただけないでしょうか。お願いいたします。








引用返信 編集キー/
■39523 / inTopicNo.2)  Re[1]: VB.NETでExcleのコピー&ペースト
□投稿者/ やじゅ (1194回)-(2009/08/10(Mon) 12:31:55)
やじゅ さんの Web サイト
No39518 (けんと さん) に返信
>
> excelのマクロで大体のコードを見てみたのですが、VB.NETではエラーが出てしまって使い方がわからない状態で困っています。↓マクロで調べたコード
>
> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
> False, Transpose:=False
>
> どうにかでExcelデータの式を取り除いて見た目だけのデータを保存できるようなVB.netでの記述の仕方をご教授していただけないでしょうか。お願いいたします。
>

過去ログに下記内容があったんですが、解決はされてないんですよね(^^;
.NETでExcelの値のみをコピー
http://bbs.wankuma.com/index.cgi?mode=al2&namber=24586&KLOG=46
引用返信 編集キー/
■39542 / inTopicNo.3)  Re[2]: VB.NETでExcleのコピー&ペースト
□投稿者/ お だ (4回)-(2009/08/10(Mon) 20:26:17)
> 過去ログに下記内容があったんですが、解決はされてないんですよね(^^;
> .NETでExcelの値のみをコピー
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=24586&KLOG=46
過去ログ見ましたが、このコードで何でダメだったんでしょうね。
VS 2008 SP1、Office 2007 ですが、下記のコードで問題無く動作しました。(C# でスイマセン)
※あくまで検証用のコードなので、解放処理は適切に実装して下さい。
以下コード

using System;
using System.Runtime.InteropServices;

using Excel = Microsoft.Office.Interop.Excel;

class Program
{
  static void Main(string[] args)
  {
    Excel.Application app = new Excel.Application();
    Excel.Workbooks books = app.Workbooks;
    Excel.Workbook book = books.Open("D:\\test.xlsx", 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);
    Excel.Sheets sheets = book.Sheets;
    Excel.Worksheet sheet = sheets[1] as Excel.Worksheet;
    Excel.Range cells = sheet.Cells;
    Excel.Range srcRange = cells[2, 1] as Excel.Range;
    srcRange.Copy(Type.Missing);

    Excel.Workbook book2 = books.Add(Type.Missing);
    Excel.Sheets sheets2 = book2.Sheets;
    Excel.Worksheet sheet2 = sheets2[1] as Excel.Worksheet;
    Excel.Range cells2 = sheet2.Cells;
    Excel.Range destRange = cells2[5, 4] as Excel.Range;
    destRange.PasteSpecial(Excel.XlPasteType.xlPasteValues, 
      Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, 
      Type.Missing, Type.Missing);
    Marshal.ReleaseComObject(destRange);
    Marshal.ReleaseComObject(srcRange);
    Marshal.ReleaseComObject(cells);
    Marshal.ReleaseComObject(cells2);
    Marshal.ReleaseComObject(sheet);
    Marshal.ReleaseComObject(sheet2);
    Marshal.ReleaseComObject(sheets);
    Marshal.ReleaseComObject(sheets2);
    book.Save();
    book2.SaveAs("D:\\test2.xlsx", Type.Missing, Type.Missing, 
      Type.Missing, Type.Missing, Type.Missing, 
      Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, 
      Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing, Type.Missing);
    Marshal.ReleaseComObject(book);
    Marshal.ReleaseComObject(book2);
    books.Close();
    Marshal.ReleaseComObject(books);
    app.Quit();
    Marshal.ReleaseComObject(app);
  }
}

引用返信 編集キー/
■39543 / inTopicNo.4)  Re[3]: VB.NETでExcleのコピー&ペースト
□投稿者/ やじゅ (1199回)-(2009/08/10(Mon) 20:36:20)
やじゅ さんの Web サイト
No39542 (お だ さん) に返信
> VS 2008 SP1、Office 2007 ですが、下記のコードで問題無く動作しました。(C# でスイマセン)
> ※あくまで検証用のコードなので、解放処理は適切に実装して下さい。

すばらしいですね。
C# なので下記をリンクしておきます。

C#のコードをVB.NETへ変換する
http://dobon.net/vb/dotnet/links/convertcs2vb.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -