ご存知の方、教えて頂けないでしょうか?
フォームの閉じるボタンをクリックした時いきなり閉じるのではなく、
確認メッセージを出したいのですが、
閉じるボタンのクリックイベントを受け取り、条件によってクローズの中断を行うにはどのようにすれば可能ですか?
大変申し訳ありません。宜しくお願いします。

A 回答 (2件)

VB6ならFormのQueryUnloadイベントで、


VB.NETならFormのClosingイベントで、
確認のメッセージと、それに応じて閉じないという判定を行えばいいかと。

参考URL:http://jeanne.wankuma.com/tips/form/closingcance …
    • good
    • 0
この回答へのお礼

ありがとうございます!!
助かりました!

お礼日時:2007/02/15 21:29

たぶん「VB2005」と思われるので下記ページが参考になるかと



DOBON.NET > プログラミング道 > .NET Tips > フォーム
条件によりフォームが閉じられないようにする
http://dobon.net/vb/dotnet/form/closingcancel.html


余談ですが、開発環境は記述したほうが良いですよ
(書いてるうちにかぶったorz)
    • good
    • 0
この回答へのお礼

ありがとうございます!!
すみませんうっかり忘れてました。

お礼日時:2007/02/15 21:29

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

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

Q亀甲牡丹ヒントニーの育て方

1年前くらいに、亀甲牡丹ヒントニー(実生?)の小さい鉢植えを買いました。
お店の人が、肥料などはいらないから水だけ2週間に1回くらいでコップ1杯くらいあげて、と言っていたので、そうしていたのですが、最近になって、葉っぱ?が茶色になってきています(枯れてる?)
夏ぐらいまでは綺麗な緑色だったのですが。
室内の日はあんまりあたらないところに置いてます。
サボテンを育ててるのは初めてで、どうしたらよいのか全く分からないです。

水やりの頻度や量をこうしたらいいとか、肥料はいらないのか、とかアドバイスがあったら教えてください。
今は、まだ直径4センチ、高さ2センチくらいの大きさです。
鉢が買ったときの小さいもの(直径8センチ、高さ10cmくらい)なのですが、植え替えたほうがいいのでしょうか。
また、日なたに置くのと日陰におくのとどちらがいいのでしょうか。

参考になるのかわかりませんが、今朝とった写真をつけました。

Aベストアンサー

誠に残念ですが、画像を見る限り九分九厘枯れています。
一分の望みはあるかも知れませんが、このような状態になってからでは
助けようがありません。元の緑色に戻すのは不可能です。
今後に新たに購入されるかも知れませんので、亀甲牡丹ヒントニーが何
であるかと言うより、サボテンがどんな植物であるのかを説明したいと
思います。これを読めばサボテンと言う植物が分かり、販売店の方が言
われた事が間違いだった事が分かります。

サボテンと言う植物は暑さや乾燥に非常に強く、多湿や寒さには非常に
弱い植物が多いです。一部には寒さにも強い種類もありますが、そのよ
うな種類は世界中に数種類しかありません。
暑さに強いと言うのは、自生地が亜熱帯や砂漠等で自生する物が多いと
言う訳で、長期間も雨が降らないメキシコ等が有名です。
体に水分を蓄えられる機能を持っているため、水遣りを怠っても直ぐに
は枯れる事がありません。蓄えた水分を少しづつ使用し、雨が降るまで
生き延びようとします。蓄えた水にも限りがあるので、全て使い切って
しまうと当然ですが枯れてしまいます。逆に普通の草花のように毎日の
ように水遣りをすると、蓄えられる水分分量を超えますから、根腐れを
起こして腐敗して枯れてしまいます。

どんな植物や樹木でも共通しますが、植替え時期は必ず決められていま
す。何時でも植替えが出来るとは考えないで下さい。決められた時期に
植替えを行うようにし、状態が悪くなってからでは手遅れになります。
亀甲牡丹は通常のサボテンと同じですから、植替えは5~9月の間だけ
で行います。僕の長年の経験からすると、出来るなら梅雨時期と猛暑の
時期を除いた時期が良く、梅雨入り前までに植替えを済ませた方が良く
なります。古い土は全て捨て、新しい土を使用して植替えます。
土は市販のサボテンと多肉植物の土を使用し、何も混ぜないで購入時の
ままで使用しますが、保水性が高い種類が多いので園芸用の川砂を2割
程混ぜても構いません。

肥料は植替え時に緩効性化成肥料(マグァンプK等)を混ぜて使用し、
次回の植替えまで一切与えません。置き肥で与える時は5~9月の間に
2ヶ月に1回で少量与えます。

置き場所は年間を通して日当たりの良い場所に置き、真夏だけは光線に
より本体が焼けて茶色く変色する事があるので、真夏だけは直射日光が
当たらない場所で弱い光線に当てます。冬場は外気温が5℃近くになっ
たら早めに室内に入れ、光線が十分に当たる窓辺で管理をします。
それ以外の時期は全て屋外で管理をします。猫可愛がりをすると外気温
が7℃以上は無いと越冬が出来ないので、寒さに多少でも強くさせるに
は冬以外は屋外で光線に当てるようにします。
植替え期間は鉢の大きさで決めます。7号鉢を基準とし、それ以下なら
年毎に植替えをし、それ以上なら2年毎に植替えをします。

水遣りは4~10月は鉢土が完全に乾いてから、更に1週間経ってから
鉢底から十分に水が流れ出るまで与えます。この時にコップ半分や1杯
等と量を決めたり、2週間と言うような期間を定めるのは絶対に避ける
ようにします。与える時は鉢底から水が流れ出るまで与えるのが原則で
す。店員さんの言われた方法は、機械的水遣りと言い絶対に行っては駄
目な方法です。店員さんはサボテンの事を全く知らない人のようです。
冬場は休眠するので、1ヶ月に1~3回で与えます。出来るだけ乾かし
気味にした方が寒さに強くなるので、出来るだけ水遣りは控えます。

暖房がガンガン効いた部屋ではサボテンの本体が乾燥するので、場合に
よっては干からびてしまいます。暖房器具の放射熱が直に当たらないよ
うにし、湿度不足の時は霧吹きでサボテンの表面に水を噴霧し、乾燥か
ら守る工夫が必要です。冬場でも掃除で窓を開ける事があるはずですが
窓を開けても冷気に長時間も当てないようにします。サボテンでも風邪
を引く事を覚えて下さい。

画像を見ると鉢の大きさが大き過ぎます。画像のような深鉢が好ましい
のですが、大きな鉢に小さなサボテンが置いてあるような感じを受けま
す。実際にはサボテンと鉢の間が、人挿し指が1本入る程度が適してい
ます。現在の鉢では生育のためには好ましいとは言えません。

日向と日陰ですが、基本的には日向です。植替え直後や状態が悪い時は
明るい日陰に置くのが好ましいですが、基本的には年間を通して日向に
置くようにします。また日向であれば良いと言う事はなく、風通しが悪
いと病害虫の発生が多くなったり、土が乾きにくくなるため腐敗しやす
くなります。年間を通して風通しを良くする事は必ず必要です。

サボテンと多肉植物に関しては栽培経験が長いので、ある程度の事なら
回答が出来ます。他に質問があれば締め切らずに補足質問をして貰えれ
ば、分かる範囲で答えようと思います。

誠に残念ですが、画像を見る限り九分九厘枯れています。
一分の望みはあるかも知れませんが、このような状態になってからでは
助けようがありません。元の緑色に戻すのは不可能です。
今後に新たに購入されるかも知れませんので、亀甲牡丹ヒントニーが何
であるかと言うより、サボテンがどんな植物であるのかを説明したいと
思います。これを読めばサボテンと言う植物が分かり、販売店の方が言
われた事が間違いだった事が分かります。

サボテンと言う植物は暑さや乾燥に非常に強く、多湿や寒さには非常に
弱い植...続きを読む

QExcelVBAでフォームのタイトルバーで右クリックした場合などに閉じるボタンが有効化されないようにするコード

Excelのプログラムで、最小化ボタンを有効にし、閉じるボタンを無効にする質問をしたんですが、うまくいったと思ったのですがフォームが開き、タイトルバーで右クリックした場合などは閉じるボタンが有効化されてしまうのでこれを無効のままにするコードを教えてください。
作ったプログラムは以下の通りです。

標準モジュール
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long

Public Declare Function GetSystemMenu Lib "user32.dll" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long

Public Declare Function EnableMenuItem Lib "user32" _
(ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long

Public Const MF_DISABLED = &H2&
Public Const GWL_STYLE = (-16)
Public Const WS_MINIMIZEBOX = &H20000
Public Const MF_BYCOMMAND = &H0&
Public Const SC_CLOSE = &HF060&
Dim hSysMenu As Long

UserForm_Initializeプロシージャ
Dim fRet As Long
Dim hWnd As Long
Dim fStyle As Long

hWnd = FindWindow("ThunderDFrame", "UserForm1")
fStyle = GetWindowLong(hWnd, GWL_STYLE)
fStyle = (fStyle Or WS_THICKFRAME Or WS_MINIMIZEBOX)
fRet = SetWindowLong(hWnd, GWL_STYLE, fStyle)
hSysMenu = GetSystemMenu(hWnd, 0)
EnableMenuItem hSysMenu, SC_CLOSE, MF_BYCOMMAND Or MF_DISABLED
fRet = DrawMenuBar(hWnd)

回答よろしくお願いします。

Excelのプログラムで、最小化ボタンを有効にし、閉じるボタンを無効にする質問をしたんですが、うまくいったと思ったのですがフォームが開き、タイトルバーで右クリックした場合などは閉じるボタンが有効化されてしまうのでこれを無効のままにするコードを教えてください。
作ったプログラムは以下の通りです。

標準モジュール
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function G...続きを読む

Aベストアンサー

こんにちは。
http://hanatyan.sakura.ne.jp/vbhlp/ibe_peke.htm
こちら参考にされると良いですね。

Public Declare Function DeleteMenu Lib "user32" ( _
                  ByVal hMenu As Long, _
                  ByVal nPosition As Long, _
                  ByVal wFlags As Long) As Long

Public Const MF_BYPOSITION = &H400&

上記追加し

'EnableMenuItem hSysMenu, SC_CLOSE, MF_BYCOMMAND Or MF_DISABLED
DeleteMenu hSysMenu, SC_CLOSE, MF_BYCOMMAND
DeleteMenu hSysMenu, 5&, MF_BYPOSITION

...ではないでしょうか。

PublicスコープではなくてFormモジュールのPrivateで完結させたほうが良いような気もしますが。
また、[Alt]+[F4]キーでの終了にも対応させるなら下記も必要ではないでしょうか。

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

#と、以前紹介したリンク先に書いてありましたね。
#参考情報はよく読み、理解された上でお使いになられたほうが良いですよ。

こんにちは。
http://hanatyan.sakura.ne.jp/vbhlp/ibe_peke.htm
こちら参考にされると良いですね。

Public Declare Function DeleteMenu Lib "user32" ( _
                  ByVal hMenu As Long, _
                  ByVal nPosition As Long, _
                  ByVal wFlags As Long) As Long

Public Const MF_BYPOSITION = &H400&

上記追加し

'EnableMenuItem hSysMenu, SC_CLOSE, MF_BYCOMMAND Or MF_DISABLED
DeleteMenu hSysMe...続きを読む

Q多肉植物の育て方

最近、多肉植物に興味を持って、いくつか苗を購入しました。
虹の玉、レズリー、月兎耳、白牡丹、熊童子を買ったのですが、育て方でよくわからないことがあるので教えてください。

まず、置き場所なんですが、本当は室内に置きたいんですが、日光がたくさん必要だと書いてあったので、朝から夕方までは南側の庭に出して、夕方になったら部屋に戻したいと思っているのですが、毎日植物を動かすのはよくないでしょうか?小さな鉢に入れているので、出し入れは問題ないのですが、植物は今いる場所に適応しようとするから、あまり動かすのはよくないと聞いて困っています。

外で育てるのが一番だとは思いますが、どうしても部屋に飾りたいので、日が沈んだ後だけでも室内に置きたいのですが、そういう育て方をしている方はいらっしゃるでしょうか?

あと、植え込み後のお水は、植え込み後すぐにあげたほうがいいのでしょうか?調べてみたところ、少しあげたほうがいいという意見と、植え込み時は乾いた状態で、1週間後くらいにあげたほうがいいという意見があり、どっちにすればいいのかわかりません。今日植え込みをして、念のためまだお水はあげてない乾いた状態にしています。多肉植物は初めてなので、いろいろ戸惑っていますが、長くきれいに育てたいので、詳しい方、育てているかたのアドバイスをお願いします。


長文、読んでいただいてありがとうございました。

最近、多肉植物に興味を持って、いくつか苗を購入しました。
虹の玉、レズリー、月兎耳、白牡丹、熊童子を買ったのですが、育て方でよくわからないことがあるので教えてください。

まず、置き場所なんですが、本当は室内に置きたいんですが、日光がたくさん必要だと書いてあったので、朝から夕方までは南側の庭に出して、夕方になったら部屋に戻したいと思っているのですが、毎日植物を動かすのはよくないでしょうか?小さな鉢に入れているので、出し入れは問題ないのですが、植物は今いる場所に適応しようとする...続きを読む

Aベストアンサー

日暮れ後、室内に取り込むのは悪くないですよ。
多肉植物は結露すると葉が腐ってくるので、寒い時期は室内に取り込む方が無難ですし。

ちなみに私はカフェカーテンをつけた出窓(室内側)に置いています。カーテンの下側から直射日光を浴びて元気に育ってます。結露する頃には夕方少し室内側に移動させるだけなので楽させてもらってます。

あと購入は苗の形なんですよね。苗の形になっているものは土が乾いていれば水あげて大丈夫です。
挿し芽をして増やす時はすぐ水をあげると腐ってしまう場合があるので、しばらく水をあげない方が良いですよ。

多肉植物は多少育てるのに失敗しても挿し芽で何回も復活してくれるし、姿が乱れたら仕立て直しも簡単なので安心して育てて下さい。ずぼらな私でも何年も育てられているので大丈夫です。

QExcelVBA:フォームの最小化ボタンを表示し、閉じるボタン「×」を消す方法

似たような質問をしたのですが、参考URLを元に自分で試してみたのですが、思うようにいかず、理解ができなかったので改めて質問します。
Excelのプログラムで右上にある閉じるボタン「×」を消して、なおかつ最小化ボタンを表示させるにはどのようにしたらよいのでしょうか?
解説付きでよろしくお願いします。

回答よろしくお願いします。

Aベストアンサー

タイトルバーで右クリックした場合などは閉じるボタンが有効化されるようです
これを捕捉するとなるとWM_NCLBUTONDOWNメッセージなどを処理する事になりそうです ・・・

Qサイネリアの育て方

こんにちは。サイネリアを育てるのですが、サイネリアの育て方がわかりません。育て方や育てるコツを教えてくださいお願いします。

Aベストアンサー

サイネリア(シネラリア)の育て方については下記サイトに詳しく載っていますのでご覧下さい。

参考URL:http://www42.tok2.com/home/kengei/shi_00011g.htm

Qボタンクリック時の動作について質問があります。 ボタンが押された時にwebブラウザを別で表示する場合

ボタンクリック時の動作について質問があります。



ボタンが押された時にwebブラウザを別で表示する場合のプログラムはどののようになりますか?

Aベストアンサー

どの環境のプログラムの ボタンなのか??

概略は
Object を作成して
Set IE = CreateObject("internetExplorer.application")

url = "http://****"

With IE
' With IE
.navigate url
.Visible = True
な感じ・・・

Qトリカブトの育て方

山登りに行った時に、トリカブトを見ました。
とても美しく綺麗だったので、育ててみたくなり
トリカブトの種子を購入しました。

購入したのはいいのですが、肝心な育て方がわかりません。
ネットで検索したり、お花に詳しいお友達に聞いたりしても
種子からの育て方がわからないのです。

トリカブト自体を育てるのは始めてなので
詳しい育て方が知りたいと思っています。

トリカブトの育て方に詳しい方がおりましたら
よろしくご回答お願い致します。

Aベストアンサー

育てたことはありませんが手元にある「山野草の育て方&楽しみ方事典」によれば、
・種まきは2月から3月初旬、半日陰で
・用土は赤玉土4に軽石4、腐葉土2を混ぜる
・鉢は中鉢の4-6号
・水やりは芽出しの頃は多めに
・水を好むので夏は腰水で育てる
・置き場所は芽出しから休眠までは木漏れ陽が当たる半日陰
・増殖は活発で3月中旬から4月中旬に塊根を分けて殖やす
・肥料は3月中旬から4月中旬に有機性の固形肥料を与える
・根は猛毒なので手袋をはめ、作業後すぐに手を洗う
・1-2年ごとに植え替える
・露地栽培するなら半日陰で、身近への植栽は避ける
・12月下旬から2月までは休眠する
・休眠期にも土が乾いていたら水は忘れずに与える

育て方はやさしいそうです。

Qフォームを閉じる方法

VB2005 Expressにて開発を行っております。

ログインフォーム、メニューフォーム、各フォームと複数フォームを使用
するアプリを作成中です。
そこで質問させて下さい。呼び出し元フォームを閉じてから呼び出し先
フォームを開くとするにはどのように行ったらいいのでしょうか。

下記が作成中のPGMですが、「Form1からForm2を表示」「Form2からForm1を表示」は正常に動作しますが、再度「Form1からForm2を表示」を行うと
破棄されたオブジェクトにアクセスできません。
オブジェクト名 'Form2' です。
が表示されて「f2.Show()」でエラーになってしまいます。

どなたかご存知の方がいらっしゃいましたらご教授下さい。
よろしくお願いします。

'標準モジュールで下記を宣言
Public f1 As New Form1 'ログイン画面
Public f2 As New Form2 'メニュー画面
Public f3 As New Form3 'メニュー1
Public f4 As New Form4 'メニュー2

'Form1からForm2を表示
F_Form2.StartPosition = FormStartPosition.CenterScreen
F_Form2.Show()
Me.Close()


'Form2を閉じてForm1を表示
F_Form1.StartPosition = FormStartPosition.CenterScreen
F_Form1.Show()
Me.Close()

VB2005 Expressにて開発を行っております。

ログインフォーム、メニューフォーム、各フォームと複数フォームを使用
するアプリを作成中です。
そこで質問させて下さい。呼び出し元フォームを閉じてから呼び出し先
フォームを開くとするにはどのように行ったらいいのでしょうか。

下記が作成中のPGMですが、「Form1からForm2を表示」「Form2からForm1を表示」は正常に動作しますが、再度「Form1からForm2を表示」を行うと
破棄されたオブジェクトにアクセスできません。
オブジェクト名 'Form2' です。
...続きを読む

Aベストアンサー

フォームは閉じられると「破棄」されます。

そして、スタートフォームが閉じられるか、最後のフォームが閉じられると、アプリケーションが終了します(どちらでアプリ終了するかは、プロジェクトのオプション設定に拠る)

質問者さんは「フォームを移動するたびに、そのフォームだけ見せておきたい」と言う処理をしたいのですから「一旦、移動元のフォームを見えなくして、あとで見えなくなったフォームに戻って来る必要」がありますので、Close()メソッドだけでは処理出来ません。

何故なら「Close()すると破棄されてしまうので、もう戻れなくなる」からです。

Close()を使わず、Hideを使って下さい。
Me.Close()⇒Me.Hide

なお、Hideされて隠れたフォームが残ったまま、見えているフォームが[X]ボタン等で終了させられた場合、隠れたフォームを再表示できず閉じれなくなり、見えないフォームが残る場合があります。

その場合、アプリ終了条件が「最後のフォームが閉じらた時」だったり、見えずに残ったフォームがスタートフォームで、かつ、アプリ終了条件が「スタートフォームが閉じらた時」だった場合、そのアプリを終了させる事が出来なくなります。

Hideを使用する場合は「Hideされて見えなくなったフォームが取り残されて、アプリ終了が出来なくなる」と言う事が無いように「どれか1つのフォームが[X]ボタン等で閉じられそうになったら、閉じられる際に呼ばれるイベントプロシージャを利用して閉じられる事を検知し、他のすべてのフォームを明示的にClose()して、すべてのフォームを閉じてアプリを終了させる」などの処理が必要です。

フォームは閉じられると「破棄」されます。

そして、スタートフォームが閉じられるか、最後のフォームが閉じられると、アプリケーションが終了します(どちらでアプリ終了するかは、プロジェクトのオプション設定に拠る)

質問者さんは「フォームを移動するたびに、そのフォームだけ見せておきたい」と言う処理をしたいのですから「一旦、移動元のフォームを見えなくして、あとで見えなくなったフォームに戻って来る必要」がありますので、Close()メソッドだけでは処理出来ません。

何故なら「Close()す...続きを読む

Qプレゼントで頂いた観葉植物が枯れてしまいそうです。頂いたものなので名前と育て方が分からず葉が落ち始め

プレゼントで頂いた観葉植物が枯れてしまいそうです。頂いたものなので名前と育て方が分からず葉が落ち始めています。この植物の育て方と名前をご存知の方、助言ください。

Aベストアンサー

サンスベリアの仲間だと思います。結論から言うと枯れる心配はないと思います。

枯れ落ちた葉は葉っぱの新陳代謝で落ちただけで、言うならば葉の寿命を全うしただけです。観葉植物は大きく成長するために古い葉を落として新しい葉を生やします。最近暖かくなってきたので、新しい葉を生やすために古い葉を落とし始めたのだと思いますよ。
写真に写ってる他の葉は元気に見えますので、木の本体はまだまだ元気だと思われます。

育て方ですが、原産地が乾燥地帯なので乾燥に強い種です。寒い時期は水を全くやらなくても良いくらいです。これからの時期は、土の表面が乾いたらたっぷりと水をやり、土が乾くまでは何日も放置でOKです。枯らしてしまう最も多いパターンは水のやり過ぎによる根腐れですので、毎日水をやる必要は全然ありません。窓際に置かれてるようですので日当たりは十分だと思います。

サンスベリアの育て方:
http://sodatekata.net/flowers/page/150.html

Q「VBでExcel上PictureBoxダブルクリックイベントを取得したい」について

「VBでExcel上PictureBoxダブルクリックイベントを取得したい」
http://oshiete1.goo.ne.jp/kotaeru.php3?q=203163
について思ったことがありまして、ここに書かせていただきます。
この質問にはTodo36さんが答えられました。
Chika-Fさんの望む処理と違うようなので、サブクラス化の案をTodo36さんは述べられて、σ( ̄ー ̄ ボクに託してくださいました。
僕も全く同じ処理を考えていましたのですが、実現不可能でした。
そんな時に出張にいく事になり、結末が気になりながらも、自分なりに考えながら出張にでました。
そこでWith Eventを考えたのですが、エクセルアプリ・ブック・シートなどのイベントは拾えたのですが、シート内に存在するピクチャボックスのエベントは拾う事ができませんでした。
どうしてもエクセルにコードを書かないとできませんでした。

どのようにしたらそのイベントが拾えるのかが極めて知りたいです。
サンプルを載せてくれませんでしょうか?
よろしくお願いします。

「VBでExcel上PictureBoxダブルクリックイベントを取得したい」
http://oshiete1.goo.ne.jp/kotaeru.php3?q=203163
について思ったことがありまして、ここに書かせていただきます。
この質問にはTodo36さんが答えられました。
Chika-Fさんの望む処理と違うようなので、サブクラス化の案をTodo36さんは述べられて、σ( ̄ー ̄ ボクに託してくださいました。
僕も全く同じ処理を考えていましたのですが、実現不可能でした。
そんな時に出張にいく事になり、結末が気になりながらも、自分なりに考えながら出張に...続きを読む

Aベストアンサー

TAGOSAKU7さん、こんにちは。

サンプルをUPします。参考になると良いのですが・・・

私も質問があります。
サンプルREMARK部分でエラーになります。
質問を投稿してありますが良回答を
得られずに困っています。
ご存知でしたら教えて下さい。

【サンプル準備】
標準フォームを1つ作成
同フォームにボタンを2つ作成
TESTという名前でExcelブックを作成
同Excelシートに「Image1」という名前でPictureBox(イメージ)を1つ作成
同ブックをアプリケーションと同フォルダーに保存
参照設定に気を付けて下さい。

【サンプル】
Option Explicit

Private WithEvents XLApp As Excel.Application
Private WithEvents XLBook As Excel.Workbook
Private WithEvents XLSheet As Excel.Worksheet
Private WithEvents XLImage As MSForms.Image
'--------------------------------------------------
'Excel起動
'--------------------------------------------------
Private Sub Command1_Click()

'AppObjectセット
Set XLApp = CreateObject("Excel.Application")
'Excel起動
XLApp.Workbooks.Open FileName:=App.Path & "\TEST.xls"
'WorkBookObjectセット
Set XLBook = XLApp.ActiveWorkbook
'WorkSheetObjectセット
Set XLSheet = XLBook.Sheets(1)
'PictureObjectセット
Set XLImage = XLSheet.OLEObjects("Image1").object
'Excel表示
XLApp.Visible = True
'フォーム非表示(2重起動防止)
Me.Visible = False

End Sub
'--------------------------------------------------
'アプリケーション終了
'--------------------------------------------------
Private Sub Command2_Click()

Unload Me
End

End Sub
'--------------------------------------------------
'ExcelBookクローズ時処理
'--------------------------------------------------
Private Sub XLApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)

'終了時に保存メッセージを表示させない
XLApp.DisplayAlerts = False
'ExcelApp終了
XLApp.Quit
'変数解放
Set XLImage = Nothing
Set XLSheet = Nothing
Set XLBook = Nothing
Set XLApp = Nothing
'フォーム表示
Me.Visible = True

End Sub
'--------------------------------------------------
'ExcelImageダブルクリック時処理
'--------------------------------------------------
Private Sub XLImage_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim OpenRet As Variant
'確認メッセージ
XLApp.Visible = False
MsgBox ("Get PictureBox Event")
XLApp.Visible = True

'-----------------------------------------------------------
'---私も質問したい箇所です。最初はREM(')して下さい
'--.Pictureでオートメーションエラーが出ます。
'--解決法がありましたら教えて下さい。
' OpenRet = Application.GetOpenFilename _
' ("BMP,*.BMP,JPEG,*.JPG,GIF,*.GIF", , "画像選択")
' If OpenRet = False Then Exit Sub
' With XLImage
' .AutoLoad = True
' .AutoSize = False
' .PictureSizeMode = fmPictureSizeModeZoom
' .PictureAlignment = fmPictureAlignmentCenter
' .Picture = LoadPicture(OpenRet)
' End With
' SavePicture XLImage.Picture, App.Path & "\TmpPict.JPg"
'-----------------------------------------------------------

End Sub

TAGOSAKU7さん、こんにちは。

サンプルをUPします。参考になると良いのですが・・・

私も質問があります。
サンプルREMARK部分でエラーになります。
質問を投稿してありますが良回答を
得られずに困っています。
ご存知でしたら教えて下さい。

【サンプル準備】
標準フォームを1つ作成
同フォームにボタンを2つ作成
TESTという名前でExcelブックを作成
同Excelシートに「Image1」という名前でPictureBox(イメージ)を1つ作成
同ブックをアプリケーションと同フォルダーに保存
参照設定に...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報