

仕事で、VBでDBから取得した値を配列に設定し、それをEXCELで帳票として出力したいのですが、やり方が分かりません。ご存知の方がいましたら、教えていただけますか。
VBからCopyFromRecordsetでRecordsetをEXCELのrangeで出力する方法は見つけたのですが、Recordsetそのままではなく、動的配列に並び替えてEXCELに出力したいと思っています。
EXCELのシートをテーブルと見立てて、SQL文でEXCELにInsertする方法もある聞いたのですが、実際にどのように命令を書けばいいのか分かりません。
ご存知の方、教えていただけますか。
No.1ベストアンサー
- 回答日時:
1.レスキュー花ちゃんのサイトを参考にしてます。
2.ソート等はcells操作をしてください。
3.VB.NETで動作確認してますがVB6は少し訂正の要
ありです。
'------配列設定-----
Dim app As Object 'エクセルアプリケーションの定義
Dim book As Object 'ブックの定義
Dim sheet As Object 'シートの定義
'各セルの値を取得
Dim filepath As String = "C:\Temp.xls"
Dim j As Integer
'------エクセルファイルを開く&表示-------
app = CreateObject("Excel.Application")
app.application.visible = True
book = app.Workbooks.Open(filepath) 'エクセルファイルのopen
sheet = book.Worksheets(1)
'-----エクセルデータの書き込み------
For i = 1 To 20 rem 適宜数値は変更してね
For j = 1 To rs.fields.count
sheet.cells(i, j).value = rs.fields(j - 1).value
Next
rs.MoveNext()
Next
app.DisplayAlerts = False '保存時の問合せのダイアログを非表示に設定
sheet.SaveAs(filepath) 'ファイルに保存
app.DisplayAlerts = True '元に戻す
MRComObject(sheet) 'xlSheet の開放
REM xlSheets(の開放)
book.Close(False) 'xlBook を閉じる
MRComObject(book) 'xlBook の開放
'xlBooks の開放
app.Quit() 'Excelを閉じる
MRComObject(app) 'xlApp を開放
End Sub
Private Sub MRComObject(ByRef objCom As Object)
'COM オブジェクトの使用後、明示的に COM オブジェクトへの参照を解放する
Try
'提供されたランタイム呼び出し可能ラッパーの参照カウントをデクリメントします
System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom)
Catch
Finally
'参照を解除する
objCom = Nothing
End Try
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) Power Query でのデータの一括修正について 2 2022/05/10 02:00
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) Excelで文字列にランダムに記号を入れる事は出来ますか⁇Excelで作っている名簿リストをプリント 8 2022/09/14 08:11
- Excel(エクセル) Excelで、あるセルだけ入力させたい、オートフィルターも使わせたい際のシートの保護 2 2023/02/23 15:14
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の格納方法
-
CheckBoxの配列化
-
VBA 変数名に変数を使用したい。
-
Dir関数で読み取り順を操作でき...
-
配列の中から最大値だけ取り出...
-
VB6.0からVB.NETへの移行
-
pictureboxの名前を変数で設定...
-
VBAの構造体について
-
vb2008 コントロール配列
-
配列について
-
レコードセットの中身を配列に...
-
VB上でのレコードセットの扱い...
-
C#でbyte配列から画像を表示さ...
-
エクセル(VBA)の空白配列の削除...
-
Dirで取得したFile名をTblに書...
-
VB.NETにて、構造体へデータを...
-
vba フィルター 複数条件 3つ以...
-
OutOfMemoryExceptionの回避策...
-
ファイル内にある文字列を検索...
-
VBで重複しているデータをユニ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
Dir関数で読み取り順を操作でき...
-
エクセルでXY座標に並べられた...
-
配列のペースト出力結果の書式...
-
定数配列の書き方
-
大量の変数を定義するにはどう...
-
構造体配列の特定のメンバーをF...
-
Redim とEraseの違いは?
-
複数のtextboxの処理を一括で行...
-
VB.NETの配列にExcelから読み込...
-
COBOLの基本的な事なので...
-
Excel2010のinputboxで複数デー...
-
VBAでMODE関数をつくる
-
レコードセットの中身を配列に...
-
ReDim PreserveよりもReDimが遅い
-
EXCELを使って、アクセスログを...
-
配列の中の最大値とそのインデ...
-
VB6のメモリ解放に関して
おすすめ情報