- 日時: 2012/06/01 22:06
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:Excel VBA,Excel2010,行列入替,行と列,入れ替え,保存形式,CSV形式で保存 * *********************************************************************************** '=================================================================================================== '投 稿 日:2012.05.07 '投 稿 者:VBレスキュー(花ちゃん) 'タイトル:Excel 2010 で行列を入れ替え及び型式を指定して保存 '========1=========2=========3=========4=========5=========6=========7=========8=========9=========0
Private Sub Button29_Click(sender As System.Object, e As System.EventArgs) Handles Button29.Click '既存のファイルをオープンして、Excel を起動 Call ExcelOpen(System.IO.Path.GetFullPath("..\..\..\data\dbtest.xls"), "Sheet1") '================== 行列を入れ替え及び型式を指定して保存 =====================
Dim xlRange As Excel.Range Dim xlSheet2 As Excel.Worksheet = DirectCast(xlSheets.Item(2), Excel.Worksheet) xlRange = xlSheet.Range("A1") xlRange.Activate() Dim xlCurrentRegion As Excel.Range xlCurrentRegion = xlRange.CurrentRegion 'セル A1 を含むデータ入力範囲をコピー xlCurrentRegion.Copy() MRComObject(xlCurrentRegion) '確認のために、1秒間表示しておく System.Threading.Thread.Sleep(1000)
'コピーしたデータを Sheet2 のセル A1 に行列を入れ替えて貼り付け xlSheet2.Select() Dim xlRange2 As Excel.Range xlRange2 = xlSheet2.Range("A1") xlRange2.Select() 'Range(データ) をクリップボードから指定範囲に貼り付けます。 xlRange2.PasteSpecial(Paste:=Excel.XlPasteType.xlPasteAll, _ Operation:=Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, _ SkipBlanks:=False, Transpose:=True)
xlApp.DisplayAlerts = False '保存時の問合せのダイアログを非表示に設定
' xls 形式で名前をつけて保存(Excel 97〜2003 ブック形式) xlBook.SaveAs(Filename:=IO.Path.GetFullPath(".\Test.xls"), _ FileFormat:=Excel.XlFileFormat.xlExcel8) ' xlsx 形式で名前をつけて保存(Excel 2007〜ブック形式) xlBook.SaveAs(Filename:=IO.Path.GetFullPath(".\Test.xlsx"), _ FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbook) ' xlsm 形式で名前をつけて保存(Excel 2007〜マクロ有効ブック形式) xlBook.SaveAs(Filename:=IO.Path.GetFullPath(".\Test.xlsm"), _ FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbookMacroEnabled) ' csv 形式で名前をつけて保存(CSV (カンマ区切り) 形式) xlBook.SaveAs(Filename:=IO.Path.GetFullPath(".\Test.csv"), _ FileFormat:=Excel.XlFileFormat.xlCSV) MRComObject(xlRange) MRComObject(xlRange2) MRComObject(xlSheet2) '確認のために、2秒間表示しておく System.Threading.Thread.Sleep(2000)
'============================================================================= 'Excelファイルを上書き保存(True 又省略すれば)して終了処理を実行 Call ExcelClose(IO.Path.GetFullPath(".\Test.xls"), False) 'False の場合保存しないで終了 'Excel.EXE がタスクマネージャに残っていないか調査(実使用時は必要なし) Call ProcessCheck() End Sub
|