[リストへもどる]
一括表示

投稿時間:2003/06/11(Wed) 11:59
投稿者名:TiS
Eメール:
URL :
タイトル:
OLEを利用してExcelを操作
はじめまして。
現在、OLE上でExcelを動かすプログラムを作っています。
フォームの大きさが変更されたとき(Form_Resizeなど)、
OLEコンテナ内にあるExcelのシートの大きさをかえる方法を探しています。
いろいろな方法を試してみたのですが…
良い方法があればご教授下さい。

投稿時間:2003/06/11(Wed) 13:06
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: OLEを利用してExcelを操作
>いろいろな方法を試してみたのですが…
どのような方法を試されて、どこがまずかったのでしょうか?

>良い方法があればご教授下さい
どのような方法を求めておられるのでしょうか?
もう少し具体的に書いて頂かないと回答してから[それではなくて]、では!


取り敢えず、これではだめですか?

Private Sub Form_Resize()
    OLE1.Width = Me.Width - 400
    OLE1.Height = Me.Height - 1000
End Sub

必要により
Private Sub Form_Load()
    With OLE1
        .SizeMode = vbOLESizeAutoSize
    End With
End Sub

投稿時間:2003/06/11(Wed) 13:41
投稿者名:TiS
Eメール:
URL :
タイトル:
Re^2: OLEを利用してExcelを操作
ありがとうございます。わかりにくい質問の仕方でした。申し訳有りません。

Width,Heightプロパティを変更すればOLEのコントロール自体の大きさは
望み通りに変更されます。その方法は試してみました。
しかし、埋め込まれたオブジェクト(今回はExcelのシート)の大きさは変更されません。
(ダブルクリックして、埋め込まれたオブジェクトを編集できる状態にしたとき)

例えば

Dim xlObj As Object

OLE1.CreateEmbed "c:\test.xls"
xlObj=OLE1.object.Application

Debug.Print xlObj.Height

とすれば、HeightやWidthの値を取得する事はできます。
この値は設定したい部分の値と同じです。
これの反対のことをしたいのですが…設定は出来ないというエラーがでてしまいます。

わかりにくい質問の仕方では有りますが…

投稿時間:2003/06/11(Wed) 16:14
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: OLEを利用してExcel(訂正)
念のため確認してみたら取得も設定もできました。

Private Sub Command1_Click()
    Dim xlObj As Object
    OLE1.CreateEmbed "c:\test.xls"
    Set xlObj = OLE1.object.Application
    With xlObj
        .Left = 0
        .Top = 0
        .Height = 500
        .Width = 700
    End With
End Sub