仕事で、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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VB.NETの配列にExcelから読み込んできたデータを格納したい
Visual Basic(VBA)
-
VBの処理結果をEXCELシートへ出力したい
Visual Basic(VBA)
-
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
-
4
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
5
VBからExcelのセルの書式設定を変更する
Visual Basic(VBA)
-
6
SQLでの変数の扱いについて
その他(データベース)
-
7
エクセルの列一括書き込み
Visual Basic(VBA)
-
8
vb.netによるEXCEL値取得
Microsoft ASP
-
9
VB.NETでEXCELファイルを開き、保存先をデフォルトで指定したい。
Visual Basic(VBA)
-
10
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
vba フィルター 複数条件 3つ以...
-
定数配列の書き方
-
コンボボックスのインデックス...
-
大量の変数を定義するにはどう...
-
Dir関数で読み取り順を操作でき...
-
8bitインデックス画像の入出力方法
-
エクセル VBA 変数を一括で宣言...
-
構造体配列の特定のメンバーをF...
-
構造体配列内の文字列検索のよ...
-
Excelのメモリ(配列)の上限は2G...
-
COBOLの基本的な事なので...
-
Excel2010のinputboxで複数デー...
-
DBから取得した値を配列へ代入する
-
VB6で、一次元配列と二次元配列...
-
countif/sumifのようなVBA関数
-
テキストボックの文字を一行ず...
-
まとめて宣言。まとめて使用
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
Excel2010のinputboxで複数デー...
-
エクセルでXY座標に並べられた...
-
構造体配列の特定のメンバーをF...
-
定数配列の書き方
-
コンボボックスのインデックス...
-
OutOfMemoryExceptionの回避策...
-
Dir関数で読み取り順を操作でき...
-
CheckBoxの配列化
-
構造体配列内の文字列検索のよ...
-
COBOLの基本的な事なので...
-
Redim とEraseの違いは?
-
VBAで配列引数を値渡しできない...
-
2次元配列の初期値
-
配列の中の最大値とそのインデ...
-
VB6からの移行したいけど、VB.N...
-
大量の変数を定義するにはどう...
-
VB6のメモリ解放に関して
おすすめ情報