• ベストアンサー

EXCEL VBAからEXCELファイルを非表示で開きたい

こんにちは。 EXCEL VBAから、別のEXCELのファイルを非表示で参照し、 セルの内容を取得したいのですが、やり方がわかりません。 どなたかお知恵をお貸しください。 できれば、具体的な記述方法を知りたいです。

  • megxp
  • お礼率37% (10/27)

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

○別のBookを開いて参照する例です。最後は閉じています。開いた状態は見えないはずです。  標準モジュールに貼りつけます。(当方、Excel97です) ○これとは別に、別のBookを開いた状態で、算式で参照しておけば開く必要はありません。  特定のセルを参照するならこちらのほうが簡単です。 Sub SansyoBook()   Dim xlsFilePath As String '別のExcelBookのパス   Dim xlsFileName As String '別のExcelBookのファイル名   Dim myBk As String '呼び出すBook名   Dim otBk As String '別のBook名   myBk = ThisWorkbook.Name   Application.ScreenUpdating = False     ActiveCell.Activate     '///// パスとファイル名をセットする /////     xlsFilePath = "C:\・・・・\・・・・\"  '自分でセットします     xlsFileName = "別ブックBook1.xls"    '自分でセットします     '///// 別Bookを開く /////     Workbooks.Open xlsFilePath & xlsFileName       otBk = ActiveWorkbook.Name     '///// 元のBookのほうから別Bookのセルを参照 /////     Workbooks(myBk).Activate       With Workbooks(otBk).Worksheets("Sheet1")         Range("A1") = .Range("A1") 'セルA1を参照する         Range("A2") = .Range("B2") 'セルB2を参照する       End With     '///// 別Bookを閉じる /////     Workbooks(otBk).Activate     Workbooks(otBk).Close     Workbooks(myBk).Activate   Application.ScreenUpdating = True End Sub

megxp
質問者

補足

ありがとうございます。 自分もほぼ同じコードになってるんですが、Application.ScreenUpdatingがなぜか False になりません。 処理の流れとしては 入力フォームを開いたとき、別フォルダの別Bookの値を取得し、それをフォームのComboBoxのリストに追加するという処理です。 Excelの設定か何かありますか?もし知っていたら教えてください。

その他の回答 (2)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

開くexcelファイルがデータのような型式でしたら、”外部データの取り込み”で、ファイルを開くことなく持ってこれます。 メニューバーの[データ]>[外部データの取り込み]>[新しいデータベースクエリ]で、Excel File を選択>参照するブックを選択>シートを選択>フィールドを選択・・・の手順で参照を登録していきます。これをマクロの自動記録で記録してみてください。 With ActiveSheet.QueryTables.Add(Connection:= _     "ODBC;DSN=Excel Files;DBQ="\\***\*.xls"; _     "DefaultDir=="\\***";_ ~省略~ End With こういう感じになります。 ただ、私もNo1.の方の回答の方法をお勧めします。

megxp
質問者

補足

ありがとうございます。 処理の流れとしては、入力フォームを開いたとき、別フォルダの別Bookの値を取得し、それをフォームのComboBoxのリストに追加するという処理です。

  • nek784
  • ベストアンサー率35% (145/411)
回答No.1

下記の表現はどうでしょうか。 この命令を使った後にファイルを開くとタスクバーに 開いたファイルが出るだけでファイル内容は表示されません。 ○非表示する場合 Application.ScreenUpdating = False ○非表示を戻す場合 Application.ScreenUpdating = True  はずしていたらごめんなさい。

megxp
質問者

補足

ありがとうございます。 自分もApplication.ScreenUpdating = False にしているんですが、なぜか False になりません。 Excelの設定か何かありますか?もし知っていたら教えてください。

関連するQ&A

  • ACCESS2000からEXCELファイルを参照したい

    こんにちは。 ACCESS2000から、EXCELのファイルを参照し、 セルの内容を取得したいのですが、やり方がわかりません。 どなたかお知恵をお貸しください。 できれば、具体的な記述方法を知りたいです。

  • エクセルVBAで別ファイルのデータを取得しに行ってます。

    エクセルVBAで別ファイルのデータを取得しに行ってます。 http://www.officetanaka.net/excel/vba/tips/tips28.htm の二つ目に書かれたコードを参考に作ったんですが、取得セル範囲を何も入力されてない所まで広げると何も入力されてない所は『0』と取得、表示されてしまいます。 取得した時に『0』で表示するのを避ける方法はありますか?

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • EXCEL VBAでのWord操作

    ExcelのVBAにて、Wordファイルに挿入されているExcel表を更新したいのですが、 どのように記述すればよりかわかりません。 具体的には以下のとおりとなります。 「在庫.xls」 のセル A1 「照合表.doc」に挿入されているExcel表には「在庫.xls」のセルA1を参照するように記述が 入っています。 「在庫.xls」にコマンドボタン「更新」を作成し、実行すると「照合表.doc」の値が更新されるように マクロを組みたいのですが、どなたか知恵を貸してください。

  • 別のエクセルファイルの中身を表示する際

    別のエクセルファイルの中身を表示する際の方法について。 経理.xlsのセルに下記のように別ファイルのセルを表示しています。 =[参照元エクセルファイル.xls]Sheet1!$F$2 1個だけでなく100行くらい表示したい。 例 =[参照元エクセルファイル.xls]Sheet1!$F$2 =[参照元エクセルファイル.xls]Sheet1!$F$3 =[参照元エクセルファイル.xls]Sheet1!$F$4 ・・・・ こういう場合に、素人なので、経理.xls開いて「=」を入れて、参照元エクセルファイル.xlsに移って、該当セルをクリックする・・というふうに1個ずつしか処理できません。 簡単な方法はないでしょうか。 #但し、参照元エクセルファイル.xlsでは範囲名は設定できません。(自動的に書き出しされる仕組みのため。)

  • エクセルVBAのファイルが開けなくなりました

    比較的長くて複雑なVBAを含むエクセルのファイルが開けなくなりました。ファイルが開いた状態で砂時計がずっと回ったままです。 おそらくVBAで誤った記述をしたまま、無理に閉じてしまったからではないかと 思うのですが、このファイルを何とか開く方法はありますでしょうか?

  • Excel VBAのVLOOKUP関数について

    Excel VBAのVLOOKUP関数について VBAでのVLOOKUPで他のブックを使用する場合の方法がわかりません。 ブックαにて参照したい他のブックβのパスやファイル名、シート、セルは保持しております。 同一ファイル内では取得することができたのですが、他のブックではうまくいきません。 また、VLOOKUP関数にて取得できた場合、取得したセルの下に1段、左に1段目のセルを取得したい場合どうすればいいのでしょうか? 環境はEXCEL2003です。 ご存知の方がいれば教えてください!

  • エクセルVBAで困ってます。

    私は今、エクセルVBAで困ってます。 内容はデータを入力したエクセルのシート上で、別のファイル(CSV形式)を開いてある特定の行に入力したデータを参照し、完全に一致した際には、別のファイルの内容をシートに反映させるといったようなことは可能でしょうか? 襲えて下さい。 回答お待ちしています。

  • VBAからファイルをセル入力から開く方法

    VBAからファイルをセル入力から開く方法 だれかご教授頂けませんでしょうか?VBAからエクセルファイルを開こうとしています。 そこでシート1のA1セルにファイル名を記述してあり、そのファイル名からファイルを開く事は出来ますでしょうか? 何か良い方法がありましたら教えて頂きたいのですが。

  • Excel VBAでファイルを開くとマクロを実行させるにはどのように記

    Excel VBAでファイルを開くとマクロを実行させるにはどのように記述すればいいのでしょうか? 例えば、ファイルを開くと指定のセルの削除させるような。 よろしくお願いします。

専門家に質問してみよう