ユーザーフォームから別Excelファイルを読み込み表示

このQ&Aのポイント
  • Excelで作成したユーザーフォームから別のExcelファイルを読み込み表示する方法について知りたいです。
  • サンプルのExcelファイルには商品名、商品番号、在庫数、価格などが入力されています。別のExcelファイルで作成したユーザーフォームを開くと、ユーザーフォームが表示され、データを検索できる状態になります。その後、サンプルのExcelファイルからデータを検索してユーザーフォームに表示したいのですが、Excelでこんなことができるのでしょうか?
  • 部署ごとに更新される頻繁なExcelファイルでユーザーフォームを使用することはできません。そのため、別のExcelファイルで作成したユーザーフォームからデータを検索して表示したいのですが、可能でしょうか?
回答を見る
  • ベストアンサー

ユーザーフォームから別Excelファイルを読み込み表示

商品名、商品番号、在庫数、価格等が入力されているExcelファイルがあります。 例)sample.xls 上記ファイルとは別にExcelでユーザーフォームを作成します。 例)Search.xls Search.xlsを開いた時、自動的にユーザーフォームが表示され、 データを検索できる状態にします。 その後、sample.xlsからデータを検索し、ユーザーフォームに表示したいのですが、 こういったことをExcelで行うことは可能でしょうか? sample.xlsを別の部署で作成しており、頻繁に更新され、かつ セキュリティの関係からユーザーフォームをsample.xlsには 入れることができないとのことで、このようなことを考えた次第です。 ご存知の方がいらっしゃいましたら、アドバイスいただければと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>行うことは可能でしょうか? エキスパートであれば可能のことと思う。 しかし、自分のスキルの範囲内+アルファで可能のことを「可能」と言うのであって、できる人に丸投げでやり方を教えてくれというのは、虫が良すぎる。多分質問文の状況から(質問箇所が絞られて無いところから)質問者には現状では可能でない。 金を払って業者に頼む問題と思う。 そもそも出来るからといって、やることの可否はまた別。 独立分派的に各部署でデータファイルを覗かれることが、会社にとって如何に危ないことか、新聞などを読んでいれば判るでしょう。 ーー >セキュリティの関係から 手作業などでは検索は可能なのかな。 可能なら、マクロの記録を取れますか。 ーー >データを検索し 単一項目(例商品名)による検索程度でよいのかな ーー >Search.xlsを開いた時、自動的にユーザーフォームが表示され、 データを検索できる この辺はVBA中級程度の内容で、実例は市販本にも載っていると思う。 ThisWorkbookで Private Sub Workbook_Open() UserForm1.Show End Sub ーー ユーザーフォームで テキストボックス1つ、コマンドボタン1つ張り付け Private Sub CommandButton1_Click() MsgBox TextBox1.Text End Sub ーー ブックを開くとフォームが現れ、テキストボックスに条件語句を入れボタンクリックで条件語句が掴める。 ーー 検索 ファイル名は一定しているらしいから、そのsample.xlsを指定して、 ブックを開き(これが普通に許されるかどうか確かでない)、 その特定シートやデータの列行の構造は知っているのだから、検索すればよい。 普通に、ある列だけならFind検索で済むが、複数列に渉る条件検索などとなると実例も余り載ってなくて難しいです。 アクセスなどと違い。 ーー 自分の個人ファイル環境なら技術問題も少ないが セキュリティ ネットワーク下 などの問題で難しい点にぶっつかるかも。

au_W32S
質問者

お礼

お忙しい中ご返信いただきまして、ありがとうございます。 まず、こういったことが可能なのかどうかが不明なため こちらにてご質問させていただいた次第です。 技術があれば可能ということですね。 ご回答を参考に挑戦してみたいと思います。

関連するQ&A

  • エクセルのユーザーフォームの日付を和暦で表示したい

    いつもお世話になります。 エクセルのユーザーフォーム作成に初めて挑戦しております。 ワークシートに日付の元データがあり、ユーザフォームにテキストボックスを配置しその日付データを表示させています。(例:2006/8/3) やりたいことは、そのユーザーフォームにもうひとつ別のテキストボックスを作成し上記の日付データを和暦で自動的に表示させたいのです。(例:上記のテキストボックスが2006/8/3の場合、こちらのテキストボックスはH18.8.3と表示) 初心者ですが、よろしくお願いします。

  • エクセル ユーザーフォームの住所録

    エクセルVBAのユーザーフォームサンプルとして、住所録を見かけますが、 1.一方的に入力するだけでなく、既に入力したデータがあるかないかを検索し、ユーザーフォームに呼び出し、上書き、もしくは、新しいデータ(列)として追加することは可能でしょうか? 2.1.が無理な場合、入力したデータ側は触らずして、他に方法はないでしょうか?(エクセルにて) 3.2.が難しい場合、アクセスなら可能なのでしょうか? 住所録より少し複雑なデータ入力をユーザーフォームで作成しようと検討中です。宜しくお願いします。

  • Excel VBAのユーザーフォームについて

    Excel VBAでユーザーフォームを作成しています。 ユーザーフォームで出力したファイル 「出力ファイルA」 ユーザーフォームで使用するファイル 「ファイルB」 を、起動していると必ず「インデックスが範囲内にありません」 といった内容のエラーが表示されます。 ユーザーフォームで使用するファイルの表示中に そのようなエラー画面が出てきても仕方がないと思うのですが、 ユーザーフォームはマルチ画面を作成したので ファイルは「出力ファイルC」も出すことができる仕様です。 また、「出力ファイルA」「出力ファイルC」は コンボボックスで選択した西暦がファイルの先頭に付くので (例:2014_出力ファイルA.xls) 必ず同じファイル名が出力されるとは限りません。 なので、そのようなエラーが表示されないようにしたいのですが可能でしょうか? また、特別なコードは記述していないのですが、 なのでボタンとかコンボボックスのコードを書けばよいのか・・・という感じなのですが、 どのように対処すればよいかわかりません。 それと、出力したファイルの内容を確認するためにアクティブには、 ユーザーフォーム画面を終了させるしかならず、 そもそもそうゆう仕様なのかがわかりません。 ユーザーフォームを作成するのは初めてなので初心者丸出しで お恥ずかしい限りなのですが、 どなたかアドバイスいただけますと幸いです。 こんな抽象的ですが、どうお伝えすればよいのかがそもそもわからず困っていて、 それに時間もなく頭を抱えているので お手柔らかに願います。 よろしくお願い致します。

  • エクセルのユーザーフォームでVLOOKUPと同じ機能をするには?

    エクセルのユーザーフォームで、VLOOKUP関数と同じ機能を持たせるには、どうすればいいですか?マクロ初心者なので、わかりません。  そして、ユーザーフォームで検索したものを別のシートのセルに 反映させる方法も教えて下さい。よろしくお願いします。  たとえば、エクセルで住所、名前等の名簿から、ユーザーフォームで検索し、検索したデータを、年賀状はがき等の作成した様式に反映させるといった感じのもの何ですけど・・・。

  • Excel VBAで別のブックからユーザーフォームの閉じる

    Excel VBAで別のブックからユーザーフォームの閉じたいのですが うまくいきません。 教えてください。 Private Sub CommandButton2_Click() Application.Visible = False Unload Workbook.("材料リスクマップ検索Ver2.xls")UserForm3・・・・※ Workbooks.Close userform3:=ThisWorkbook.Path & "あああ.xls" Workbooks("\いいい.xls").Close savechanges:=False UserForm1.Show vbModeless End Sub ※印のところが赤字にかわります。 コマンドボタン2は、いいい.xlsにあり、フォームを閉じたいのはあああ.xlsのUserform3です。 その後、ファイル名いいい.xlsは閉じます。 コードが間違っているかと思いますが、どんな風にすればよいかわかりません。初歩的なこととは思いますがよろしくお願い致します。

  • Excel VBAでユーザーフォームだけ表示したい

    Excel VBAでユーザーフォームを作成し、ファイルを起動時にSheetを非表示にしてユーザーフォームのみ表示させるようにしました。 そうしたところ、 (1)実行ボタンをクリックすると作成されるExcelファイルも表示されなくなる (2)終了ボタンをクリックするとユーザーフォームを含むExcelファイルだけが閉じるのではなく、Excelのアプリ自体が終了してしまう(実行ボタンで作成したExcelファイルは表示したままにしたいのに閉じてしまう) という現象になってしまいました。 某書籍を参考にしてコードを書いたのですが、なぜかこのようになってしまいました。 ※「★」が書籍に指示があった箇所です。 <ThisWorkbook> Private Sub Workbook_Open() Application.Visible = False '★ myForm.Show '★ myForm.MultiPage1.Value = 0 'マルチページ構成のため End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '========== [×]ボタン,[Alt]+[F4]キーを無効にする ========== Dim msg As String, title As String msg = "[画面を閉じて終了する]ボタンから終了してください。" title = "終了方法" Dim res As Integer Select Case CloseMode Case vbFormControlMenu res = MsgBox(msg, vbOKOnly + vbCritical, title) Cancel = True End Select ActiveWorkbook.Save '★ Application.Visible = True '★ Application.Quit '★ End Sub 実行したいのは、 (1)ユーザーフォームを含むExcelファイルを起動したときは、起動時にユーザーフォームだけが表示されるようにしたい  ※ワークシートを非表示としたい (2)「実行」ボタンをクリックすると、プログラムが実行されExcelファイルが新規で作成され表示される  ※上記で記載した「★」の部分をコードをコメントアウトしてユーザーフォームから実行ボタンをクリックすると、プログラムが実行され正常にExcelファイルが新規で作成されることは確認済みです。 (3)ユーザーフォームが閉じても、ユーザーフォームのExcelファイルのみ閉じ、新規で作成されたExcelファイルは閉じない。  ※実行ボタンをクリックして新規ファイルを作成しなかったり、他にExcelファイルがなかった場合は、Excelは終了する。 それとあわせて、 (1)を実行できた場合に、再度コードを編集する時はどうしたらExcelの画面が表示できるのか教えて下さい。  ※それとも表示できないのでしょうか? 作成締め切りが迫っていて焦っています。 お知恵のある方どうかお力添え下さい。 よろしくお願い致します。

  • ExcelのVBで、別のExcelファイルを開いてactiveにするには

    ExcelのVBについての質問です。 「A.xlsのフォームでパラメータを入力し、その結果に応じて 別のExcelファイル(例えばB1.xls)を自動的に開く。 ユーザーは、B1.xlsに何か入力した後、B1.xlsを保存 終了する。 最初に戻って再びA.xlsのフォームに入力し... を繰り返す」 という作業を行いたいのです。 A.xlsでユーザーフォームをactiveにしたままだと、 B1.xlsを呼び出したときに、A.xlsのフォームがactiveで B1.xlsへ入力できません。(B1.xlsをActiveにしても A.xlsのユーザーフォームの方が優先されます) かと言って、A.xlsのフォームをhideしてから B1.xlsを呼び出すと、再びactiveにする際 B1.xlsを保存終了したことをA.xls側から検出する 必要があるのですが、この方法がわかりません。 何かよい方法はないでしょうか

  • ユーザーフォームでの検索結果を別シートに転記

    ユーザーフォームでの検索結果を別シートに転記して印刷したいのですが・・・ このようなイメージです↓↓ ・データファイルがあります    A    B    C    D 1 0001 みかん  3     300 2 0002 とうふ 1     500 3 0003 チョコ   2     100 4 0004 いか    10     300 ・データファイルとは別のファイルでユーザーフォームを表示します。 番号入力欄 ----- 印刷ボタン ・ユーザーフォームで番号が入力され、「印刷」が押された時に、 入力されたのと同じ番号をデータファイルから検索して、 その番号の列データを別シートに転記して印刷したいのです 別シートに 番号:0001 商品:みかん 数量:3 単価:300 と転記して印刷(番号、商品、などの項目名は、転記するひな形シートに元々入れてあります) *ユーザーフォームのイメージは、番号を入力するボックスと、「印刷」ボタンだけがある状態です。 ユーザーフォーム上で該当番号列のほかの値を表示する欄は持ちません。 また、列の情報が多いため、ユーザーフォーム上に表示させてそのまま印刷するというのは厳しいです *ユーザーにはデータファイルを直接触ってほしくないので、ユーザーフォームを介してデータを取り出すようにこのような形にしたいのですが・・・ 自分でいろいろと勉強する前に質問してしまい申し訳ありません。。。が 仕事で使うのに時間がなくお力を貸して頂ければと思います。 宜しくお願い致します。

  • エクセルのユーザーフォーム表示について

    ユーザーフォームを作成して、ワークシートのデータを帳票形式に表示しています。 これを閲覧だけ可能にして、ユーザーフォームから編集できないようにするにはどのようにすればよいのか教えて下さい。

  • エクセルでユーザーフォームを開いても入力できません

    エクセルでユーザーフォームを作成し、商品コードを入力してマスタより内容の表示をさせるマクロを作成しました。 実行させるとフォームが開き商品コードでカーソルが点滅しているのですが商品コードが入力できません。しかしタイトルバーのところをクリックすると入力できます。どうもフォームが非活 性になっているように思えます。 ユーザーフォームはマクロでUSERFORM1.SHOWで開いています。原因がどこにあるかアドバ イスいただければ幸いです。 エクセルは2016、OSはWINDOWS7です。 宜しくお願い致します。

専門家に質問してみよう