今日は、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関数を使った方がいいでしょう。
だい
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関数を使った方がいいでしょう。
だい
※コメント投稿者のブログIDはブログ作成者のみに通知されます