
いつもお世話になります。
VB2010を使用してExcelのある1行をコピーして、コピーしたものを同じシートに挿入したいのですが方法がわかりません。
画像のように、35と36の行をコピーして、37と38に全く同じ物を挿入したいです。
サイトをしらみつぶしに探しましたが、私に理解できるサイトがヒットしませんでしたので、できればサンプルコードを教えていただけると嬉しいです。
下記のようにコードを書きましたが、コピペ状態でほとんど理解していません。
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Shown
Me.Visible = False
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
'Excelブックを起動
xlBook = xlApp.Workbooks.Open("C:\test1.xls")
'Excelを表示
xlApp.Visible = False
'シートを指定
xlSheet = DirectCast(xlBook.Worksheets(1), Excel.Worksheet)
xlSheet.Activate()
'ここから
'
'
'
'
'ここまでがわかりません
' xlBook.Save() '上書き保存
xlBook.SaveAs("c:\test2.xls") '名前をつけて保存
xlBook.Close()
xlApp.Quit()
'終了処理
xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing
'テストが完了したらループ処理に変更する
Dim p() As Process = Process.GetProcessesByName("Excel")
p(0).Kill()
End Sub
End Class
エクセルのバージョンはExcel 2003です。
お手数おかけしますがよろしくお願いします。

No.2ベストアンサー
- 回答日時:
エクセル開放とエクセルを起動のSetの部分は、
.Netでは外してOKです。
解決できて良かったです(^o^)
答えが同じでも、いろいろなやり方がありますので、
これからいろいろチャレンジしてみて下さい。
この回答への補足
お返事ありがとうございます。
>エクセル開放とエクセルを起動のSetの部分は、.Netでは外してOKです。
さらなる情報をありがとうございます。
>答えが同じでも、いろいろなやり方がありますので、
本当にそうですね。
今までは、仕事ではPCなどは使ったことがありませんが、これから少しずつ使う場面がでてきそうです。
でも、その前に「エクセル」本体の操作方法を少し覚えないといけませんね。
自宅にあるPCは「エクセル」が入っていませんでしたので、会社から古い未使用のCDがありそれをインストールしましたので、これから少し「エクセル」本体の学習もしたいと思います。
あの~
感謝の言葉がありません。
for i as integer =0 to 99
listbox1.items.add(感謝!)
next
No.1
- 回答日時:
こんにちは。
VB2008でテスト済みですが。
Imports Microsoft.Office.Interop
以下、使用するプロシージャ内に入れて下さい。
Dim xlsApp As New Excel.Application
Dim xlsBook As Excel.Workbook
Dim xlsSheet As Excel.Worksheet
'Excel起動
xlsApp = CreateObject("Excel.Application")
xlsBook = xlsApp.Workbooks.Open("C:\test1.xls")
xlsSheet = xlsBook.Sheets(1)
With xlsBook.Worksheets(1)
.Range("35:36").Copy Destination:=.Range("37:38") '35、36行目をコピーして、37、38行目に貼り付け
end With
'保存時のダイアログボックスを非表示 (同じ名前がある場合の上書きしますか?のメッセージを出さない様に)
xlsApp.DisplayAlerts = False
'エクセル保存 (同じ名前がある場合は上書きされる)
xlsBook.SaveAs("C:\test1.xls")
'エクセル閉じる
xlsBook.Close
xlsApp.Quit
'エクセル開放
Set xlsSheet = Nothing
Set xlsBook = Nothing
Set xlsApp = Nothing
'エクセルファイルを再読込み
'エクセルを起動
Set xlsApp = CreateObject("Excel.Application")
Set xlsBook = xlsApp.Workbooks.Open("C:\test1.xls")
Set xlsSheet = xlsBook.Sheets(1)
'エクセル表示
xlsBook.Worksheets(1).Activate
xlsApp.Visible = True
'保存時のダイアログボックスを表示に戻す
xlsApp.DisplayAlerts = True
'エクセル開放
xlsSheet = Nothing
xlsBook = Nothing
xlsApp = Nothing
この回答への補足
お返事ありがとうございます。
できました!
嬉しいです。
ファイル数が3500ほどありますので、手作業で修正しなくて済みました。
私は、今までExcelを見たことも触ったこともなかったので、全くチンプンカンプでしたが、angel_Zさんに教えていただいたのでExcelを操作することが自由自在になりそうです。(但しVBからですけど)
Excel自体はは全くわかりません。(涙
今回教えていただいたため次の作業もできるようになりました。(やっぱりVBからですけど)
1.セルに値を挿入する方法
2.行を削除したりコピーしたり
3.その他いろいろ
VB2010でExcelを操作する場合は、インテリセンスが表示されなくても使えるメンバがたくさんあるんですね。
コードの雰囲気が、なんかVB.NETとは少し違う感じがしました。面白いですね。
angel_Zさんへ
自力で解決しようとすれば、どれだけの時間を要したかを考えると、お礼の言葉が見つかりません。
「感謝、感謝」しか思いつきません。
これで、解決でいいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
このQ&Aを見た人はこんなQ&Aも見ています
-
VB.NETによるEXCELの行挿入
Visual Basic(VBA)
-
vb.netからエクセル関数書き込み
Visual Basic(VBA)
-
VB.NETでExcelのヘッダー出力を制御したい
Visual Basic(VBA)
-
-
4
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
5
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
6
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
7
エクセルの列一括書き込み
Visual Basic(VBA)
-
8
DateTimePickerでに年月までしか選択できないようにしたいです。
Visual Basic(VBA)
-
9
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
10
VB.NETの配列にExcelから読み込んできたデータを格納したい
Visual Basic(VBA)
-
11
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
12
クリップボードの内容をEXCELに貼付け
Visual Basic(VBA)
-
13
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
14
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
15
VBで既存エクセルシートを新規ブックにコピー
Visual Basic(VBA)
-
16
フォームの再読み込み
Visual Basic(VBA)
-
17
VB.NET Excelの解放
Visual Basic(VBA)
-
18
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
19
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
20
Visual Basic.NETの、Form 間での引数の引渡し方法を教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
【ExcelVBA】指定の書式で、マ...
-
エクセルVBA Workbook変数に変...
-
Excel VBA、ファイルのオープン...
-
EXCELマクロでxlsとxlsxを開く方法
-
エクセルVBA
-
エクセルのマクロについて教え...
-
すでに開いているブックのマク...
-
コマンドボタンでマクロを起動...
-
フォルダ内の全ブックのシート...
-
もしも新規Excelファイルを開い...
-
Excel VBA Auto_Openについて質...
-
BVA 自動保存設定
-
excelでハイパーリンク 別ブッ...
-
A1セル入力値をファイル名先頭...
-
複数のデータ系列の線の太さを...
-
VBAを一度起動するとずっと出て...
-
EXCELで日付を自動でファイル名...
-
エクセルでツールバーに「縮小...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
VB2010でExcelの行をコピーして...
-
【ExcelVBA】指定の書式で、マ...
-
【Excel VBA】ブックを複数開い...
-
フォルダ内の全ブックのシート...
-
EXCELマクロでxlsとxlsxを開く方法
-
すでに開いているブックのマク...
-
VBAでEXCELのワークシートを削...
-
EXCEL VBA起動時の処理
-
excelマクロ、任意セルの値で名...
-
フォルダ内の全てのBookに同じ...
-
excelでハイパーリンク 別ブッ...
-
同じ名前で拡張子が違うファイル
-
[Excel VBA] フォルダ内の複数...
-
VBAでファイル名を変更したい
-
VBA セル入力された日付データ...
-
他のBookのユーザー定義関数を使う
-
【VBA】他のExcelを起動し、呼...
おすすめ情報