同じファイルにアクティブになるブックとデータ取得のためのブックが3つあります。
これをバックグラウンドで開き、範囲指定して転記したいのですが、出来ません。
Sub データ転記()
Dim sourceWB As Workbook
Dim sourceWS As Worksheet
Dim SourceRange As Range
Dim lastrow As Long
Dim folderPath As String
Dim sourceFilePath As String
'同じフォルダ内のパスを取得
folderPath = ThisWorkbook.Path
sourceFilePath = folderPath & "\ブック名.xlsx"
'コピー元のブックをバックグラウンドで開く
Set sourceWB = Application.Workbooks.Open(sourceFilePath, False, True)
'コピー元のシート指定
Set sourceWS = sourceWB.Sheets("シート名")
'コピー元のデータ取得
Set SourceRange = sourceWS.Range("A3:E30")
'アクティブシートに転記
SourceRange.Copy Destination:=ActiveSheet.Range("A3")
'ブックを閉じる
sourceWB.Close SaveChanges:=False
End Sub
宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No2です。
No1で理由も説明しておいたつもりですが、それを理解せずに、適当にコピペだけなさっていませんか?
ご提示の内容の処理であれば、以下のような感じでも実行可能と推測します。
(ただし、No1に記したバックグラウンドに関してはご提示のままです)
※ ブック名、シート名は正しい名称(=質問者様の環境にあった名称)にしてください
Sub データ転記()
Dim TargetRange As Range
Const bookName = "ブック名.xlsx" ' コピー元ブック名
Const sheetName = "シート名" ' コピー元シート名
Set TargetRange = ActiveSheet.Range("A3")
With Workbooks.Open(ThisWorkbook.Path & "\" & bookName)
.Worksheets(sheetName).Range("A3:E30").Copy TargetRange
.Close False
End With
End Sub
なお、ブックを開いた際に、他ブックの固定範囲の値を取り込めば良いだけであれば、VBAなどを用いなくても、当該ブックに「他ブックへの参照」を設定しておけば可能です。
あるいは、クエリなどを設定しておく方法でも可能と思います。
https://www.wanichan.com/pc/excel/2016/6/07.html
No.2
- 回答日時:
No1です。
>VBA初心者なので(バックグラウンドで開く)ところからつっかえております。
質問文に何も記載がなかったので、エラーは出ていないものと思いましたが、そういうことではないのでしょうか?
もしエラーが出ているのなら、それはどの行でどのような内容のエラーでしょうか?
エラーになりそうなのは
・指定したブックが存在しない
・ブック内に、指定したシートが存在しない
くらいかと思いますが・・・
なお、当方の環境では、No1の部分を修正すれば、問題なく実行できます。
Sub データ転記()
Dim sourceWB As Workbook
Dim sourceWS As Worksheet
Dim SourceRange As Range
Dim lastrow As Long
Dim folderPath As String
Dim sourceFilePath As String
'同じフォルダ内のパスを取得
folderPath = ThisWorkbook.Path
sourceFilePath = folderPath & "\ブック名.xlsx"
'コピー元のブックを開く
Set sourceWB = Workbooks.Open(sourceFilePath)
'コピー元のシート指定
Set sourceWS = sourceWB.Sheets("シート名")
’転記先ブック指定
Set SourceRange = sourceWS.Range("A3:E30")
'アクティブシートに転記
Set TargetRange = ActiveSheet.Range("A3:E30")
SourceRange.Copy Destination:=TargetRange
'ブックを閉じる
sourceWB.Close SaveChanges:=False
End Sub
このように変更してみましたが、エラーは出ないものの転記はされません。
No.1
- 回答日時:
こんにちは
単に「できません」としか書いてないので、どこが思惑と違うのか不明ですけれど・・
想像するところ、
>SourceRange.Copy Destination:=ActiveSheet.Range("A3")
で、Destinationで指定している、Activesheetが質問者様が意図しているものと異なっているのではないでしょうか?
ご提示の場合は、Activesheet は「後から開いたブックのその時に表示されているシート」を意味します。
多分、マクロを実行する際に表示されているシートを指定したいのではないかと想像しますので、最初に(=そのシートが表示されている時に)
Set TargetRange = ActiveSheet.Range("A3")
などとして変数に記録しておき、コピペの際にはそれを用いて
SourceRange.Copy Destination:=TargetRange
のように、コピー先を指定すれば良いのではないでしょうか?
※ 当方がご質問の意図を勘違いしている場合は、
お門違いの回答なのでスルーしてください。
なお、
>これをバックグラウンドで開き、範囲指定して転記したいのですが~
ご提示の状態だと「バックグラウンド」にはならないと思います。
特に、ブックを開くのには時間がかかるので、その間は操作ができなくなります。
多少、バックグラウンド風にするなら、
Application.ScreenUpdating = False
とでもしておけば、処理が見えなくなるのでバックグラウンド風になるとは思いますけれど、時間の問題は解決できません。
どうしてもバックグラウンドに近いものにしたければ、別スレッドでかつ別プログラム(=VBS等)から開く操作だけは行うようにするとか、あるいは、そちら側でコピペ迄処理するとかでしょうか。
回答ありがとうございます。
VBA初心者なので(バックグラウンドで開く)ところからつっかえております。
fujillinさんのおっしゃるようにしてみましたが、やはりデータが転記されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBA 1 2024/02/03 22:51
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
Excelにてある膨大なデータを管理しています。 そこで、特定の市町村にのみ色を付けたいです。 Ex
Excel(エクセル)
-
-
4
VBAで大量のファイルをシート名ごとに転記やらいろいろしたい!
Visual Basic(VBA)
-
5
VBAコードのインデント表示
Visual Basic(VBA)
-
6
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
7
VBA SaveChanges 上書きされない
Visual Basic(VBA)
-
8
Excel VBA 選択範囲の罫線色の変更プロージャの動作速度の改善について
Visual Basic(VBA)
-
9
データチェックを行うエクセルマクロをおしえてほしい
Excel(エクセル)
-
10
VBAについての質問です
Excel(エクセル)
-
11
Excel 1の位の数字で処理を分岐させたい
Excel(エクセル)
-
12
エクセルで上位バイトのセルと下位バイトのセルを1つのセルにして16進数を作る方法
Excel(エクセル)
-
13
再質問です。マクロの修正箇所を教えてください。
Excel(エクセル)
-
14
とびとびの大量セルを選択したいのですが・・・
Excel(エクセル)
-
15
EXCELをバックグラウンドで実行するには
Excel(エクセル)
-
16
Excelで、10000,20000,30000と表示されているのですが、時々10000,20000
Excel(エクセル)
-
17
Excel-VBAのmsgBox()の不思議
Visual Basic(VBA)
-
18
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
19
Excelにて数式を使用して 工数計算をしたいのですが、 計算方法が分からないので教えて下さい。 1
Excel(エクセル)
-
20
左右の表のキー位置を合わせたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
アクセスvbaでエクセルブックを...
-
ブックのピボットを別ブックに...
-
エクセルファイルを開かずにpdf...
-
複数ファイルから特定シートの...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
WorkBooksをオープンさせずにシ...
-
印刷しようとすると強制終了に...
-
VBA バックグラウンドで別ブッ...
-
エクセルにおける,「ブック」...
-
Excelで指定範囲のデータ...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
同じフォルダへのハイパーリン...
-
外部ブック参照が#REF!になって...
-
エクセルで「ディスクがいっぱ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
Excel(2010)のフィルターが保...
-
エクセルで参照しているデータ...
-
印刷しようとすると強制終了に...
-
WorkBooksをオープンさせずにシ...
-
エクセルにおける,「ブック」...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
エクセルファイルを開かずにpdf...
-
ブックのピボットを別ブックに...
-
Excel起動時に特定のワークシー...
-
エクセルで「ディスクがいっぱ...
-
同じフォルダへのハイパーリン...
-
VBA バックグラウンドで別ブッ...
-
フォルダ内の複数ファイルから...
-
エクセルシートの一部を送りたい
-
Excelで複数ブックの同一セルに...
おすすめ情報