tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
Excel 2010 で行列を入れ替え及び型式を指定して保存(VB.NET) ( No.31 )  [親スレッドへ]
日時: 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



 [スレッド一覧へ] [親スレッドへ]