VBのフォームの中にWord2000を立ち上げたいのですが、
そのようなこと出来るのでしょうか?
VB5、VB6、どちらでもかまいません。

A 回答 (1件)

OLEコンテナコントロール(ツールボックスでOLEと書いてあるやつ)をフォームに貼ると、オブジェクトの種類を聞いてきますので、Microsoft Word文書を指定してやってください。



とりあえず、この状態で、実行して、OLEコンテナコントロールをダブルクリックするか、右クリックして編集または開くを選択すると文書の編集が出きるはずです。

あとは、VBのヘルプで確認してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q[VB.NET]3つ以上のフォームを一つずつ表示し、最後のフォームを閉じた時に最初のフォーム以外のフォームを閉じる

VB.NETを学んでいるのですが、現在3つ以上のフォームを表示していくものを作ろうとして躓いたことがあったのでこちらに書き込みました。
内容としては、ボタンを押して次のフォームを表示していくものです。

動作の流れは以下のように考えています(フォームはA、B、Cの3つとする)
1.Aを表示
2.Aでボタンを押してBを表示し、Aは隠す
3.Bでボタンを押してCを表示し、Bは隠す
4.Cでボタンを押してBとCを閉じ、隠していたAを表示

隠すのはHideを用いてできたのですが、4.でCのボタンでBとCを一緒に閉じてAを表示させる方法がわかりませんでした。

1~4のように動作させるにはどうすればいいか教えてください

Aベストアンサー

まとめて考えるのではなく、分けて考えた方がコーディングもしやすくなります。

[ FormA の処理 ]
1. ボタンを押したら FormB を開き、自身を Hide する。
2. FormB が閉じられたら、自身を Show する。

[ FormB の処理 ]
3. ボタンを押したら FormC を開き、自身を Hide する。
4. FormC が閉じられたら、自身を Close する。

[ FormC の処理 ]
5. ボタンを押したら、自身を Close する。

ポイントは、親フォーム側で子フォームのFormCloseを捕らえるところです。FormBからFormAを、とか、FormCからFormAとFormBを・・・と考えるとややこしくなります。上記のように処理すれば、FormBはFormAの動作を気にする必要はありませんし、FormCもFormBやFormAの動作を気にする必要はありません。子フォームのFormCloseはWithEvents宣言すれば捕らえられます。

以下、簡単なコードを。ボタン配置が面倒だったので、フォームのクリックで動作します。


' [ FormA の処理 ]
Public Class FormA
Inherits Form

Public Sub New()
Me.Text = "FormA"
End Sub

Private WithEvents frmFormB As FormB

' 1. ボタンを押したら FormB を開き、自身を Hide する。
Private Sub FormA_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
frmFormB = New FormB
frmFormB.Text = "FormB"
frmFormB.Show()

Me.Hide()
End Sub

' 2. FormB が閉じられたら、自身を Show する。
Private Sub frmFormB_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles frmFormB.FormClosed
frmFormB = Nothing
Me.Show()
End Sub

End Class

' [ FormB の処理 ]
Public Class FormB
Inherits Form

Private WithEvents frmFormC As FormC

' 3. ボタンを押したら FormC を開き、自身を Hide する。
Private Sub FormB_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
frmFormC = New FormC
frmFormC.Text = "FormC"
frmFormC.Show()

Me.Hide()
End Sub

' 4. FormC が閉じられたら、自身を Close する。
Private Sub frmFormC_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles frmFormC.FormClosed
frmFormC = Nothing
Me.Close()
End Sub

End Class

' [ FormC の処理 ]
Public Class FormC
Inherits Form

' 5. ボタンを押したら、自身を Close する。
Private Sub FormC_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Me.Close()
End Sub

End Class

※VB2005で書いたコードなので.NETでそのまま動くかは不明・・・。

なお、あくまで考え方のひとつなので、他にも方法はあります。

まとめて考えるのではなく、分けて考えた方がコーディングもしやすくなります。

[ FormA の処理 ]
1. ボタンを押したら FormB を開き、自身を Hide する。
2. FormB が閉じられたら、自身を Show する。

[ FormB の処理 ]
3. ボタンを押したら FormC を開き、自身を Hide する。
4. FormC が閉じられたら、自身を Close する。

[ FormC の処理 ]
5. ボタンを押したら、自身を Close する。

ポイントは、親フォーム側で子フォームのFormCloseを捕らえるところです。FormBからFormAを、とか、FormC...続きを読む

QVB6またはVB2005でWordの操作

VB6またはVB2005でWord2003の操作を考えているのですがどのように勉強したらよいかわかりません。
「VBレスキュー(花ちゃん)」のホームページをみましたが、載っていない事をやろうと思うとよくわかりません。
参考書籍の紹介やアドバイス等お願いします。

Aベストアンサー

先日も同じ質問をしてましたね。当日はOKWAVEでつながりにくい日だったように記憶しますが、お気の毒にも、その原因で回答が無かったか、少なかったかもしれません。私も質問を読んで、答える知識も無くかつ、そんなに簡単ではないよと思って回答を上げられませんでした。しかし何度も同じ質問を見るのも個人的にきになるので、少し書きます。
以下の表現は、私がワードVBAを習熟してい(て)るから言うのでは決してなく、入り口あたりで、習得が難しいので、かれこれ10年近くも、逡巡している状態だと言うことを念頭において読んでください。
理由は、もちろん仕事で、ワードVBAをやらなければならない場面には出くわさず、私の能力ややり遂げられない性格の問題は大きいでしょう。
>VB6またはVB2005で
質問のここを見て、経験が無いから答えない人がいるかもしれない。
VBのベテランはワードVBAなど使う方が少ない
VBやワードVBAの熟達者はOKWAVE(Goo)のサイト
を見る暇は無いと想像する。
などと思っています。
>Word2003の操作を考えているのですがどのように
一般論。
Dim myWord
Set myWord = WScript.CreateObject("Word.Application")
myWord.Visible = True
myWord.Documents.Open " C:\Documents and Settings\User名\My Documents\ABCo.doc"
のようにすれば、ワードのオブジェクト群の世界に入れます。跡は
ワードの中でワードVBAでコードを書くのに比べ、オブジェクトmyWordを頭にいつもつけて同じコードを書けば良いのだと思う。
結局WordVBAが使えるようにならないといけない。
VB6またはVB2005の習得とあまり関係ない(VBの基礎的共通性などは当然知っているとして)。
ーー
●結局WordVBAが使えるようにならないといけないー>
これはつまるところ、VB6などの知識とは全く別の、ワード(VBA)のオブジェクトとプロパティ、メソッドにどんなものがあり、どう使うかを知ってかつ使い慣れないといけない。またエクセルVBAなどに比べ、(慣れないせいかもしれないが)数が多く、複雑なように私は思う)。無理にオブジェクト指向の仕組みに修正したのではないかと思う。セルという明確な基本単位が無いのが大きいかも。
●ワードVBAの特有の考え方
これがエクセルVBAとは相当別物で、特有のクセがあり、教えてもらわないと、なかなか習得しにくいよう。
●教えている学校の宣伝告知なども、見たことが無い。
●独習をしようにも、解説書が少ない。図書館に行ってもまずお目にかからないでしょう。
Amazonで照会しても4本出て2本は在庫切れ、1本はエクセルなどと共通解説です、1本は古本で相当なプレミアつき。
現在大型書店で見るのは下記2点ぐらいか?
西上原裕明先生 Wordで実線マクロ事例集 技術評論社
(もしWordVBAについて体系的に、詳しく書いてもらえるとするならこの先生が適任かと(私見独断)。しかしエクセルVBAに比べ購入者は少ないでしょね。これが出版物が少ない原因か?
Word Hacks
●さて学習する材料は
マイクロソフトの解説やヘルプを学習する。
幸いマクロの記録が取れるのでそれを解読して勉強する。
WEBで「Word VBA」などで照会し、(19万であるそうだ)この中から自分の課題にあったものを探し(難物)、見て学習する。
同じテーマのものも多く、個別的な解説が多いのはやむをえない。
2000年ごろに比べ増えている。理の当然か。
●しかし世間の狭い私などに比べ、「世の中広い」
WEBの記事を見ると、大勢の中には、どこで勉強されたのか、WrodVBAの解説も部分的には結構ある。才能のある方もいて、相当わかっている方も多いのかもしれない。しかしそういう詳しい方が、OKWAVEの回答者たるべく、OKWAVEの質問を全部(全部読まないとWordVBAの問題に出くわせない)読んでいる方がいると期待するのは無理な気がする。限られたVBのカテゴリでも読んで小数回答するのに、大変な時間がとられる。
●そういう状態なので体系的に学習する本を求めるなら、英文の解説書などを外国のWEB通販などで探すなどを考えてはどうかと思う。
私はやっていないし、その気もないものですが。
ーーー
上記に対する反論や本やWEBの紹介が出れば私も勉強します。

先日も同じ質問をしてましたね。当日はOKWAVEでつながりにくい日だったように記憶しますが、お気の毒にも、その原因で回答が無かったか、少なかったかもしれません。私も質問を読んで、答える知識も無くかつ、そんなに簡単ではないよと思って回答を上げられませんでした。しかし何度も同じ質問を見るのも個人的にきになるので、少し書きます。
以下の表現は、私がワードVBAを習熟してい(て)るから言うのでは決してなく、入り口あたりで、習得が難しいので、かれこれ10年近くも、逡巡している状態だ...続きを読む

Qフォームを閉じないようにする VB6 SP6

VB6 でプログラムを作成中です。

プログラムを実行して、フォームが立ち上がった所で右上の×を押し、画面を閉じようとします。
そこで以下のコードで、もし×が押されたらvbYesNoメッセージボックスを表示させ、もし「いいえ」が押されたらフォームを閉じないようにし、実行画面を維持したいのです。

しかし、Exit Sub ですとプログラムが終了してしまい、困っています。宜しくお願い致します。

Private Sub Form_Unload(Cancel As Integer) 'フォームを閉じる
Dim last As String
last = MsgBox(" プログラムを終了させますか?", vbYesNo, "終了確認1")

If (last = vbYes) Then
Dim last2 As String
last2 = MsgBox(" 本当にプログラムを終了させますか?", vbYesNo, "終了確認2")
If (last2 = vbNo) Then
Exit Sub
End If
End If

If (last = vbNo) Then
Exit Sub
End If

End Sub

VB6 でプログラムを作成中です。

プログラムを実行して、フォームが立ち上がった所で右上の×を押し、画面を閉じようとします。
そこで以下のコードで、もし×が押されたらvbYesNoメッセージボックスを表示させ、もし「いいえ」が押されたらフォームを閉じないようにし、実行画面を維持したいのです。

しかし、Exit Sub ですとプログラムが終了してしまい、困っています。宜しくお願い致します。

Private Sub Form_Unload(Cancel As Integer) 'フォームを閉じる
Dim last As String
last = Msg...続きを読む

Aベストアンサー

とりあえずは Cancel = True とすれば終了のチャンセルは出来ると思いますがそれでは小回りがききません。

通常は
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
を使用します。

UnloadMode で Form を閉じる原因コードが把握可能です。

QVB6 SP6 アイコンとフォームについて教えてください!

VB6でソフトを作ってコンパイルすると、独特のアイコンになってしまいます。
自分でペイントなどで書いた絵をアイコンにすることは可能なのでしょうか?


VB6のフォームはあらかじめありますが、自分でデザインした枠にプログラムを作ることは可能なのでしょうか?

以上の2つを教えてください
よろしくお願いします。

Aベストアンサー

自分でペイントなどで書いた絵をアイコンにすることは可能なのでしょうか?
可能です。

VB6のフォームはあらかじめありますが、自分でデザインした枠にプログラムを作ることは可能なのでしょうか?
可能です。

QVB6から#C or .NET VB どちらが易しい? OS or 言語

マシンが64bit対応なので VisualBasic6から #Cか .NET VBに書き換えて64bitで動作するように検討しています。

VS2005 Proは購入済みで、OSはWindowsXP x64 proか
Windows2003を検討しています。どちらがよいかわかっていないのですが、まず最初にプログラムをどちらにコンバートするか悩んでいます。

いっそC#の方が将来性があるのでしょうか?
また、.NET VBの方が書き換えが簡単でしょうか?

以前、VB6のプロジェクトファイルを開こうとしたら
なんか変換したような気かしましたが、フォームやメインが無かった?ようなへんてこなCが出来上がりました。

VBからの移行された方でどちらを選んだのか知りたいです。

Aベストアンサー

多少、混乱と誤解とがあるようです。

まず、Windows 2003という製品はありません。
おそらくはWindows 2003 Serverと間違えているのだと
思いますが、これは企業向けのサーバー用OSで開発用
ではありません。

それとVisual Studio .NET 2002 または .NET 2003の
Visual Basic .NET とVisual Studio2005 のVisual
Basic 2005 とはそれぞれ別製品です。

言語仕様も異なっている所がありますので、VB 2005を
使用しているのに、VB .NETと言って質問すると違った
解答が返ってくる場合があります。

#VS 2005 Proを購入されたという事ですが、仕事で
#使うには中途半端だし、勉強用ならExpress Edition
#が無料で入手できるので、若干微妙な選択の様な
#感じがしますが...

また、Visual Studioは32ビットアプリケーションです
から64ビットOS上で動かしても、32ビット互換モード
で動作するのみで、64ビットで動くわけではありません。

ここから本題
VB6からの移植であるなら、やはりVB 2005の方が言語的
にも近いので移植も楽なはずです。

C#は一見、C言語の様に見えますが、全く違う言語です
から移植及び移植後の追加修正を行う際に苦労する事
になると思います。

C#の将来性については、今までのMSの言語の発売傾向
からすると、1~3年ぐらいでマイナーチェンジを出し
5~6年ぐらいで、新技術の成果といって新しい言語を
出すという事を繰り返しているので、C#に関しても
同じ事が行われる事も考えられますが、逆に長く続く
という可能性もあります。

どちらになるかは、売上げ実績次第?

多少、混乱と誤解とがあるようです。

まず、Windows 2003という製品はありません。
おそらくはWindows 2003 Serverと間違えているのだと
思いますが、これは企業向けのサーバー用OSで開発用
ではありません。

それとVisual Studio .NET 2002 または .NET 2003の
Visual Basic .NET とVisual Studio2005 のVisual
Basic 2005 とはそれぞれ別製品です。

言語仕様も異なっている所がありますので、VB 2005を
使用しているのに、VB .NETと言って質問すると違った
解答が返ってくる場合があります。

...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報