データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
Mr.momoQZ です。
ご連絡ありがとう御座います。
MSDN フォーラムで質問してみます。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
質問内容は、Excelについての質問と言うより、「データベースエンジンACE」の質問です。
場違いな質問かも知れませんがお付き合いください。
趣味でVBプログラムを作ってます。
XPサポート終了のため、最近Win8.1のパソコンを買いました。
XP時代は、Visual Studio 2005、Office 2007の環境でしたが、
今(W8.1)は、Visual Studio 2013、Office 2013になりました。
XP時代に作ったソフトを今の環境でリプレースしていますが、1部従来通りの挙動が出来ません。
状況としては、
データベースエンジンJet 4.0 OLE DBでExcel 97-2003 ブック形式(.xls)にアクセスして、レコード追加(Insert)した場合、セルの書式は上の行の書式設****が継承されるのですが、
データベースエンジンACE 12.0 OLE DBでExcel 2007-2013 ブック形式(.xlsx)で同じことをすると、セルの書式が継承されません。
これはACEの仕様でそういうものなのでしょうか?
Jetとは仕様が異なるのでしょうか。
ACEでセルの書式を継承する方法は無いものかと、こちらに質問させて頂きます。
実際のソースコードは複雑なので、代わりのソースを・・
Microsoftサポートの「Visual Basic .NET とADO.NET を使用してExcel ブックのレコードの取得と変更を行う方法」
http://support.microsoft.com/kb/316934/ja
これはJetのお話ですが、こちらのサンプルコードの
Private m_sConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\ExcelData1.xls;" & _
"Extended Properties=""Excel 8.0;HDR=YES"""
Private m_sConn2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\ExcelData2.xls;" & _
"Extended Properties=""Excel 8.0;HDR=YES"""
これを、
Private m_sConn1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\ExcelData1.xlsx;" & _
"Extended Properties=""Excel 12.0 Xml;HDR=YES"""
Private m_sConn2 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\ExcelData2.xlsx;" & _
"Extended Properties=""Excel 12.0 Xml;HDR=YES"""
に書き換え、さらに
Public Sub Create_Workbook()
' 中略
End Sub
に登場する、
"C:\ExcelData1.xls"ならびに"C:\ExcelData2.xls"
のファイル名を
"C:\ExcelData1.xlsx"ならびに"C:\ExcelData2.xlsx"
に書き換えます。
※実際にはw8.1なので、C直下にファイルは保存できなので
C:\任意フォルダ\エクセルブック.拡張子
にする必要があります。
操作手順
1.Form1のCreate_Workbook をクリックしてエクセルブックを作成
2.作成したエクセルブックを一旦開いて適当な書式(太字とか数値とか)を設****し閉じる
3.Form1のAdd_Recordsをクリックしてレコードを追加
4.エクセルブック再び開いてセル書式を確認
ちょっと面倒ですが、これで今回質問の事象が再現できます。
ACEでセルの書式を継承する方法を探しております。ご教授よろしくお願いいたします。
ちなみに、レコード更新(Update)ではJetもACEも同じ挙動になります。(更新前のセル書式をキープ)
データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
Mr.momoQZ です。
ご連絡ありがとう御座います。
MSDN フォーラムで質問してみます。
Mr.momoQZ さん、こんにちは。
マイクロソフト コミュニティをご利用いただき、ありがとうございます。
ACE データベースエンジンを使用するとセルの書式が継承されないということなのですね。
ACE データベースで今回のような動作になる原因を調べてみましたが、該当の情報が見つからず、このような動作になる原因については解りませんでした。
ACE データベースについては、開発者の方が多く利用される MSDN フォーラムにも投稿されているようなので、こちらのフォーラムにも質問を投稿してみて情報を集めてみてはいかがでしょう。
もしかすると同じような経験をお持ちの方から、有力な情報やアドバイスが得られるかもしれません。
上記フォーラムのご利用も検討なさってみてくださいね。