いつもお世話になります。
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からEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
-
4
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
5
VBAで行コピーして挿入
Visual Basic(VBA)
-
6
VBで既存エクセルシートを新規ブックにコピー
Visual Basic(VBA)
-
7
2次元動的配列の第一引数のみを可変にする
Visual Basic(VBA)
-
8
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
9
Excel:印刷できる幅の調整はできますか
Visual Basic(VBA)
-
10
【VB.NET】Excelの最終行までの取得方法
Microsoft ASP
-
11
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
12
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
13
VBからExcelのセルの書式設定を変更する
Visual Basic(VBA)
-
14
VB初心者。小数点以下の表示でつまづいています(涙
Visual Basic(VBA)
-
15
VB.net(2005)でエクセルの特定名称のシートを操作したい。
Visual Basic(VBA)
-
16
vb.net EXCEL ウィンドウ枠の固定について
Excel(エクセル)
-
17
VB.NETでEXCELファイルを開き、保存先をデフォルトで指定したい。
Visual Basic(VBA)
-
18
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
19
VB.NETでExcelのヘッダー出力を制御したい
Visual Basic(VBA)
-
20
VB.NETで1→A、2→B、26→Z、27→AAの変換をしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
【Excel VBA】ブックを複数開い...
-
EXCELマクロで上書きメッ...
-
VBA セル入力された日付データ...
-
excelマクロ、任意セルの値で名...
-
フォルダ内の全ブックのシート...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全てのBookに同じ...
-
EXCELマクロでxlsとxlsxを開く方法
-
エクセルVBAでブックを開くと処...
-
VBA、Excelのworkbook.open に...
-
Excel マクロでファイル名を変...
-
[Excel VBA] フォルダ内の複数...
-
いつも大変お世話になっており...
-
すでに開いているブックのマク...
-
personal.xlsの削除方法
-
複数のデータ系列の線の太さを...
-
cellsで特定の離れた範囲を選択...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
ExcelVBAで今開いているユーザ...
-
VBA、Excelのworkbook.open に...
-
【ExcelVBA】指定の書式で、マ...
-
【Excel VBA】ブックを複数開い...
-
VB2010でExcelの行をコピーして...
-
すでに開いているブックのマク...
-
フォルダ内の全てのBookに同じ...
-
VBA セル入力された日付データ...
-
フォルダ内の全ブックのシート...
-
personal.xlsの削除方法
-
EXCELマクロでxlsとxlsxを開く方法
-
EXCELマクロで上書きメッ...
-
[Excel VBA] フォルダ内の複数...
-
EXCEL VBA起動時の処理
-
コマンドボタンでマクロを起動...
-
excelマクロ、任意セルの値で名...
-
【VBA】他のExcelを起動し、呼...
-
他のBookのユーザー定義関数を使う
おすすめ情報