[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『サイズの違う結合セル間の値貼付:マクロ』(tk)
過去ログを漁りましたが有りそうでうまく見つからなかった為質問させて頂きます。
お互いサイズの違う結合セル間で値の貼り付けをマクロにて行いたいのですが 例えば、Book1にあるA1:B1を結合してできたA1セルの値を Book2にあるB2:D2を結合してできたB2セルに貼り付けするとした場合の VBAのコードはどのようになるのでしょうか?よろしくお願い致します。
貼付けではなく、値の転記でいいなら。(各ブックのシート名は実際のものに)
Workbooks("Book2.xls").Sheets("Sheet1").Range("B2").Value = Workbooks("Book1.xls").Sheets("Sheet1").Range("A1").Value
(ぶらっと)
ぶらっと様 ありがとうございます。転記ができました! 重ねて申し訳ありませんが、形の同じ複数のファイルで同様の作業を行う場合に ファイル名を問わずに、今開いている片方のBookAからもう一つのBookBへ 上記のような結合セルの値をコピー/貼付というマクロも可能なのでしょうか? (tk)
う〜ん・・・ もう1つのブックというのが、悩ましいかも。自分で気がつかないうちに、エクセルが立ち上がった時に XLSTARTというフォルダにエクセルブックが存在すると、自動的に読み込まれたりするので、そうなると どれが、「もう1つのブック」かが、判定しにくいよね。
ともあれ、とにかく、アクティブブック以外の読み込み済みの1つのブック(複数あった場合は、どれになるは保証できない) に対して処理するという、「あらっぽい」コード。
コードは値の転記にしてあるけど、形式が同じ領域なら、そこをコピー/ペーストのコードにしてもOK。 (コピー/ペーストのコードはいいよね。わからなければ、マクロ記録すれば基本形が生成される)
Sub いいのかなぁ() Dim wb1 As Workbook Dim wb2 As Workbook Dim wbx As Workbook
Set wb1 = ActiveWorkbook For Each wbx In Workbooks If Not wbx Is wb1 Then Set wb2 = wbx Exit For End If Next
If wb2 Is Nothing Then MsgBox "もう1つのブックが開かれていません" Exit Sub End If
wb2.Sheets("Sheet1").Range("B2").Value = wb1.Sheets("Sheet1").Range("A1").Value
End Sub
(ぶらっと)
ぶらっと様 私のやり方がいけないのか上記のコードで試行しましたがうまく貼り付けができませんでした… ですが、複数のファイルでやる場合も最初に頂いた転記のコードでBook毎に ファイル名を置換しながらでも充分効率よくやれそうです。 度々ご教示ありがとうございました。 (tk)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.