
下記のマクロは先日教えていただいたマクロで
作業ブックの指定セル値を別ブックの指定セルにコピー出来るマクロですが
コピー元のセル値を複数指定し、コピー先のセル値も同じく複数指定したいのですが、
コードを下記のように設定しても上手く行きませんでした。
Book1の値をコピー
ThisWorkbook.Sheets("1").Range("F10,F12").Copy
'Book2に値貼り付け
Workbooks("【連動版】行政報告チェックリスト(戸建て).xlsm").Sheets("建築物(確認申請)(第1号様式)").Range("C1,E4") = ThisWorkbook.Sheets("1").Range("F10,F12").Value
解決方法を教えてください。
現行のマクロ
Sub 新行政報告にコピー()
'コピー先のファイルを開く
Workbooks.Open ThisWorkbook.Path & "\【連動版】行政報告チェックリスト(戸建て).xlsm"
'Book1の値をコピー
ThisWorkbook.Sheets("1").Range("F10").Copy
'Book2に値貼り付け
Workbooks("【連動版】行政報告チェックリスト(戸建て).xlsm").Sheets("建築物(確認申請)(第1号様式)").Range("C1") = ThisWorkbook.Sheets("1").Range("F10").Value
Workbooks("【連動版】行政報告チェックリスト(戸建て).xlsm").Save
Workbooks("【連動版】行政報告チェックリスト(戸建て).xlsm").Close
End Sub
No.3ベストアンサー
- 回答日時:
直接、本件の質問とは関係ありませんが、
ブック名、及びシート名で長い名前があると、それを何回も使う場合などは
マクロが横に長くなり、冗長的になってしまいます。
以下のようにすると、マクロがすっきりし、簡単になります。
Sub 新行政報告にコピー2()
'コピー先のファイルを開く
Dim wbk2 As Workbook
Set wbk2 = Workbooks.Open(ThisWorkbook.Path & "\【連動版】行政報告チェックリスト(戸建て).xlsm")
'Book2に値貼り付け
Dim wsh1 As Worksheet
Dim wsh2 As Worksheet
Set wsh1 = ThisWorkbook.Sheets("1")
Set wsh2 = wbk2.Sheets("建築物(確認申請)(第1号様式)")
wsh2.Range("C1") = wsh1.Range("F10").Value
wsh2.Range("E4") = wsh1.Range("F12").Value
wbk2.Save
wbk2.Close
No.4
- 回答日時:
コードを記載する際に、
コード中の改行
https://ribbit.konomi.app/vba/line-break/
Withって何ですか?
http://officetanaka.net/excel/vba/beginner/16.htm
などで見易さや簡素化も役立つものです。
No.2
- 回答日時:
状況が良くわかりませんので補足部分だけ。
多分コードが異常に増えるでしょうから、変更したい箇所についてFor Eachで行なうか別途関連リスト表を作成したシートから情報を得るのが楽じゃないかな?
No.1
- 回答日時:
素直に
Workbooks("【連動版】行政報告チェックリスト(戸建て).xlsm").Sheets("建築物(確認申請)(第1号様式)").Range("C1") = ThisWorkbook.Sheets("1").Range("F10").Value
Workbooks("【連動版】行政報告チェックリスト(戸建て).xlsm").Sheets("建築物(確認申請)(第1号様式)").Range("E4") = ThisWorkbook.Sheets("1").Range("F12").Value
と2行分(2つのセル分)、書くのが良いかと思います。
もし、転記元、転記先のセルが10以上とかで、かなり多いなら
以下の方法でも可能です。(例では2つのセルの場合)
Dim rg1str As Variant: rg1str = "C1,E4"
Dim rg2str As Variant: rg2str = "F10,F12"
Dim rg1tbl As Variant: rg1tbl = Split(rg1str, ",")
Dim rg2tbl As Variant: rg2tbl = Split(rg2str, ",")
Dim i As Long
For i = 0 To UBound(rg1tbl)
Workbooks("【連動版】行政報告チェックリスト(戸建て).xlsm").Sheets("建築物(確認申請)(第1号様式)").Range(rg1tbl(i)).Value = ThisWorkbook.Sheets("1").Range(rg2tbl(i)).Value
Next
尚、以下の
ThisWorkbook.Sheets("1").Range("F10").Copy
は、この場合意味がないので、削除しても問題ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 12:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/04/02 16:12
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/04/01 17:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) 【マクロ】コピーでは、ブックまで指定するのとシートまで指定する違いは? 3 2023/09/08 12:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
Ctrl + Cなど複数の入力キー...
-
C++言語で、構造体のコピーは可...
-
Eclipseのコード入力時の、行コ...
-
Activesheet.Pasteで困っています
-
jakarta poiを使用し、EXCELの...
-
DataTableに入っているデータを...
-
Listviewに表示された文字のコ...
-
一行おきに貼り付ける 可能でし...
-
文字列の切り出し
-
excel vba シートがなければコ...
-
EXCEL VBAで複数行のコピー(...
-
【再質問】Eclipseのコード入力...
-
【UWSC】WEBページ内コピーした...
-
ASP.net でコントロールをコピー
-
Debug版とRelease版で結果が変わる
-
バッチで当日日付で作成される...
-
他プロジェクトのFormを自プロ...
-
マウントしたディスクにcpで、...
-
Excelでコピーしたセル(テキス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
C++言語で、構造体のコピーは可...
-
マウントしたディスクにcpで、...
-
Ctrl + Cなど複数の入力キー...
-
Eclipseのコード入力時の、行コ...
-
DataTableに入っているデータを...
-
Activesheet.Pasteで困っています
-
Listviewに表示された文字のコ...
-
一行おきに貼り付ける 可能でし...
-
arduino unoからデータを読み出...
-
【UWSC】WEBページ内コピーした...
-
jakarta poiを使用し、EXCELの...
-
文字列の切り出し
-
Debug版とRelease版で結果が変わる
-
シートに張り付けたボタンがシ...
-
Excelでコピーしたセル(テキス...
-
バッチで当日日付で作成される...
-
VBScript でサブフォルダも含め...
-
エクセルVBA 実行時エラー'...
-
CStringArray[2]のコピー
おすすめ情報
コードをコピペして指定セルを変更する方法が1番良い方法ですか?
よろしくお願いします