VBAで時短できる?、他のExcelファイルを開いてデータをコピーする方法

*本サイトはアフィリエイト広告を利用しています。

当サイトにご訪問ありがとうございます。

このページでは、VBAで他のブックを開いてデータをコピーする方法を解説しています。

毎日「Excelを開いてコピーするだけ」の業務があるなら、これだけで時間短縮です。

それほど難しくないので、ぜひ試してください。

スポンサーリンク
スポンサーリンク

サンプルコーディング

Sub sample()
    
    Dim Wpath As String

'-- Pathを取得

    Wpath = ThisWorkbook.Path
    
'-- データが保存されているブックを開く
    
    Workbooks.Open Wpath & "\data"

    
'-- コピー元をコピー指定する
    
    Workbooks("data").Sheets("sheet1").UsedRange.Copy
    
'-- コピー先に貼り付けを行う

    Workbooks("sample").Sheets("sheet1").Cells(1, 1).PasteSpecial Paste:=xlPasteAll

    
'-- 他のブックを閉じる

    Workbooks("data").Close

End Sub
スポンサーリンク

前提条件

  • VBAマクロを実行して、他のEXCELファイルを開きデータをコピーします。
  • マクロが保存されているEXCELファイル名は「sample」です。
  • マクロにより自動で開くファイル名は「data」です。
  • コピー操作は「data」→「sample」となります。
  • ふたつのファイルは同じフォルダに保存されています。
  • ワークブックの内のワークシート名は「sheet1」です。

解説

pathの取得

Wpath = ThisWorkbook.Path

ブックを開くにはpathが必要です。

保存場所のpathを記述しても良いのですが、同じフォルダに保存するという前提条件なので、「ThisWorkbook」の「path」メソッドで取得できます。

このように記述しておけばファイルの保存場所が変わっても、コーディングを変える必要はありません。

取得したpathは変数「Wpath」に格納しておきます。

pathとは

pathとはパソコン内のフォルダやファイルが保存場所のことです。

ドライブから階層順にフォルダ、ファイルを記述します。

Cドライブであれば「C:\」と記述して、それに続いてフォルダ名を「\」で区切り並べます。

例えば、CドライブのWindowsフォルダ→System32フォルダであれば、C:\Windows\System32」と記述します。

データが保存されているワークブックを開く

Workbooks.Open Wpath & “\data”

Openメソッドでワークブックを開きます。

ファイル名はフルパスで指定するので、上で格納した変数「Wpath」と”\data”を連結させて指定します。

拡張子は省略しています。

クリップボードにコピーする

Workbooks(“data”).Sheets(“sheet1”).UsedRange.Copy

Copyメソッドでクリップボードにコピーします。

コピー元ファイルは上で開いた「data」ファイルです。

UsedRangeプロパティを使うことでデータがある部分だけをコピーできます。

貼り付けを行う

Workbooks(“sample”).Sheets(“sheet1”).Cells(1, 1).PasteSpecial Paste:=xlPasteAll

PasteSpecialメソッドを使用してコピー先に貼り付けます。

コピー先ファイルはVBAが記述してある「sample」ファイルです、「ThisWorkbook」でも問題ありません。

貼り付けを行うには「Paste」メソッドもありますが、エラーが出るので「PasteSpecial」メソッドを使います。

「PastSpecial」は、「形式を指定して貼り付け」と同じ操作が可能です。

xlPasteAllは「全てを貼り付け」です。

値貼り付け( xlPasteValues)、書式貼り付け(xlPasteFormats)などの他の操作も可能です。

開いたブックを閉じる

Workbooks(“data”).Close

最後に、VBAマクロで開いたワークブックを閉じておきます。

VBAで閉じずに手作業で閉じても問題ありません。

VBAを学習するなら

<VBA書籍なら以下のページです>

入門から中級、上級までレベル別に紹介しています、よろしければ参考にしてください。

<udemyをご存知ですか?>

Udemy(ユーデミー)とは、210,000以上の講座があるオンライン学習プラットフォーム。おもに社会人が対象で、教えたい人が講座を開き、学びたい人が学べるサイトです。

自分に合った講座を試してみるのも楽しいですね。

プログラミング言語の人気オンラインコース

<基礎から学ぶならスクールで>

VBAは一般的には簡単な言語だと言えますが、プログラミングの経験がない人には難しいかもしれないですね。

書籍などの独学でなかなか覚えられないのであれば、学習サイトスクールで基礎から習うのも手段です。

タイトルとURLをコピーしました