こんにちは。
先日、エクセルのフォームを最前面に配置したいという
質問をさせて頂いたものでございます。
それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、
最前面にする事は出来たのですが、フォームを動かすと
ブックはその一つ下に現れてしまい、
ブックを最背面に配置するなどを試みてみたのですが、
どうもうまく行かないので、
エクセルから直に立ち上げることが出来ないようにして
VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。
それで、データを送る方法は何とかなりそうなのですが、
VB.NETのフォームからエクセルを起動して、
次にエクセルからそのフォームを出したり、隠したりしたいのですが、
その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか?
IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。
そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。
よろしくお願いいたします。m(__)m
No.1ベストアンサー
- 回答日時:
まず
・Excelのバージョン
・.NETのバージョン(2005でしたっけ?)
を教えてください。
Excelのユーザフォームを開くときに、エクセル本体を最小化でもよいですか?
この回答への補足
基本的な情報が抜けておりました。
ご指摘くださって、ありがとうございます。
OSはWindows XPで
エクセルはEXCEL 2002 SP-1で
VB.NETはMicrosoft Visual Basic .NET 69516-335-0000007-18389
というものになります。
あと、試行錯誤してみた結果、FindWindowExというAPIで6桁の数字が取得出来まして、
これを使って試しに電卓を対象にして
SetWindowPos(FindWinEx, -1, 0, 0, 0, 0, a or b)
(aには&H1 bには&H2が入っています)
を実行したら、ウィンドウの状態に変化が見られたのですが、
電卓の右が欠けてしまい、100*270(ピクセル)位の大きさになってしまい、
対象がエクセルの場合は位置がデスクトップの左上で大きさが200*40(ピクセル)位になってしまいました。
Zオーダーは通常と変化がないようで、後から表示したウィンドウに隠れてしまいます。
TopMost = TrueやFalseと同じ操作をしたいのですが、
訂正箇所や方法をご教示頂けたら助かります。
よろしくお願いいたします。m(__)m
補足の補足が必要になってしまい申し訳ございません。
エクセルのユーザーフォームを開く時にエクセル本体を最小化しても良いかという点ですが、
エクセル本体は通常通りの表示になれば良いと思っています。
流れとしては、
1、VB.NETのプログラムを起動、
2、自分のウィンドウハンドルをiniファイルに記録、
3、自分を不可視状態にする。
4、エクセルの既存のブックを開く
5、エクセルのユーザーフォームのボタンを押すと
VBのフォームが表示・非表示になる。
エクセルVBAの時もSetWindowPosが思うように
動いていないようでしたので、
何か別のところで間違っているか、基本的な勘違いをしているのではないかと思いはじめました。
また引き続き試行錯誤してみたいと思います。
何か間違っている点など、お気づきのことがありましたら、
ご回答頂けると幸いです。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAにてメッセージボックスを最...
-
サブフォームのイベント取得
-
サブフォームの新規レコードに...
-
VBプログラムの終了
-
アクセス フォームが存在する...
-
メインフォームからサブフォー...
-
アクセスVBA フォームのス...
-
Access:ストアドプロシージャ...
-
Accessでフォームから別フォー...
-
ボタン押下でサブフォームのレ...
-
vb2005 ピクチャボックスを配列...
-
ACCESS フォーム、クエリの最前...
-
サブフォームの行ごとにコンボ...
-
Googleフォーム・複数人の申し...
-
フォームで複数のチェックボッ...
-
リストボックスの選択解除
-
AccessVBAでサブフォームの値チ...
-
リストボックスをクリックする...
-
フォームの外にドラッグ&ドロップ
-
アクセス・別フォームの新規レ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleフォーム・複数人の申し...
-
VBAにてメッセージボックスを最...
-
アクセスVBA フォームのス...
-
Accessでフォームから別フォー...
-
サブフォームの新規レコードに...
-
サブフォームの行ごとにコンボ...
-
サブフォームのイベント取得
-
Access 無操作の場合、自動で閉...
-
リストボックスの選択解除
-
メッセージボックスの背景色
-
VB.net(VB)で、フォームにExcel...
-
accessで2つ以上のフォームを起...
-
フォーム上の全てのコントロー...
-
Accessのトグルボタンでサブフ...
-
ExcelVBAでフォーム内でブック...
-
ユーザーフォーム上にアイコン...
-
ACCESS VBAサブフォーム(DATA S...
-
PDFフォームに本日の日付を自動...
-
子フォームから親フォームのオ...
-
アクセス フォームが存在する...
おすすめ情報