いつもお世話になります。
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も見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
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からExcelのセルの書式設定を変更する
Visual Basic(VBA)
-
9
Excel:印刷できる幅の調整はできますか
Visual Basic(VBA)
-
10
vb.net EXCEL ウィンドウ枠の固定について
Excel(エクセル)
-
11
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
12
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
13
VB.net(2005)でエクセルの特定名称のシートを操作したい。
Visual Basic(VBA)
-
14
[VB.net] Excelへの画像貼り付け処理についての疑問
Visual Basic(VBA)
-
15
【VB.NET】Excelの最終行までの取得方法
Microsoft ASP
-
16
VB.NETでExcelのヘッダー出力を制御したい
Visual Basic(VBA)
-
17
VB初心者。小数点以下の表示でつまづいています(涙
Visual Basic(VBA)
-
18
VB.NETでのDOSコマンドを実行について
Visual Basic(VBA)
-
19
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
20
VBA初心者です。結合セルを保持したまま挿入する方法を教えてほしいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA Workbook変数に変...
-
ExcelVBAで今開いているユーザ...
-
personal.xlsの削除方法
-
【ExcelVBA】指定の書式で、マ...
-
エクセルVBAでブックを開くと処...
-
フォルダ内の全ブックのシート...
-
EXCELマクロでxlsとxlsxを開く方法
-
VB2010でExcelの行をコピーして...
-
VBAでファイル名を変更したい
-
フォルダ内の全てのBookに同じ...
-
【マクロ】その時、その時で変...
-
VBAに詳しい方教えてください。
-
マクロで自動保存を無効にしたい
-
EXCELでのマクロ実行後の行列番...
-
Excelが勝手にシート移動してし...
-
cellsで特定の離れた範囲を選択...
-
複数のデータ系列の線の太さを...
-
EXCEL VBA テキストボックスの...
-
エクセルファイルを自身のファ...
-
別のパソコンでエクセルのマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBA Workbook変数に変...
-
フォルダ内の全ブックのシート...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全てのBookに同じ...
-
EXCELマクロでxlsとxlsxを開く方法
-
excelマクロ、任意セルの値で名...
-
[Excel VBA] フォルダ内の複数...
-
VBA、Excelのworkbook.open に...
-
すでに開いているブックのマク...
-
EXCELマクロで上書きメッ...
-
VBA セル入力された日付データ...
-
EXCEL VBA起動時の処理
-
エクセルのマクロについて教え...
-
他のBookのユーザー定義関数を使う
-
Excel VBAを後ろで動かす方法
-
Excelの一括印刷で通し番号をつ...
おすすめ情報