- 締切済み
エクセルの任意のシートをフォームに表示したい。
いつも参考にさせていただいています。 宜しくお願いします。 Access2002,Excel2002でタイトルのようなことを 実現しようと思ってます。 現在やっていることは、 フォームに「非連結オブジェクトフレーム」を用意して エクセルファイルを表示させているのですが 任意のシートを表示させたいと思っています。 手動で任意のシートをアクティブにしてフォームを再表示すると アクティブなシートがオブジェクトに表示されるのですが、、 VBAの操作によりシートをアクティブにする ことは可能でしょうか。 なにかお気づきの方が居られましたら ご教授宜しくお願いします。
- takatoo
- お礼率64% (50/78)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
以前にここの掲示板でOLEのサンプルを作って、同様な状況に陥ったことがあります。 そこのURLを載せておきます。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=171840 No.7の発言が参考になるかも? 今OfficeもVBもインストールしてない環境なので、未検証ですが、 「OLEオブジェクト.Refresh」 で更新しないのであれば、 毎回EXCELを非表示で開き、表示したいシートを選択状態で保存終了させ、OLEに埋め込むという方法がありますが・・・面倒ですよね・・・ 現在のページを選択している周辺のソースと、最初からEXCELは埋め込みじゃなくてもよいのかを知りたいです。
関連するQ&A
- Accessのフォーム上にエクセルのシートを表示させたい!
いつもお世話になっています。宜しくお願いします。 現在Access2002、Excel2002をつかってタイトルのようなことを実現したいと 思っています。 現在やっていることは、 エクセルファイルはあらかじめ作成しておき、それをフォームにサブフォームの ような形で表示しようと思っています。 しかしそのときに使うフォーム上のオブジェクトが分からず行き詰っています。 アクセスから エクセルファイルのオープン、シートの参照、セルの参照は アプリケーションオブジェクトを作ることで可能になったのですが、 フォーム上に表示する部分ができないのです。 基本的なことが理解できていないのかもしれませんが お気づきの方が居られましたら ご教授、宜しくお願いします。
- ベストアンサー
- Visual Basic
- ExcelのシートをAccessで表示したい
WindowsXPでAccess2002とExcel2002を使用しています。 AccessのフォームとレポートでExcelのシート内容を表示させたいと思いますが、OLEオブジェクトでそのまま挿入すると容量が大きくなりすぎます。そこで、過去の質問NO.605269のように、テーブルにExcelファイルのフルパスを格納するフィールドを1つ設け、そのパスをオブジェクトフレームコントロールのSourceDocプロパティに代入したのですが、うまくいきません。 連結オブジェクトフレームでは「OLEオブジェクトは空です」とメッセージが出てコントロールには何も表示されません。非連結オブジェクトフレームではどのレコードにも、最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。 どうすればいいのか、アドバイスをお願いします。
- ベストアンサー
- オフィス系ソフト
- フォーム上に画像表示したい
お世話になります。 Access2010 テーブルに「画像」というフィールドがあり、データ型は「添付ファイル」です。 ※それぞれのレコードでファイルは指定済み。 ID 名前 電話番号 画像 1 AAA 090- 📎 2 BBB 090- 📎 3 CCC 090- 📎 フォームにリストボックスがあり、ID、名前、電話番号を表示しているの ですが、例えば、ID1が選択されたときに、それに該当する画像をフォーム上 に表示させたいところです。 どのようにすれば表示させることが可能でしょうか。 VBAで選択されたIDを取得して・・・ってやらなければいけないのか、 表示させるのに「連結オブジェクトフレーム」「非連結オブジェクトフレーム」 「イメージ」のどれを使うことになるのか。。いろいろやり方はあると 思うのですが、その辺がモヤモヤしていてよく分かりません。 ご教示の程、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- アクセスで任意のフォームを前面に
アクセス2000(WindowsXP)ですが、複数開いているフォームで任意のフォームを最前面にするには方法がありますか。閉じて開く操作をせずに実現できる方法はありませんか。ご存じの方があればよろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- EXCELで条件に合わない行を削除して詰めて新しいシートに表示したいのですが
A B C D 1 任意 任意 合格 2 任意 任意 FALSE 3 任意 任意 合格 4 任意 任意 FALSE PC2台ありますのでEXCEL2003か2007が操作環境です. 上記のようなシートがあった場合に(Dにはif関数が入力されています)別のシートにFALSEの行のみ削除して1行目から詰めて表示させたいのですが,それってどうやったらいいのでしょうか?if関数使うとしても詰めるのはできそうにないし・・・VBAですか?どうしてもわかりませんでしたので教えていただきたいです.よろしくお願いいたします.
- ベストアンサー
- オフィス系ソフト
- 【VBA】ワークシート上に画像ファイルを表示する
勉強として、LoadPicture関数を使って、 画像表示をするプログラムを作っております。 今、ワークシート上にImageオブジェクトを作って そこに画面表示されるようにしたいと思っております。 ※ユーザフォームで、Imageオブジェクトを作って 表示することはできます。 今、ワークシート上にImageオブジェクトをどう作るのかが わからず、それについて教えていただきたく掲示致しました。 ※下記サイトに記載されている、ワークシート上にImageオブジェクトを どう配置すればいいのかが、関心を持っております。 http://mugicyan.gooside.com/excel/vba_times/lesson_02_01.html
- 締切済み
- その他MS Office製品
- EXCEL VBA 保護したシートを読込みしたい
お世話になります。 EXCEL VBAで「データ」というシートあります。ここの100件ほどのデータが入っており、もう1つの「集計」というシートにフォームを作成してそのフォームからVBAを使って集計するのですが、この「データ」シートはユーザーにいじられたくないので保護もしくは非表示にしたいと思っています。 しかし「データ」シートを保護してしまうとVBAで「データ」シート読み込む際にエラーになってしまいます。 何かよい方法はありますでしょうか? 環境 WindowsXP SP3 Excel2003
- ベストアンサー
- その他MS Office製品
- アクセスのフォーム エクセルのシートをはめ込む
アクセスのフォームに一つのコントロールとして、エクセルのワークシートの画面をはめ込むことは可能でしょうか? 追加・編集できなくてもハードコピーみたいでいいから、指定したエクセルファイルの指定したシートをアクセスのフォームに表示することはできますか?
- 締切済み
- オフィス系ソフト
- テキストボックスの値をExcelシートに反映
ユーザーフォームのテキストボックス2個の値がExcelシート1の値にマッチしたらそのシート1の値が任意の値に変換される。VBA初心者ですご教授のほどよろしくお願いします。
- ベストアンサー
- Visual Basic
- ExcelVBA フォーム表示中にワークシートの更新
お世話になります。 プロパティがあったかどうかが探せなくての質問です。 ユーザフォーム表示中に、Excelブック(ワークシート)の操作ができるようにしたいのですが、そういったプロパティ?コントロールはどこでしたらいいのでしょうか? ご存知の方、教えてください。 Excel2000
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございます。 週末はパソコンに触っていなかったので、今朝見させていただきました。 今朝から、TAGOSAKU7さんに教えていただいたのをもとに 試してみたのですが、Accessでは、「OLEオブジェクト.Refresh」という形を サポートしていない(メソッドをサポートしていない)ようなので、 「Me.Refresh」などとしてみたのですが、どうもうまくいきません。 「ワークシート.Activate」で任意のシートをアクティブにするところまでは できており、VBAでアクティブにした後、手動でフォームを一度デザインビューにし、 そのあともう一度手動でフォームビューにするとアクティブになっているシートが OLEオブジェクトに表示されるのですが、VBAのみでの制御は現段階ではできておらず、 詰まっているとことです。 「ワークブック.Save」で保存処理も行っているのですが2回目以降保存しようとすると、「上書きしますか?」と メッセージが表示されてしまっています。 教えていただいたことをもとに、もう少しがんばってみます。