重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になります。
Excel2013を使用しています。

Aというブックのユーザーフォームを起動したら
Bというブックのシート1をユーザーフォームに表示させたいです。
スプレッドシートでは2007以降はないようでしたので、ブラウザで

Private Sub UserForm_Initialize()
Workbooks.Open ThisWorkbook.Path & "\B.xls"
With WebBrowser1
.Navigate2 ThisWorkbook.Path & "\B.xls"
End With
End Sub

これで試しましたがユーザーフォームには何も表示されませんでした。
ご教示よろしくお願い致します。

A 回答 (1件)

2013ではなくて2010で試してみたのですみませんが、以下のようにしたら、一応、xlsxがユーザーフォーム上のWebブラウザコントロールの中で見れました。



(01)https://support.microsoft.com/ja-jp/help/982995/ …
の、「自分で解決する」のところの内容で、「reg」拡張子のファイルを作成
(好きな名前のテキストファイルに内容をコピペして、reg拡張子に変えるだけです。

(02)それをダブルクリックして実行

(03)IEを開いて、目的のxlsxファイルをその中にドラッグします

(04)開くか保存するかを聞かれるので、開く、を押すと、IEの中でxlsxが見えて、データの操作もできます。

(05)その状態になったら、ExcelのほうのWebブラウザコントロールの中でもxlsxファイルが見れるようです。

(06)イベントプロシージャを以下のようにしてみます。

Private Sub UserForm_Initialize()
 WebBrowser1.Navigate2 ThisWorkbook.Path & "\B.xls"
End Sub

※事前に開かなくても良いようです。

(07)ユーザーフォームを開くと、xlsxファイルを開くか保存するかなどのダイアログが出ますので、「開く」を押します。

(08)Excelファイルが子ウィンドウとしていったん開き、自動的に非表示になり、ユーザーフォームのWebブラウザコントロールの中に内容が表示されます。

※2013だと、子ウィンドウが無いので、別ウィンドウでいったんひらき、それが非表示になってしまうかもしれませんね。


==========

ひとまず、こんな感じで開きましたが、実用に足るかどうかはちょっと微妙です。
そもそも、データや式の入力ができませんでした。
セルのコピペはできましたが・・・

(※2013以降は子ウィンドウが廃止されましたから、Excelウィンドウが2つ開いてしまうかもしれませんし、ユーザーフォーム上で逐一上書き保存しないと、閉じるときに保存を求められます。また、そのとき、非表示になったExcelウィンドウが残るだけになるかもしれません。あまり、正常な挙動ではありませんでした。)


xlsxではなくxlsでも同様の動きでした。

VNWareのWin2000で、Excel2000を使って、スプレッドシートコントロールを配置してテストもしてみましたが、別ブックのシートを表示する方法がわかりませんでした・・・。
Webブラウザコントロールでの挙動は、多少はよかったですが、データや式が入力できないのは同じでした・・・。

私の検索不足で、もっといい方法があるかもしれません。
    • good
    • 0
この回答へのお礼

ありがとう

遅くなって申し訳ありません。
ありがとうございました。

お礼日時:2019/06/24 00:33

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

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


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