- ベストアンサー
別のエクセルファイルのデータをコピペ
- VBAを使用して別のエクセルファイルからデータをコピーし、別のブックに貼り付ける方法について教えてください。
- タイトルの通り、別のエクセルファイルから3列分のデータをコピーし、別のブックに貼り付けたい場合、VBAを使って作業することができます。
- エクセル2000を使用している場合、以下の手順を実行することで目的の結果を得ることができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> これを「取引先.xls」は開かずに実行させたいのですが、どのように書けばよいのかわかりません。 それ以外の部分はできているのですね。 では、開かずにデータを取得する方法を知らないので、開いたところを見せずに実行する方法 '1.ダイアログBOXで「取引先.xls」を選ぶコード Application.ScreenUpdating = False '画面の更新を止める '選んだファイルを開くコード '2.「未確定」シートを選択し、Range("A6:C40")のデータをコピー。のコード '3.「取引先2.xls」に「確定シート」を作成し、そこに貼付け。のコード Workbooks("取引先.xls").Close (False) Application.ScreenUpdating = True '画面の更新を再開
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
#1です。 うまく行ってよかったですね。蛇足ですが > パスから「Right関数」でファイル名のみ取得したところ、 ご承知のとおりGetOpenFilenameメソッドの返り値は「C:\My Documents\Book1.xls」のようにパス名を含んだファイル名です。 これは、そのままファイルを開くときなどに便利なのですが、パスを除いた純粋なファイル名を取り出すにはDir関数を使えばいいんです。 Dir関数は引数に指定したファイルが存在すると、そのファイル名だけを返します。Right関数などでめんどうなことをしなくともいいんですよ。 Sub Sample() Dim OpenFileName As Variant OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> False Then MsgBox "選択したファイルは " & Dir(OpenFileName) & " です", vbInformation, " ( ̄ー ̄)v" End If End Sub
お礼
おぉ~!Dir関数!なるほどです。(・・・ひょっとして基本ですか?) これは他にも使いまわしが出来ますね(^^ おかげでコードがすっきりしました。ありがとうございます。
お礼
merlionXXさん。早速ありがとうございます。 説明不足があったので補足させてください。 ダイアログBOXで選択したbookを"GetOpenFilename"を使ってパスの形(C:\新しいフォルダ\取引先.xls)で持ってきてますので、 > 「Workbooks("取引先.xls").Close」 が使えないのです。 画面の更新を止める方法については、勉強になりました。 よろしくお願いします。
補足
merlionXXさんへ。 (補足じゃないですが、書く所が分からなかったのでココに書かせてもらいました ^^;) パスから「Right関数」でファイル名のみ取得したところ、 Workbooks("取引先.xls").Close (False) も使えました。 ので、当面この方法を使わせて頂きます。ありがとうございました。