• 締切済み

Excel操作について

お世話になります。 aaa.xls というファイル名で  |  A      B C --|---------------------------------  1 | あい    うえお    かき  | 2 | さし    すせそ    たち このような表がSheet1にあります。 これを  |   A     B --|----------------------- 1 | あいうえお  かき  | 2 | さしすせそ  たち のようなファイルに書き換えて、CSVで保存したいのですが 初心者につき、どこから手をつけていいのかすらわかりません。 ぜひご教授下さい。 よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

初心者と言うことなら、VBAやVB.NETの話ではないよね。 方法をあれこれ言わなきゃ、簡単なことです。 何処か空き列に=A1&B1を入れて下方向に複写。これでA列とB列の文字列が結合する。 その列データ全体を範囲指定して、編集ーコピー A列を範囲指定して、形式を選択して貼り付けー値(ここが肝心。式は持っていかない) =A1&B1を入れた列は削除(A列へも影響なし) C列をB列へ移動。(C列一番下の行のセルで左上向き斜め矢印を出してB列へD&D)、コピー(切り取り貼り付けでも良い。) C列削除。 後はファイル形式(種類)を「.CSV」にして(エクセルで)保存

回答No.4

こちらの開発環境と違いがあるため、Objectを使用しています。 --------------------------------------------------------------------- Dim xlApp As Object Dim xlWorkBook As Object Dim xlOldSheet As Object Dim xlNewSheet As Object Try 'Excelアプリケーションオブジェクトを生成 xlApp = CreateObject("Excel.Application") xlApp.Visible = False 'アプリケーションの非表示 'ワークブック開く xlWorkBook = xlApp.Workbooks.Open(Application.StartupPath + "\SystemTest.xls") 'ワークシートの操作(Sheet1は既存のシート名) xlOldSheet = xlWorkBook.Worksheets("Sheet1") '既存のシートの次にSheetを追加する xlWorkBook.Worksheets.Add(Count:=1, after:=xlOldSheet) '新規作成したシートの名前をわかりやすくする xlWorkBook.ActiveSheet.Name = "新規シート" 'ワークシートを操作 xlNewSheet = xlWorkBook.Worksheets("新規シート") '変更したい行分回す(10を変更する) For intIndex As Integer = 1 To 10 '旧シートのAとBを新シートのAに格納 xlNewSheet.range("A" + intIndex.ToString).Value = xlOldSheet.range("A" + intIndex.ToString).Value + _ xlOldSheet.range("B" + intIndex.ToString).Value '旧シートのCを新シートのBに格納 xlNewSheet.range("B" + intIndex.ToString).Value = xlOldSheet.range("C" + intIndex.ToString).Value Next '保存 xlWorkBook.Save() Catch ex As Exception Throw Finally '既存シートの開放 Runtime.InteropServices.Marshal.ReleaseComObject(xlOldSheet) '新規シートの開放 Runtime.InteropServices.Marshal.ReleaseComObject(xlNewSheet) 'ブックを閉じる xlWorkBook.Close() 'ブックの開放 Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkBook) 'アプリケーションの終了 xlApp.Quit() 'アプリケーションの開放 Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) End Try --------------------------------------------------------------------- これでどうでしょうか。

回答No.3

Excelのヴァージョンは? Excelは何を使って操作するのでしょうか? Microsoft Excel 11.0 ObjectLibrary 等ですか?

taiyo99
質問者

補足

kazuhisa01 様 ご回答ありがとうございます。 Excel2007です。Microsoft Excel 12.0 ObjectLibrary となってます。 読み込むデータファイルは2003で作成してあります。 よろしくお願い致します。

回答No.2

VB.NETで実装したいとの事なのですね。 ■2次元配列を使用した文字列結合 データをStringの2次元配列に格納後、エクセルのシートを初期化(セルの中身をクリア)してから、先ほど格納した2次元配列の1番目と2番目の文字列を結合しセルAに入れる。 3番目の文字列をセルBに入れる。 ■新しいシートを用意して文字列結合 新シートのセルAに旧シートのセルAとセルBを結合した文字列を入れ、新シートのセルBに旧シートのセルCを入れる。 最後に旧シートを削除する。 ※シート内容の初期化をする場合も削除する場合も他のデータが存在するとそこまで考慮しなければいけませんので気をつけて下さい。 データを一時退避させるか、新しい格納先を用意するかのどちらかです。 コードは色々な書き方があるので載せませんが、必要であれば・・・。

taiyo99
質問者

補足

kazuhisa01 様 早速のご回答ありがとうございます。 出来ましたら、■新しいシートを用意して~ の方で コードを記載して頂けますでしょうか。 お手数お掛けしますが、よろしくお願い致します。

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.1

A列に「あい」B列に「うえお」C列に「かき」と入って要ると考えて良いのですね。 1、B列とC列の間に、セルを2列挿入します。 2、新たなC1のセルに、「=A1&B1」を入力します   この時点で、C1には「あいうえお」が表示されます 3、そのC1セルを、下方向に必要分だけコピーします 4、C列のセルを必要な分だけ選択したまま右クリックでコピーします 5、D1をクリックしながら右クリックし、「形式を選択して貼り付け」を選びます。 6、「貼り付け」のなかで、「値(V)」に印しを付け、OK 7、A・B・Cの3列を選択しながら、右クリックし「削除」を選びます

taiyo99
質問者

補足

S-Fuji 様   早速のご回答ありがとうございます。 私の質問語句がまずかったようです。 VB(.NET)にてExcelを操作したいのですが、 よろしくお願い致します。