No.2
- 回答日時:
ADOとレコードセットを利用する方法も
ありますが、以下でどうですか。
Private Sub Command1_Click()
Dim h As Long
Dim i As Long
Dim j As Long
Dim exlApp As Workbook
Dim strFile As String
'パス
strFile = "C:\test\5\myAAA.xls"
Set exlApp = GetObject(strFile, "Excel.Sheet")
'ヘッダのコピペ
For h = 0 To DataGrid1.Columns.Count - 1
exlApp.Worksheets("sheet1").Cells(1, h + 1) = DataGrid1.Columns(h).Caption
Next h
'データのコピペ
For i = 0 To DataGrid1.ApproxCount - 1
DataGrid1.Row = i
For j = 0 To DataGrid1.Columns.Count - 1
exlApp.Worksheets("sheet1").Cells(i + 2, j + 1).Value = DataGrid1.Columns(j).Text
Next j
Next i
exlApp.Windows(1).Visible = True
exlApp.Save
exlApp.Application.Quit
Set exlApp = Nothing
End Sub
No.3
- 回答日時:
No2です。
参照設定でMicrosoft Excel xx Object Library
にチェックを入れておいてください。
この回答への補足
回答有難う御座います。
教えていただいたソースコードを使い、実行しましたが、
ボタンを押した瞬間に、DataGridで表示されている範囲のデータしか正常に出力されず、それ以降のデータは、全て同じデータとなります。
具体的には、18行を表示させており、縦スクロールバーを使っています。
出力されるデータは、1~18行で19行目以降は18行目と同じデータになります。
No.4ベストアンサー
- 回答日時:
DataGrid1の親オブジェクトをくっつけたので
実際に合わせて変更してください。親をForm1としています。
縦スクロールバーを動かしてデータを見えるようにしました。
Private Sub Command1_Click()
Dim h As Long
Dim i As Long
Dim j As Long
Dim exlApp As Workbook
Dim strFile As String
Dim lnRow As Long
Dim lnCol As Long
'パス
strFile = "C:\test\5\myAAA.xls"
Set exlApp = GetObject(strFile, "Excel.Sheet")
'ヘッダのコピペ
For h = 0 To Form1.DataGrid1.Columns.Count - 1
exlApp.Worksheets("sheet1").Cells(1, h + 1) = Form1.DataGrid1.Columns(h).Caption
Next h
'データのコピペ
j = 1
Do While Form1.DataGrid1.Row <= Form1.DataGrid1.VisibleRows - 1
For i = 0 To Form1.DataGrid1.Columns.Count - 1
Form1.DataGrid1.Col = i
exlApp.Worksheets("sheet1").Cells(j + 1, i + 1).Value = Form1.DataGrid1.Text
Next
j = j + 1
If Form1.DataGrid1.Row < Form1.DataGrid1.VisibleRows - 1 Then
Form1.DataGrid1.Row = Form1.DataGrid1.Row + 1
Else
Exit Do
End If
Loop
exlApp.Windows(1).Visible = True
exlApp.Save
exlApp.Application.Quit
Set exlApp = Nothing
End Sub
教えていただいたソースを元に
以下のソースを作りました。
Private Sub Command1_Click()
Dim i As Long
Dim j As Long
Dim h As Long
Dim strFile As String
On Error Resume Next
CommonDialog1.Filter = "CSVファイル(*.CSV)|*.CSV"
CommonDialog1.ShowSave
'ヘッダのコピペ
For h = 1 To DataGrid1.Columns.Count - 1
If strFile = vbNullString Then
strFile = DataGrid1.Columns(h).Caption
Else
strFile = strFile + "," + DataGrid1.Columns(h).Caption
End If
Next h
strFile = strFile + vbCrLf
j = 1
Do While Form1.DataGrid1.Row <= Form1.DataGrid1.VisibleRows - 1
For i = 1 To Form1.DataGrid1.Columns.Count - 1
Form1.DataGrid1.Col = i
If i = 1 Then
strFile = strFile + DataGrid1.Text
Else
strFile = strFile + "," + DataGrid1.Text
End If
Next
j = j + 1
strFile = strFile + vbCrLf
If Form1.DataGrid1.Row < Form1.DataGrid1.VisibleRows - 1 Then
Form1.DataGrid1.Row = Form1.DataGrid1.Row + 1
Else
Exit Do
End If
Loop
Dim fileNo As Integer
fileNo = FreeFile
Open CommonDialog1.FileName For Output As #fileNo
Print #fileNo, strFile;
End Sub
エクセルシートに書き込むと動作が重くなるため、CSV形式での出力にしました。
無事に表データをすべて出力することができ、本当に助かりました。
有難う御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
- Excel(エクセル) エクセルでフィルタ後、考えている場所に値コピーができない。 1 2022/05/02 21:01
- サーバー ファイルサーバのデータのバックアップ 1 2023/03/15 10:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
GASでスプレッドシートの一番上...
-
コンパイルエラーSubまたは...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
VBSやVBAでXMLファイルを読み込...
-
【ASP.NET MVC】一覧編集画面
-
C# データ配列から画像を作成す...
-
エクセルVBA、数式の入ったセル...
-
DataGridViewで表示に制限をつ...
-
asp+vbscriptで「文字列がある...
-
こんばんわ。
-
ASP C# データベースから1行取得
-
EXCEL2000のマクロ(ADO)にてCSV...
-
GridViewにバインドせずにデー...
-
PDFメニューバーの右端にある(...
-
ListViewで条件によって表示を...
-
カンマ区切りの文字列にPOSTデ...
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
GASでスプレッドシートの一番上...
-
GridViewにバインドせずにデー...
-
VBAでページ番号、ページ最終行...
-
.NET SqlDataReader のレコー...
-
MSFlexGridのデータ表示位置の設定
-
【ASP.NET MVC】一覧編集画面
-
DataGridViewで表示に制限をつ...
-
VBによる可変長ファイルの読み書き
-
エクセルマクロ小数点桁数
-
GoogleスプレッドシートからExc...
-
ListViewで条件によって表示を...
-
ACCESSのVBAで[Split]について
-
C# データ配列から画像を作成す...
-
ASP.Net ObjectDataSource
-
スプレッドシート 一括でQRコー...
-
ASP.NET DataGridの項目数(列...
-
GridViewを自動的にスクロール...
おすすめ情報