早速質問をさせていただきます。
VBでDAOを使用して、AccessDBのテーブル内のデータを参照しています。そのデータを、エクセル形式に出力させたいのですが、エクセルがインストールされていない端末からエクセル形式にデータを出力することは可能なのでしょうか?
ちなみに、OSはWindows98でVB6.0(SP4)のみがインストールされている状態の端末です。「エクセルをインストールすれば解決します」と言われればそれまでなのですが…。
すみませんが、よろしくお願いします。

余談:エクセルがインストールされている端末からのエクセル形式の出力は、皆様方の回答の中にありましたので参考にさせていただいております(感謝)。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

市販のOCXを使えば可能です


Excelクリエータ
スプレッドシート
とか

この回答への補足

OCXとかを使用すればできそうですが、あまり使用したくないのです。
再配布可能なドライバあたりで、エクセル形式に出力できないでしょうか?

補足日時:2001/10/12 14:56
    • good
    • 0

エクセル形式がどのようなものか知りませんが、VBでCSVファイルをつくるのはダメでしょうか。

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QVB6.0をインストールしている環境でVB.NetをインストールしてもVB6.0は動かせるでしょうか?

初心者的な質問ですみません。
VB6.0をインストールしている環境でVB.NetをインストールしてもVB6.0は動かせるでしょうか?
それともVB6.0をアンインストールしなければVB.Netはインストールできないのでしょうか。

Aベストアンサー

.NETとVB6は同一のパソコン内で分割(お互い干渉せずに)して使うことができます。.NETの説明書にも記載がありますよ。

私としてはVB6を使っていて.NETに変更するとだいぶ違った操作性になるためHDDに余裕があるのであればVB6は残しておいた方がいいと思いますよ。

QエクセルのVBマクロで、エクセルのPDFファイル出力機能を利用したいです

タイトルの通り、エクセルのVBマクロで、エクセルのPDFファイル出力機能を利用したいですが、
どのような関数がかるでしょうか?

よろしくお願いします。

Aベストアンサー

使ってないので自信がありませんが、
Acrobat7.0Standard(WIN)以上のAcrobatをインストールしすると
メニュかツールバーにPDFで保存が作られる(ADOBE社のパンフレットから)。マクロ記録をとって、それをクリックしてするとVBAコードが出ませんかね。
SaveAsなどでファイル拡張子だけが・PDFになるのか、特別なメソッドがあるのか、XlPDFのような指定を行うだけなのか、わかりません。
>関数がかるでしょうか
「関数があるでしょうか」とすると、表現がおかしいと思います。エクセルの関数はシートの1セルに「値」を1つ返すだけのもので。ブックや他形式のファイルを作って保存する機能などはありません。
列挿入や表示形式の設定できる関数さえもありません。
この点ユーザー定義関数も同じです。VBの関数も数が決まったものです。
多言語やVBで言う関数は、VBAでのユーザー関数はFunctionでやらずSubプロシージュアーで行うと思います。
質問の関数をいうなら、メソッドに当たると思います。ただPDFに書き出す
メソッドがあるかないか、識者の回答を待ちましょう。

使ってないので自信がありませんが、
Acrobat7.0Standard(WIN)以上のAcrobatをインストールしすると
メニュかツールバーにPDFで保存が作られる(ADOBE社のパンフレットから)。マクロ記録をとって、それをクリックしてするとVBAコードが出ませんかね。
SaveAsなどでファイル拡張子だけが・PDFになるのか、特別なメソッドがあるのか、XlPDFのような指定を行うだけなのか、わかりません。
>関数がかるでしょうか
「関数があるでしょうか」とすると、表現がおかしいと思います。エクセルの関数はシートの1...続きを読む

QVB.NETからエクセルを起動して、エクセルでVBを閉じたい。

こんにちは。
先日、エクセルのフォームを最前面に配置したいという
質問をさせて頂いたものでございます。
それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、
最前面にする事は出来たのですが、フォームを動かすと
ブックはその一つ下に現れてしまい、
ブックを最背面に配置するなどを試みてみたのですが、
どうもうまく行かないので、
エクセルから直に立ち上げることが出来ないようにして
VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。
それで、データを送る方法は何とかなりそうなのですが、
VB.NETのフォームからエクセルを起動して、
次にエクセルからそのフォームを出したり、隠したりしたいのですが、
その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか?
IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。
そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。
よろしくお願いいたします。m(__)m

こんにちは。
先日、エクセルのフォームを最前面に配置したいという
質問をさせて頂いたものでございます。
それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、
最前面にする事は出来たのですが、フォームを動かすと
ブックはその一つ下に現れてしまい、
ブックを最背面に配置するなどを試みてみたのですが、
どうもうまく行かないので、
エクセルから直に立ち上げることが出来ないようにして
VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。
それで、データを送る方...続きを読む

Aベストアンサー

まず
・Excelのバージョン
・.NETのバージョン(2005でしたっけ?)
を教えてください。

Excelのユーザフォームを開くときに、エクセル本体を最小化でもよいですか?

QVB.net データセットからのCSV出力で日付ソートで書き込めないです。

VB.netでデータを読み込みました。
何もしないで読み込むと下記のような右の昇順になります。
2016/07/31,1306453
2016/07/30,1326235
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547

そこでデータセットに格納後
'昇順ソートを実施
DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
を処理後は下記のように表示されますが
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547
2016/07/30,1326235
2016/07/31,1306453


CSV出力を行うと最初の順で出力されます。
2016/07/31,1306453
2016/07/30,1326235
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547


どうしたらよいでしょうか?

VB.netでデータを読み込みました。
何もしないで読み込むと下記のような右の昇順になります。
2016/07/31,1306453
2016/07/30,1326235
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547

そこでデータセットに格納後
'昇順ソートを実施
DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
を処理後は下記のように表示されますが
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547
2016/07/30,1326235
2016/07/31,1306453

...続きを読む

Aベストアンサー

DataGridViewとDataSetおよびDataTableは別物ですよ。
DataGridViewをソートしたからといって、DataTableの並び順が変わるわけではありません。

ループする対象は、DataTableではなく、DataGridViewでしょうね。

また、いくつかの方法論が出てきますが、ここら辺の説明のように、DataViewを利用するとか、ソートしたものを別なDataTableに落とし込むとかします。
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/27b4157e-701a-4cd3-b370-08ece4aabc28/datagridview-sort-datatable-datatable?forum=vbgeneralja
http://www.atmarkit.co.jp/fdotnet/dotnettips/363dtsort/dtsort.html
http://jehupc.exblog.jp/9814663/
http://noqisofon.hatenablog.com/entry/20110328/1301238234
http://futuremix.org/2009/03/datatable-select-sort

が、可能ならば、そもそも求めるソート順で読み込むという方が楽です。

DataGridViewとDataSetおよびDataTableは別物ですよ。
DataGridViewをソートしたからといって、DataTableの並び順が変わるわけではありません。

ループする対象は、DataTableではなく、DataGridViewでしょうね。

また、いくつかの方法論が出てきますが、ここら辺の説明のように、DataViewを利用するとか、ソートしたものを別なDataTableに落とし込むとかします。
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/27b4157e-701a-4cd3-b370-08ece4aabc28/datagridview-sort-datatable-datatable?forum=vb...続きを読む

QVB2008 エクセル出力

VB2008 エクセル出力

教えていただけると助かります

VB6.0使用時にエクセル出力をするために下記のようなプログラムで出力していました
※「Microsoft Excel 9.0 Object Library」を参照

Dim xlApp As EXCEL.Application
Dim xlBook As EXCEL.Workbook
Dim xlsheet As EXCEL.Worksheet
Dim File As String

File = App.Path + "\EXCEL\" + "フォーム.xls"
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(File)
Set xlsheet = xlBook.Worksheets("テスト")

xlsheet.Range("A1") = "テスト"

'フォルダ作成
If Dir("D:\", vbDirectory) = "" Then Call Mkdirs("D:\テスト")

'Worksheetを名前をつけて保存します。
xlApp.DisplayAlerts = False
xlsheet.SaveAs "D:\テスト\テスト.xls"

xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlsheet = Nothing


VB2008の場合だとどのように書けば同じように動きますか
※色々試してみましたがダメでした
「Microsoft Excel 12.0 Object Library」を参照しています

VB2008 エクセル出力

教えていただけると助かります

VB6.0使用時にエクセル出力をするために下記のようなプログラムで出力していました
※「Microsoft Excel 9.0 Object Library」を参照

Dim xlApp As EXCEL.Application
Dim xlBook As EXCEL.Workbook
Dim xlsheet As EXCEL.Worksheet
Dim File As String

File = App.Path + "\EXCEL\" + "フォーム.xls"
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(File)
Set xlsheet = xlBook.Worksheets("テスト")

xlsheet.Rang...続きを読む

Aベストアンサー

質問者のVB.NETの習熟度はどれほどか判りませんが、質問のVB6のコードがWEBをコピーしたものなら、VBAと違い、VB.NETは、スクールででも、VB。NETの基礎を学ばないと難しいのではないですか。
 私もそんな程度で、WEBのコードを継ぎはぎしてやってみました。
VB.NETでも、プロジェクトー参照の追加で、エクセルバージョンに応じたCOMの参照設定が必要です。
フォルダはデスクトップに作る例です。
 Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'起動時の処理
Dim xlApp As New Excel.Application
Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
'新規のファイルを開く
  Dim xlBook As Excel.Workbook = xlBooks.Add
Dim xlSheets As Excel.Sheets = xlBook.Worksheets
Dim xlSheet As Excel.Worksheet = xlSheets.Item(1)
xlApp.Visible = True 'Excelを表示
'------
Dim xlRange As Excel.Range
Dim strDat(2, 0) As Object
xlRange = xlSheet.Range("A5:A7") 'データの入力セル範囲
strDat(0, 0) = "10" 'データの作成 A5
strDat(1, 0) = "20"          'データの作成 A6
xlRange.Value = strDat 'セルへデータの入力
    '---
xlSheet.Cells(10, 1).Value = "tokyo99" 'こちらの書き方も出来る
    xlSheet.Cells(10, 1) = "=A5+A6"
'-------
System.IO.Directory.CreateDirectory("C:\Documents and Settings\xxxx\デスクトップ\smp")
xlBook.SaveAs("C:\Documents and Settings\xxxx\デスクトップ\smp\sample1.xls")
xlBook.Close()
xlApp.Quit()
' COM オブジェクトの解放
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)

' Excel のプロセス終了 System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)

End Sub
End Class
上記例でsmpフォルダが既にあって、警告などなく、そのまま進む。
sample1.xlsがそのフォルダに既にあると、警告が出る。
Form1を閉じて、上記フォルダを開き、上記エクセルブックを開いて確認のこと。

質問者のVB.NETの習熟度はどれほどか判りませんが、質問のVB6のコードがWEBをコピーしたものなら、VBAと違い、VB.NETは、スクールででも、VB。NETの基礎を学ばないと難しいのではないですか。
 私もそんな程度で、WEBのコードを継ぎはぎしてやってみました。
VB.NETでも、プロジェクトー参照の追加で、エクセルバージョンに応じたCOMの参照設定が必要です。
フォルダはデスクトップに作る例です。
 Public Class Form1
Inherits System.Windows.Forms.Form
Private S...続きを読む


人気Q&Aランキング

おすすめ情報