Excel VBAで他のワークブックから開かずにデータをコピーする

  • これを共有
Hugh West

マイクロソフトエクセル , VBAマクロ を使えば、さまざまな問題を簡単に解決することができます。 ワークブックを開かずに他のワークブックからデータをコピーしたい場合は、次のようにすれば簡単にできます。 エクセルブイビーエー この記事では、以下のことを学びます。 エクセルブイビーエー を使えば、他のワークブックを開かずにデータをコピーすることができます。

練習用ワークブックをダウンロードする

ワークブックをダウンロードして、一緒に練習することができます。

別のワークブックのデータをコピーする.xlsm

Excel VBAで開かずに別のワークブックからデータをコピーする3種類の方法

時には、以前のワークブックのデータが必要になることがあります。 急いでいて、ワークブックを開かずにすぐにデータが必要な場合は エクセルブイビーエー Excel VBAを使えば、他のワークブックからデータをすばやくコピーすることができ、そのためには、特定のワークブックの場所を知る必要があります。

データをコピーするために、ワークブック名を使用します。 製品詳細 そして、データ範囲をコピーしたいのです( B4:E10 コピーしたいデータセットには、いくつかの商品とその販売価格、商品原価、粗利率が含まれています。 別のワークブックからデータをコピーするためのさまざまな基準を見てみましょう。

1.ExcelVBAで開かずに別のワークブックからシートデータをコピーする

に従って、シートからデータをコピーすることができるのです。 ブイビーエー そのためには、以下の手順を踏む必要があります。

STEPS

  • まずは デベロッパー タブをクリックします。
  • その後 ビジュアルベーシック を開いてください。 Visual Basic エディター .
  • もうひとつの開き方 Visual Basic エディター を押すだけです。 Alt + F11 .

  • または、シート上で右クリックし 表示コード .

  • では、書き出してみましょう。 VBAコード を下回る。

VBAコードです。

 Sub Copy_Data_from_Another_Workbook() Dim wb As Workbook Dim newwb As Workbook Dim rn1 As Range Dim rn2 As Range Set wb = Application.ActiveWorkbook With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa" .AllowMultiSelect = False .Show If .SelectedItems.Count> 0 Then Application.Workbooks.Open....SelectedItems(1) Set newwb = Application.ActiveWorkbook Set rn1 = Application.InputBox(prompt:="Select Data Range", Default:="A1", Type:=8) wb.Activate Set rn2 = Application.InputBox(prompt:="Select Destination Range", Default:="A1", Type:=8) rn1.Copy rn2 rn2.CurrentRegion.EntireColumn.AutoFit newwb.Close False End If End With End SubEnd With End Sub 
  • 最後に、コードを実行するために ラン・サブ ボタンを押す一方で、キーボードショートカット F5 キーを押して、コードを実行します。

コードを修正する必要はありません。 コピペしてお使いください。

  • コードを実行することで ファイルを開く のウィンドウがコンピュータから表示されます。
  • その後、データを収集したいワークブックをクリックします。
  • 次に よっしゃー ボタンをクリックします。

  • ここで、ソースファイルからデータをドラッグして範囲選択する B5:E10 をクリックします。 よっしゃー .

  • データ範囲を選択したら、今度はデータを置く先の範囲を選択します。
  • をクリックします。 よっしゃー .

  • 最後に、コピー元のファイルを閉じると、コピー先のファイルにデータがコピーされます。

続きを読む Excel VBA: 範囲を別のワークブックにコピーする

類似の読み物

  • VBAを使用してクリップボードからExcelに貼り付ける方法
  • マクロを使わないExcelのコピー&ペーストを無効にする(2つの条件付き)
  • エクセルで非表示の行をコピーする方法(4つの簡単な方法)
  • 条件に基づいて行を別のワークシートにコピーするExcel VBA
  • VBAを使ってExcelで書式なしの値だけを貼り付ける方法

2.Excelで開かずに他のワークブックのデータ範囲をコピーするVBA

を使うことで、より効果的になります。 ブイビーエー 以下のコードで、データ範囲からデータをコピーすることができます。 これを実現するには、以下のステップを踏む必要があります。

STEPS

  • はじめに デベロッパー タブをクリックします。
  • 2つ目は Visual Basic エディター をクリックすると ビジュアルベーシック を押すか、または Alt + F11 .
  • または、単にシート上で右クリックし 表示コード を開いてください。 Visual Basic エディター .

  • その後、書き込んでください。 VBAコード そこに

VBAのコードです。

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'コピーしたデータの格納場所 rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub. 
  • ここで、コードを実行するには 実行 サブ またはキーボードショートカット F5 を実行してください。

コードを修正する必要はなく、ソースデータに合わせて範囲を変更するだけでよいのです。

  • そして最後に、別のワークブックからアクティブなワークブックにデータがコピーされるようになりました。

続きを読む ワークシートから別のワークシートへコピー&ペーストするマクロ(15の方法)

3.コマンドボタンで開かずに別のワークブックからデータをコピーするExcel VBA

のコマンドボタンで、他のワークブックからデータをコピーすることができます。 ブイビーエー そのためには、次のような手順が必要です。

STEPS

  • をつけるのが第一。 コマンドボタン にアクセスしてください。 デベロッパー タブで表示します。
  • 2つ目は インサート のドロップダウン・メニューがあります。
  • 3つ目は コマンドボタン .

  • を入れました。 製品 オンセル A1 を、ソースファイルのシート名として設定します。 コマンドボタン これでテーブルが作成されましたので、あとは別のワークブックにあるデータが必要なだけです。

  • 同じ要領で デベロッパー タブをクリックします。
  • 次に、「」をクリックします。 ビジュアルベーシック を押すか Alt + F11 を起動します。 Visual Basic エディター .
  • を開くこともできます。 Visual Basic エディター シート上で右クリックし 表示コード .

  • では、書いてみましょう。 ブイビーエー コードダウン

VBAコードです。

 Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("D:\Products_Details.xlsx") sourceworkbook.Worksheets("Product").Range("B5:E10").Copy currentworkbook.Activate currentworkbook.Worksheets("Sheet3").Activate 現在のワークブック(シート 3).Cells(4, 1).Select アクティブシート(貼りつけ) ※このファイルは、workbook.workwork.worksheets(シートシート 3).ScreenSheets(シート 3).Activity(アクティブシート).Paste(アクティブシート).Paste(ペースト).Paste(アクティブシート).Copy (アクティブシート).Copy (アクティブシート).Copy (アクティブシートsourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet3").Range("A2").Select End Sub 
  • を押して、コードを保存します。 Ctrl + S .

コードをコピーして、ファイルパスとデータ範囲を変更するだけです。

  • そして、最後に、クリックすると コマンドボタン1 をクリックすると、他のワークブックを開かずにデータをコピーすることができます。

続きを読む あるワークブックから別のワークブックに条件に基づいてデータをコピーするマクロ

結論

で開かずに、他のワークブックからデータをコピーするためのガイドラインです。 エクセルブイビーエー これがあなたの助けになることを願っています!ご質問、ご提案、ご意見がありましたら、コメント欄でお知らせください。 または、他の記事もご覧ください。 エクセルWIKI.com ブログ

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。