

仕事で、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ランキング
-
VBA 変数名に変数を使用したい。
-
ReDim PreserveよりもReDimが遅い
-
配列の中の最大値とそのインデ...
-
CheckBoxの配列化
-
型が一致しませんとエラー
-
Redim とEraseの違いは?
-
レコードセットの中身を配列に...
-
countif/sumifのようなVBA関数
-
VBA: Select Caseを短くしたい
-
VB.NETにて、構造体へデータを...
-
このプログラムがわかりません
-
2次元配列のソート
-
構造体配列の安定なソート
-
エクセルでXY座標に並べられた...
-
VBA 桁数が混在するソート
-
SPLIT関数
-
複数のtextboxの処理を一括で行...
-
VBAでMODE関数をつくる
-
C言語
-
Msgboxのループ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
配列の中の最大値とそのインデ...
-
エクセルでXY座標に並べられた...
-
Dir関数で読み取り順を操作でき...
-
配列のペースト出力結果の書式...
-
COBOLの基本的な事なので...
-
複数のtextboxの処理を一括で行...
-
構造体配列の特定のメンバーをF...
-
大量の変数を定義するにはどう...
-
CheckBoxの配列化
-
Excelのメモリ(配列)の上限は2G...
-
VB6のメモリ解放に関して
-
ReDim PreserveよりもReDimが遅い
-
Excel2010のinputboxで複数デー...
-
定数配列の書き方
-
コンボボックスのインデックス...
-
EXCELを使って、アクセスログを...
-
レコードセットの中身を配列に...
おすすめ情報