tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB.NETにてエクセルのセル結合
記事No2505
投稿日: 2005/11/02(Wed) 18:01
投稿者ポセイドン
[OSのVer]:Windows    [VBのVer]:VB.NET

初めて投稿致します。よろしくお願い致します。

現在ASP.NETでの開発を行っているのですが、
既存のエクセルファイルをASP.NETで開き、
エクセルのセルを結合しようとしております。
しかし、うまくいかないのです。

Dim xlApp As New Excel.Application
Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
'既存のファイルを開く場合
Dim strPass As String
strPass = (Server.MapPath("AnkenList.xls"))
strPass = Left(strPass, Len(strPass) - 14) & "\temp\AnkenList.xls"
Dim xlFilePath As String = strPass
Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath)
Dim xlSheets As Excel.Sheets = xlBook.Worksheets
Dim xlSheet As Excel.Worksheet = xlSheets.Item(1)
Dim xlRange5 As Excel.Range 'セル結合用

xlRange5 = xlSheet.Range("A1:B2")   '結合セル範囲

xlrange5.Merge()   'セル結合

というような作りなのですが
結合の所で処理が止まってしまいます。
何か原因がお分かりの方がいましたら
教えていただけないでしょうか。

よろしくお願い致します。

[ツリー表示へ]
タイトルRe: VB.NETにてエクセルのセル結合
記事No2507
投稿日: 2005/11/02(Wed) 22:32
投稿者魔界の仮面弁士
> 現在ASP.NETでの開発を行っているのですが、
> 既存のエクセルファイルをASP.NETで開き、
> エクセルのセルを結合しようとしております。

ライセンス的な問題はクリアされている、という事でよろしいでしょうか?
hhttp://support.microsoft.com/kb/257757/ja/

》 現在のライセンス ガイドラインでは、クライアントサイドに Office のライセンスを受けた
》 コピーがない場合は、Office アプリケーションをサーバーに配置して、クライアント要求に
》 対するサービスを提供することは許可されません。
》 サーバーサイド オートメーションを使用して、ライセンスを受けていないワークステーションに
》 Office 機能を提供することは、使用許諾契約書 (EULA: End User License Agreement) には
》 含まれていません。

とありますので。
(クライアントに Excel がある場合でも、バージョンが違う場合は NG だったかも…)

なお、クライアント側に Excel 2003 が存在するのであれば、XMLスプレッドシートを利用できます。
hhttp://codezine.jp/a/article.aspx?aid=194


> xlRange5 = xlSheet.Range("A1:B2") '結合セル範囲
> xlrange5.Merge() 'セル結合
> というような作りなのですが
> 結合の所で処理が止まってしまいます。
A1〜B2 という 4 つのセル範囲のうち、2 つ以上のセルに値が入力されている状態で
結合されており、その結果、結合時に確認ダイアログが表示され(またはエラーが発生して)、
処理が停止している…なんて事はありませんか?

[ツリー表示へ]
タイトルRe^2: VB.NETにてエクセルのセル結合
記事No2508
投稿日: 2005/11/03(Thu) 12:50
投稿者ポセイドン
[OSのVer]:Windows    [VBのVer]:VB.NET  

魔界の仮面弁士様

回答ありがとうございます。

> ライセンス的な問題はクリアされている、という事でよろしいでしょうか?
> hhttp://support.microsoft.com/kb/257757/ja/
> (クライアントに Excel がある場合でも、バージョンが違う場合は NG だったかも…)

データを書き込む、罫線を引く等の処理が出来ていますので
ライセンス的な問題はクリアされているかと思います。

> なお、クライアント側に Excel 2003 が存在するのであれば、XMLスプレッドシートを利用できま
す。
> hhttp://codezine.jp/a/article.aspx?aid=194

選択肢の一つとして考えてみたいと思います。

> A1〜B2 という 4 つのセル範囲のうち、2 つ以上のセルに値が入力されている状態で
> 結合されており、その結果、結合時に確認ダイアログが表示され(またはエラーが発生して)、
> 処理が停止している…なんて事はありませんか?

A1にのみ「合計」という文言が入力されており、
他のセルには値が入力されておりません。
エラー表示等がまったくなく、デバッグしても
エクセルに操作命令を出したっきり戻ってこない状態です。
もしエラーになっていても何も出ない為、困ってしまっています。

心当たりがありましたらお願いします。

[ツリー表示へ]
タイトルRe^3: VB.NETにてエクセルのセル結合
記事No2509
投稿日: 2005/11/03(Thu) 13:39
投稿者魔界の仮面弁士
> > ライセンス的な問題はクリアされている、という事でよろしいでしょうか?
> > hhttp://support.microsoft.com/kb/257757/ja/
> > (クライアントに Excel がある場合でも、バージョンが違う場合は NG だったかも…)
> データを書き込む、罫線を引く等の処理が出来ていますので
> ライセンス的な問題はクリアされているかと思います。

いえ、セキュリティ設定の話ではなく、Microsoft との間の使用許諾契約の話です。
技術的には可能でも、ライセンス上許可されないケースは多々ありますので。


> エクセルに操作命令を出したっきり戻ってこない状態です。
となるとサーバ上で、何らかの対話メッセージのダイアログが出ている可能性がありますね。
Display系のプロパティについては、どのように設定されていますか?

また、外部操作に関連する Interactive 等はどうですか?
あるいは、アンチヴィルス系のソフトウェアによって、処理がブロックされていたりはしませんか?

[ツリー表示へ]