evcel VBA初心者です。
ブック間コピーの方法を探っていて以下の質問にたどり着きNO.2 NO.3の回答を試してみましたが、値のみしかペーストされません。
書式を含めすべてコピペする方法を教えて下さい。
Range("**")を変えればいいというものなのでしょうか。
また、NO2の回答のコードの中で sFindbook の変数はどこで宣言しているのでしょうか。
http://oshiete.goo.ne.jp/qa/5261470.html
No.3ベストアンサー
- 回答日時:
>ここで書かせてもらっていいでしょうか。
いいえ。今のご質問が聞きたいことを全然示せていない事を,ご自分でも理解されたのでしょ?
でしたら,ちゃんとキチンとヤリタイ事を整理して,ご相談を投稿し直してくださいとお話ししたワケです。
ヒトの言うことは聞かずに自分の話ばっかり聞いて聞いてって,どうですか?
こちらは,ちゃんとアナタのご質問に対してキチンと回答していますよ。
再掲:
>「どこ(どのブック)から」「どこへ」コピーしたかったのかよく整理して,
↓
>開いてるのはコピー元ブックとペースト先ブックのみ。
マクロは?いったいどこに持たせているのですか?
どっちのブックが「コピー元」で,どっちのブックが「貼り付け先」だと,どうしたらエクセルに(=そのマクロを考える回答者に)判断が付くのですか?
また実は3冊目ブックで「個人用マクロブック」が裏で開いてたりは,絶対にありませんか。
sub macro2()
dim w as workbook
for each w in workbooks
if w.name <> thisworkbook.name and not strconv(w.name, vblowercase) like "personal.*" then
w.worksheets(1).usedrange.copy destination:=thisworkbook.worksheets(1).range("A1")
end if
next
end sub
#必要に応じて「コピー元」と「貼り付け先」ブックをそれぞれ入れ替えて,ヤリタイ事を実現してください。
再掲:
>コピーしたいセル範囲とか,どこに貼り付けたいとか
↓
情報提供がありません。
ついでに,どのシートからどのシートにコピー貼り付けたいのかの情報も不足でした。
この回答への補足
独り言ですが、
結局セル全体のコピペがわからずw.worksheets(1).以降を以下のコードにするという不細工なものになってしまいました。
Cells.Select
Selection.Copy
Windows("貼り付け先.xls").Activate
Range("A1").Select
ActiveSheet.Paste
このたびはありがとうございました。
まだまだ勉強が欠かせませんが、頑張ります。
ありがとうございます。
自分本位になってしまい言うことをきかなかったこと、反省します。
大変失礼しました。
macro2 実行させていただきました。
初めて見る記述もあり驚くばかりです。
こんなに短い構文で可能なんですね。これでいけそうです。
セル高さ・幅を貼り付けはしないですが、何とかします。
ありがとうございました。
No.2
- 回答日時:
ご覧になったどちらの回答も「値の転記」をしているので,書式のコピーはしていません。
ふつーにコピーし,貼り付けるマクロを書きます。
とりあえずヤリタイ事:
>ブック間コピーについて
作成例:
Book1.xlsとBook2.xlsが既に開いてある。
sub macro1()
workbooks("Book1.xls").worksheets("Sheet1").range("A1").copy _
destination:=workbooks("Book2.xls").worksheets("Sheet2").range("A1")
end sub
#あとは応用
勿論実際には,ご覧になった回答で利用されているように
・「どこ(どのブック)から」「どこへ」コピーしたかったのかよく整理して,必要に応じてthisworkbookなどを利用するマクロを工夫する
・コピーしたいセル範囲とか,どこのセルに貼り付けたいのかといった事もよく整理して,あなたの作りたかった「マクロの動作」をよく考えて整理する
など,研究を進めてください。
また新しい「実はこういう事がしたかった」が明らかになってきたら,また別途新しいご相談を投稿してみて下さい。
ありがとうございます。
ブック間のコピーと申しましたが、質問のurlの質問者さんと同じくデータ元のブック名が変わるのを前提としてブック間のコピーの方法を探しておりましたので質問のurlにある回答が非常に近かったのです。
>実はこういうこと・・・
ここで書かせてもらっていいでしょうか。
開いてるのはコピー元ブックとペースト先ブックのみ。
データ元のブック名が変わってもコピー&ペーストができる。
書式を含めシート全体をすべてコピー&ペーストしたい。
よろしくお願いします。
No.1
- 回答日時:
おはようございます。
今リンク先をぱぱっと読んで試しにコーディングしてみましたので、もし読み落としがあったらどうもすみません。。
↓いわゆる
右クリック→「形式を選択して貼りつけ」→「すべて」
は、~.PasteSpecial Paste:=xlAll を使います。
(時間があまりないので、勝手ながら前のQ&Aのご回答に書き足させていただきます。
その方が続きになるので理解もしやすいと思われますし。。)
Sub Sample()
Dim wbk As Workbook
'自ブック以外なければ終了
If Workbooks.Count = 1 Then
MsgBox ("ブックBなし")
End
End If
'自ブック(ブックA)以外のブックを探す。
sFindbook = ""
For Each wbk In Workbooks '開いているBook分ループを回す
If wbk.Name <> ThisWorkbook.Name Then '自ブック(ブックA)は除外
sFindbook = wbk.Name '自ブック以外のブック名取得
Exit For 'ブックが1つ見つかったらループを抜ける
End If
Next wbk
'Workbooks(sFindbook).Activate '見つけたブックをアクティブに
'発見ブックのアクティブシートの特定セル(D10)の値を自ブックの1シート目の特定セル(E12)にコピー
'ThisWorkbook.Sheets(1).Range("E12") = Workbooks(sFindbook).Sheets(2).Cells(10, 4)
Workbooks(sFindbook).Sheets(2).Cells(10, 4).Copy
ThisWorkbook.Sheets(1).Range("E12").PasteSpecial Paste:=xlAll
End Sub
これ以外のペースト書式については
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv209.html
に綺麗にまとめてくださっているので、よかったら参考にしてみてください。
あと
>どこで宣言しているのでしょうか
についてですが、VBAでは宣言が強制されていませんので、(構文上の)エラーにはなりません。
ただ↓でも書かれているように、(慣れていないと)自分の得たい結果が
得られない事もありますので、メリット・デメリット両面があります。
http://www.google.co.jp/#sclient=psy&hl=ja&sourc …
VBAの勉強どうぞ頑張ってくださいb
ありがとうございます。
少し質問を間違えておりました。
書式も貼り付けたいと申しましたが、シート全部の値・書式ともに別のブックに貼り付けたいのです。
シートの左上を選択し行・列すべてを選択して別のブックに貼り付けたいのです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 12:00
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) Excel VBA 指定セルに入力されているパスからシートをコピーして別のブックに転記するVBAのコ 2 2022/04/19 15:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAが途中で止まります
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
【前回の続き続きです、ご教示...
-
現在開いているbook全てを対象...
-
【ExcelVBA】zip圧縮されたCSV...
-
マクロVBA 1シートをまとめ...
-
「複数のファイル(ブック)の...
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】インデックスが有...
-
ユーザーフォームの切り替えに...
-
ACCESSVBA からExcelの他ブック...
-
【前回の続きです、ご教示くだ...
-
マクロについて教えてください。
-
VBA 実行時エラー 2147024893
-
ADOで複数のBookから抽出
-
EXCEL VBA 単語置き換え につい...
-
【Excel VBA】書き込み先ブック...
-
VBA コードを実行すると画面が...
-
VBAの参照先のファイル名をセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBS Bookを閉じるコード
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
ExcelのVBAです。フォルダ内の...
-
vbaで他のブックに転記したい。...
-
フォルダ内の全てのファイルに...
-
VBAで複数のブックを開かずに処...
-
VBSでExcelのオープン確認
-
VBA 実行時エラー 2147024893
-
【Excel VBA】書き込み先ブック...
-
VBA シート名が一致した場合の...
おすすめ情報