[[20120305095650]] 『サイズの違う結合セル間の値貼付:マクロ』(tk) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『サイズの違う結合セル間の値貼付:マクロ』(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.