- 締切済み
Excel操作について
お世話になります。 aaa.xls というファイル名で | A B C --|--------------------------------- 1 | あい うえお かき | 2 | さし すせそ たち このような表がSheet1にあります。 これを | A B --|----------------------- 1 | あいうえお かき | 2 | さしすせそ たち のようなファイルに書き換えて、CSVで保存したいのですが 初心者につき、どこから手をつけていいのかすらわかりません。 ぜひご教授下さい。 よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
初心者と言うことなら、VBAやVB.NETの話ではないよね。 方法をあれこれ言わなきゃ、簡単なことです。 何処か空き列に=A1&B1を入れて下方向に複写。これでA列とB列の文字列が結合する。 その列データ全体を範囲指定して、編集ーコピー A列を範囲指定して、形式を選択して貼り付けー値(ここが肝心。式は持っていかない) =A1&B1を入れた列は削除(A列へも影響なし) C列をB列へ移動。(C列一番下の行のセルで左上向き斜め矢印を出してB列へD&D)、コピー(切り取り貼り付けでも良い。) C列削除。 後はファイル形式(種類)を「.CSV」にして(エクセルで)保存
- kazuhisa01
- ベストアンサー率32% (158/487)
こちらの開発環境と違いがあるため、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 --------------------------------------------------------------------- これでどうでしょうか。
- kazuhisa01
- ベストアンサー率32% (158/487)
Excelのヴァージョンは? Excelは何を使って操作するのでしょうか? Microsoft Excel 11.0 ObjectLibrary 等ですか?
- kazuhisa01
- ベストアンサー率32% (158/487)
VB.NETで実装したいとの事なのですね。 ■2次元配列を使用した文字列結合 データをStringの2次元配列に格納後、エクセルのシートを初期化(セルの中身をクリア)してから、先ほど格納した2次元配列の1番目と2番目の文字列を結合しセルAに入れる。 3番目の文字列をセルBに入れる。 ■新しいシートを用意して文字列結合 新シートのセルAに旧シートのセルAとセルBを結合した文字列を入れ、新シートのセルBに旧シートのセルCを入れる。 最後に旧シートを削除する。 ※シート内容の初期化をする場合も削除する場合も他のデータが存在するとそこまで考慮しなければいけませんので気をつけて下さい。 データを一時退避させるか、新しい格納先を用意するかのどちらかです。 コードは色々な書き方があるので載せませんが、必要であれば・・・。
補足
kazuhisa01 様 早速のご回答ありがとうございます。 出来ましたら、■新しいシートを用意して~ の方で コードを記載して頂けますでしょうか。 お手数お掛けしますが、よろしくお願い致します。
- S-Fuji
- ベストアンサー率36% (592/1624)
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列を選択しながら、右クリックし「削除」を選びます
補足
S-Fuji 様 早速のご回答ありがとうございます。 私の質問語句がまずかったようです。 VB(.NET)にてExcelを操作したいのですが、 よろしくお願い致します。
補足
kazuhisa01 様 ご回答ありがとうございます。 Excel2007です。Microsoft Excel 12.0 ObjectLibrary となってます。 読み込むデータファイルは2003で作成してあります。 よろしくお願い致します。