- ベストアンサー
VBAでのユーザーフォームについて。
初めまして。 今VBAのユーザーフォームでアンケートっぽいものつくってます。 最終的に結果ページをユーザーフォームにて表示させるのですが、 その結果ページのユーザーフォームを画像として保存したいのですが 方法がさっぱりわかりません。 (PrtScを押せばできるのですが処理で行いたいのです。。。) 以上よろしくお願いします。
- bitsu
- お礼率90% (47/52)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
スクリーンキャプチャなら keybd_event などの Win32API を 使って [Alt]+[PrintScreen] を送信するとか。 でも、これってクリップボードにキャプチャ画像が転送される だけなので、それをファイルとして書き出す部分の方が厄介 ですね・・・ PrintScreen キーのシミュレートではなく、直接ウインドウ キャプチャを取るのであれば、Visual Basic の記事ですが、 ここが参考になると思います。 [画面、フォーム、ウィンドウを取り込んで印刷する方法] http://support.microsoft.com/default.aspx?scid=kb;ja;161299
関連するQ&A
- Excel VBA ユーザーフォームについてs
ExcelVBAでユーザフォームを作成していますが行き詰まっています。 お助け下さい m(__)m VBAの処理内容を新Sheetへ保存し、 その内容をユーザフォームへWorkSheetとして表示させて エンドユーザに直接編集してもらおうと思っています。 ユーザフォームの『コントロールの追加』で「Microsoft Office Spreadsheet XX.X」を追加して 空のWorkSheetを追加することは出来たのですが、 このWorkSheetを空でなく前出の処理内容を反映したSheetにすることは出来るでしょうか? VBA処理 ⇒ 結果反映WorkSheet(1)作成 ↓ ユーザフォーム表示 : (1)を表示したい よろしくお願いします。
- ベストアンサー
- Windows系OS
- VBA ユーザーフォームを速く開く方法について
VBA ユーザーフォームを速く開く方法について 現在Excel2000を使用しています。 VBAにてユーザーフォーム1と2を作成して、ユーザーフォーム1のコマンドボタンを押すと userform2.showが実行されてユーザーフォーム2が開きますが、フォーム2にはテキスト ボックスなどが約400個程設置してあり、そのせいかフォーム2が開くのに約8~10秒程かかり ます。 そこでそのフォームを速く開きたいのですが、(1秒~2秒程で)どうしたら速く開くでしょうか? Application.DisplayFullScreen = Falseなどを使用しても余り効果がありません。 パソコン自体の処理速度もあると思いますが、できるだけ速くしたいです。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- VBAでユーザーフォームを再表示させたい。
ExcelのVBAでユーザーフォームを作成し、 Initializeイベントで初期化をし、コマンドボタンを クリックしたら処理を行うように作成しました。 ところがコマンドボタンによって処理を行った後、 再度Initializeイベントを呼びたいんです。。 (コンボボックスの表示を更新する処理を 含んでいるため) なんとかうまい方法はないでしょうか??
- ベストアンサー
- オフィス系ソフト
- ユーザーフォームの呼び出し元
ユーザーフォーム1で処理のボタンを押すと、パスワードの入力フォーム(ユーザーフォーム3)が表示されます。 ユーザーフォーム2でも処理のボタンを押すと、パスワードの入力フォーム(ユーザーフォーム3)が表示されます。 このようにパスワードの入力フォーム(ユーザーフォーム3)が共用の場合に、パスワードの入力結果を呼び出し元のユーザーフォームに帰したいのですが、 ユーザーフォーム1、2のどちらから呼び出されたのか、呼び出し元を識別する方法をアドバイス下さい。
- ベストアンサー
- Visual Basic
- VBAのユーザーフォームの使い方
皆様、こんにちは。 VBAのユーザーフォームを習い始めた初心者です。本の説明を読んでもユーザーフォームの使い方がよく分かりません。例えば、あるセールをクリックしたら、フォームが表示される、そしてフォームの中にあるコンボボックスのリストの中から選ばれた値が最初に選択したセールに入力されるという使い方がありえますか?申し可能でしたら、コード作成の例をいただけないでしょうか? どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- VBA ユーザーフォームを使って
簡素化して書きますがエクセルシートのA1からZ100までデータがあります。(行は増え続けます) A1からZ1までの1行のデータをまとめて1画面に表示したくてユーザーフォームで作ってみました。(ラベル使用) ユーザーフォーム上で「次へ」ボタンを作成し、それをクリックすると次は A2からZ2までを表示させたいのですがやりかたがわかりません。 (また、「戻る」ボタンを作成し、それをクリックすると1行上へ戻るようにしたいです) VBAは初心者もいいところでネットで調べまくってやっています。 が、なかなか思うような結果にならずみなさんのお力をお貸しいただきたいと思います。 実際のデータは色々複雑なのでソースをあえて載せていませんのでご了承ください。 こういうやり方があるよって事を教えて頂けたらと思います。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- VBA ユーザーフォームを閉じる時にイベント
VBAでユーザーフォームを閉じるときに名前を付けて保存しブックを閉じるようにしたいのですが、 ユーザーフォームを閉じるときのイベントの起こし方がよく分かりません。 また名前を付けて保存しブックを閉じるのはこれでよろしいでしょうか? Application.Dialogs(xlDialogSaveAs).Show ActiveWorkbook.close
- ベストアンサー
- その他MS Office製品
- VBA ユーザフォームを非アクティブ固定にしたい
エクセルVBAで作成されたプログラムで、一点改善したい点があります。 処理の開始を命令すると、ユーザフォームが出てきて進捗が「5/100が完了しました」のように 分かるようになっているんですが、処理が進み、この「5/100」の部分が更新される度に フォーカスがユーザフォームに移ってしまい、他の作業をしていると大変不便です。 ユーザフォームまわりのコードは以下のようになっています。 UserForm11.Show UserForm11.Label2.Caption = "処理実行中です。" & "(" & cnt1 & "/" & cnt2 & ")" 進捗を確認しつつ、かつフォーカスしないようにするようなコードはありませんでしょうか。
- ベストアンサー
- Visual Basic
- VBAユーザーフォーム
VBA初心者です。ユーザーフォームを作成しシート上に一覧表示をできるように作成しました。(本を見ながらとこちらで質問等させて頂きやっとできました) なので、次にsheet1に一覧表示を作成しているので、sheet2に個別表示の仕方はどうしたらよいか教えて頂きたいです。一人の人の情報量が多く、一人分の資料もほしいのですが・・ユーザーフォームから入力後に一覧と個別とにするのはどうすれば初心者でもできますか? 質問も下手なのでわかりにくいかもしれませんが、教えて頂けたらと思います。
- ベストアンサー
- Visual Basic
- VBAユーザーフォームの色が反映しない
またぞろVBAよろしくお願いします。 今回はユーザーフォームを作りマクロを走らせている間『処理中』の表示をさせるようにしています。 そこでユーザーフォームのBackColorをパレットより選んで黄色とかにしているのですが、いざマクロ実行してみると色はグレー色のままだし、ラベルも反映していないのでコメントも出ないフォームが画面上に出ます。 でも、Captionでのコメントは反映して切り替わっています、フォーム自体の大きさも変更すると反映しています。 同じエクセルブックにもう一つユーザーフォームはつけていますがそちらはバッチリとデザインしたフォームで表示されます。 このフォームとの相違点はマクロ実行させる時に表示させているシートが違うぐらいなのですが、そういたっものも関係あるんですかね? 何処を修正したらよいのか、何故今回は反映してくれないのかホトホト困っておりますのでなにかアドバイスあればお願いします。
- 締切済み
- オフィス系ソフト
お礼
返答遅くなりすみません。 ご回答ありがとうございます! ばっちりできました! またよろしくお願いします。