• ベストアンサー

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

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

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

  • ベストアンサー
  • 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

専門家に質問してみよう