• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数17030
  • ありがとう数1

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

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

○別の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

共感・感謝の気持ちを伝えよう!

質問者からの補足

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

関連するQ&A

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

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

  • エクセル非表示VBA

    こんばんわ。 エクセル初心者で勉強中です。 今下記画像のようなデータをエクセル2007で作成しています。 データは2行目から1000行目位まであるとします。 そこで質問なのですが、黄色の行のように その行のすべてのセルの値が空白の場合、行を 非表示にしていくコードはあるのでしょうか。 現在目視で非表示にしているので、できればVBAで素早くしたいのですが。 よろしくお願いします。

  • Excelで他Excelファイルのセルの値をVBAで参照したい時

    こんにちは。 Excelで他Excelファイルにあるセルの値をVBAで参照したい時って、 場所をどう指定したらいいのでしょうか。 やろうとしている事ですが、 c:\1.xlsに記述するVBAで c:\2.xlsのsheet1のA1の値を参照して、 それとc1.xlsのsheet1のA1の値が一致した時に、 c:\2.xlsのsheet1のB1の値を、 C:\1.xlsのsheet1のB1に書き出そうとしています。 派遣就業先でAccessで作ればいいものを なぜか社員の方たちでExcelで作ってしまったため、 そのメンテに四苦八苦しています。(笑) ご存知の方ぜひ教えてください。 よろしくお願いします!

その他の回答 (2)

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

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

共感・感謝の気持ちを伝えよう!

質問者からの補足

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からの補足

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

関連するQ&A

  • VBAを記述したEXCELファイルを他の端末で実行するとエラーが。

    VBAを記述したEXCELファイルを別の端末で開き、入力などの作業を行うとエラーが表示されます。EXCELのバージョン(2000)は同じなのですが。何故でしょうか? 試した端末のOSとバージョンです。 (1)WinNT4.0/Excel2000 (2)Win2000/Excel2000 ※VBAにはセルへの入力制限を行う記述をしました。 よろしくお願いします。

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

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

  • Excel VBAのVLOOKUP関数について

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

  • エクセルVBA

    エクセルVBAで、列の非表示をさせるためにはどうしたら良いでしょうか? また、別の質問になりますが、エクセルVBAで出した 結果をACCESSのレポート等で印刷させることって出切るんでしょうか? 前者はどうにかお知恵を借りてできるようにしたいです。後者はもし出来なければかまいません。 よろしくお願いいたします。

  • EXCEL VBAでのWord操作

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

  • VBAで実行押すまでExcel非表示にしたい

    VBAでユーザフォームを作成しました。 Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、 ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか? マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です どうか教えてください。

  • Excel 2007 VBAについて質問します。

    Excel VBAの初心者です。 行の非表示と表示についてお聞きしたいのです。 ExcelのSheet1の1行目(1行全体)のみを、シート上のセルをWクリックをして 非表示にしたり表示させたりするのには、どの様なコードを書いたらいいでしょうか? VBA初心者の為、分かりやすい回答をお願いします。

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

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

  • エクセルVBAにて

    同フォルダ内に置かれた、複数のエクセルファイルにおいて、シート1のA列にかかれている最大値(数字)を取得し、まとめというファイル名のエクセルに配置(貼り付け)したいのですが、具体的なやり方がわかりません。 よろしければ教えてください。 お願いします。

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

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