goo blog サービス終了のお知らせ 

パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

エクセルを最大化して起動する(Visual Studio2008)

2011-05-12 09:07:06 | Visual Basic
今日は、Visual Basicを取り上げます。

ExcelVBAを使った電卓の続編は、いましばらくお待ちくださいね。


さて、VBからエクセルを起動するプログラムを書いてみましょう。
ついでにエクセルを最大化して起動するようにしましょう。


任意の名前で新規プロジェクトを作成してください。

フォームにボタンを配置しました。ボタンの名前は、初期設定のままです。(Button1です)

このボタンをクリックしたら、エクセルが起動するようにします。






それでは、さっそくコードを記述します。

ボタンをダブルクリックすると、クリック時イベントに関連付けられたSubプロシージャが現れます。

その中に、以下のようにコードを記述してください。

  Private Sub Button1_Click(ByVal sender As System.Object, _
               ByVal e As System.EventArgs) _
               Handles Button1.Click

    Const xlMaximized As Long = -4137

    Dim ex As Object = CreateObject("Excel.Application")
    ex.workbooks.add()
    xlMaximized xlMaximized
    ex.visible = True

  End Sub


画像も載せておきます。





9行目で、Excelのオブジェクトを生成します。
10行目で、新規ブックを作成します。
11行目で、エクセルアプリケーションを最大化します。
なお、7行目は、重要です。xlMaximized というのは、エクセルでは定数として使えますが、
このVBでは、CreateObject関数でエクセルを生成しているので、xlMaximizedは使えません。
実は、xlMaximized は、-4137 につけられた別名のようなものです。
ですから、
xlMaximized=-4137
と記述してももちろん正しいのですが、可読性を重視して、7行目で xlMaximized を使えるようにしています。

12行目のコードがないとエクセルは、表示されません。


今回のように、CreateObject関数を使う手法を、実行時バインディングと言います。
それに対して、参照設定をして、エクセルを使えるようにする方法を、事前バインディングといいます。

後者の方が、コーディングしやすいのですが、エクセルのバージョンが固定されます。
不特定多数がこのプログラムを使用するのなら、どのバージョンでも動作するようにCreateObject関数を使った方がいいでしょう。


だい

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 月ごとに集計する(今回はExce... | トップ | 今週のおすすめ記事 »
最新の画像もっと見る

コメントを投稿

Visual Basic」カテゴリの最新記事