
vbaで他のブックに転記したい。
vba初心者です。
コマンドボタンを押すと、別ブックにA2からD2を転記するようにしたいです。
転記先は「帳簿」としています。
現状下記のプログラムでは「帳簿」の 5行目にのみ転記されてしまいます。
そこで下記質問です。
①帳簿ファイルの一番下の行からひとつ下に転記させるにはどこをどう直したら良いでしょうか。
②値だけの転記にする場合、どうしたらいいでしょうか。
よろしくお願いします。
Private Sub CommandButton1_Click()
'別ブックを開く
Workbooks.Open Filename:=ThisWorkbook.Path & "\帳簿.xlsx"
Dim A, B
'別ブックに転記
Set A = ThisWorkbook.Worksheets("Sheet1").Range("A2:D2")
Set B = Workbooks("帳簿.xlsx").Worksheets("Sheet1").Range("A" & Cells(Rows.Count, "A").End(xlUp).Row + 1)
A.Copy B
'別ブックを保存して、閉じる
Workbooks("帳簿.xlsx").Save
End Sub
No.1ベストアンサー
- 回答日時:
おはようございます。
マクロブックのセルA2:D2のデータを、帳簿へ記載するで良いでしょうか?
下記で、どうでしょうか?
①帳簿ファイルの一番下の行からひとつ下に転記させるにはどこをどう直したら良いでしょうか。
→Offset(行,列)が良いかと思います。 Offset(1)で1行下を指します。
②値だけの転記にする場合、どうしたらいいでしょうか。
よろしくお願いします。
→.Valueで、値の取得や設定ができます。
Private Sub CommandButton1_Click()
Workbooks("帳簿.xlsx").Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Offset(1).Resize(, 4).Value = _
ThisWorkbook.Worksheets("Sheet1").Range("A2:D2").Value
End Sub
No.3
- 回答日時:
#2です
ちょっと省略してしまいました。
学習の為に右辺が変化した時の場合に対応する形を示しておきます
B.Resize(, A.Count).Value = A.Value は
B.Resize(A.Rows.Count, A.Columns.Count).Value = A.Value
の省略です
No.2
- 回答日時:
こんにちは
すでに回答は出ていますが A.Copy B だけを書き変えるのであれば
B.Resize(, A.Count).Value = A.Value
.Value = .Valueで値の代入が出来ます。
ただし、左辺と右辺は同じサイズ(セル範囲の数)にする必要があります
なので、Resizeで 左辺を右辺のサイズで大きさを変えます。
(大きさが同じなら変えなくて良い)
Offset と Resize はとても便利なので、調べて覚えると良いと思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
【マクロ】違うフォルダにあるファイルから、転記するには?
Excel(エクセル)
-
Excel vbaで別ブックのコマンドボタンをクリック
Visual Basic(VBA)
-
-
4
【マクロ】【VBA】別ブックへのデータ転記について
Excel(エクセル)
-
5
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
6
VBA 空白行に転記する
Visual Basic(VBA)
-
7
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
8
別ブックへのエクセルマクロのデータ転記についてお知恵をお貸しください。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
VBAで別のブックにシートをコピ...
-
エクセル共有化のトラブル
-
VBAで別ブックのシートを指定し...
-
ACCESSでExcelにデータ出力、高...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
VBA 実行時エラー 2147024893
-
Excel2007VBAファイルの表示に...
-
Book間の移動
-
【ExcelVBA】zip圧縮されたCSV...
-
VBS Bookを閉じるコード
-
複数シート名とブック名が一致...
-
エクセルVBAで読み取りパスワー...
-
VBA 別ブックからコピペしたい...
-
新しく開いたブックをアクティ...
-
現在開いているbook全てを対象...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のエクセルファイルとシー...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
[Excel]ADODBでNull変換されて...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excelのマクロコードについて教...
-
Excel にて、 リストボックスの...
-
【ExcelVBA】インデックスが有...
-
VBA アプリケーション定義また...
-
【Excel VBA】表の列の値毎に分...
おすすめ情報