プロが教えるわが家の防犯対策術!

お世話になっております。

2つのファイルがあります(a b)
aにVBAを入力するのですが
ダイアログでbのファイルを開いて、
aのfileの新しいシートにbのファイルの情報を挿入したいです。
bファイルは6シートあり

このコードを検索しても、書籍で探してもありませんでした。

コードを教えていただけませんでしょうか

質問者からの補足コメント

  • 有り難う御座います。
    不足情報とはなんでしょう?

    a.bはどちらもexcel fileです。
    aのファイルで、bのファイルをダイアログで開いて
    bの内容をaのシートに挿入したいです。
    bのファイルの情報は挿入するだけなので、必要ないと思いますし、aのファイルもダイアログと、シート挿入なので、特に必要ないと思うのですが

    せっかく参加URLを教えていただいたのですが
    そのサイトはファイルを開いているだけのようにみえます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/03/05 11:00

A 回答 (2件)

こんにちは



>コードを教えていただけませんでしょうか
あなたの質問文ん情報からでは、不足情報が多すぎてとてもコードにはなりません。

>このコードを検索しても、書籍で探してもありませんでした。
どうやって探したのかわかりませんが、サンプル的なものはいくらでも見つかると思います。
以下、一例
https://www.moug.net/tech/exvba/0060013.html
http://officetanaka.net/excel/vba/file/file02.htm

後は、単なる値のコピペのようですので、いかようにもなるでしょう。
この回答への補足あり
    • good
    • 0

#1の回答にあるように、検索方法や探し方の学習が必要かとは思いますが、


>コードを教えていただけませんでしょうか
この場合、すでに試したコードなど、コードを示して頂かないと、どこが分らないのか、解らず、教えることが出来ません。
>そのサイトはファイルを開いているだけ
であれば、ファイルを開くコードを示すとか、

>ファイルをダイアログで開いて
上記で検索すれば沢山コードは転がっています。
ダイアログを表示する所とか、Copy部分とか作れる部分もあると思いますよ。

本来、あなたが作るべきで、やりたい事についても情報が足りないのに
>特に必要ない
ではなく、解らないので、具体的に教えてくださいとか、よく考えるべきですよ。
足りない情報 ざっくり、
シートをどこに挿入するか、(前、後ろ、2番目から、3番目から飛び飛びなど)bのシートの抽出する順番は?(初めから?後から?名前順?)
ファイルとはExcelブックの事?、Excelなら拡張子は?(ダイアログ設定)保護付きシートはないか、(エラー回避)など。

全部わからないなら、作って下さいと言う事になります。

ご質問の内容(想定、私の解釈)で別ブックのシート挿入(全て)の実行コードを書きました。
(教えることが難しいので作りました。参考と言う事でコードに付いて責任は持ちません)

ただし、VBAの基礎知識があると想定して組み込み方やコードの意味は割愛します。
ご自分で調べてください。(質問者の環境は分かりませんが、不具合がないか簡単な検証はしました)
また、実行に関して、自己責任でお願いします。追加質問に関しては、別質問にしてくださいね。
現実を考えるとすぐ改修が必要になるのではないでしょうか?

Option Explicit
Sub Sheet_import()
  Dim OpenFileName As String, i As Long
  Dim thisBK As Workbook: Set thisBK = ThisWorkbook
  OpenFileName = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls?")
  If OpenFileName <> "False" Then
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    With Workbooks.Open(OpenFileName)
      For i = 1 To .Worksheets.Count
        .Worksheets(i).Copy , After:=thisBK.Worksheets(thisBK.Worksheets.Count)
      Next
      .Save
      .Close
    End With
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
  Else
    Exit Sub
  End If
End Sub

仮にbブックに10シートあれば10シート挿入されます(全て)保護付きシートは考慮していません。エラーが返されます。
シートは、aブックの現状の最後からbブックシートインデックス1から順に挿入されます。
ThisWorkbookを使っているので必ず、保存してから実行してください。
古いExcelファイル、通常ブック以外などの検証は行っていません。
    • good
    • 0

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