質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

1965閲覧

VBA転記がうまくいきません

sakura12

総合スコア3

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/10/01 12:47

何度も大変申し訳ございません。
昨日、下記のような質問をさせていただき、ご回答をいただいたのですが、

シート1
(転記元)
A B
1 日付 2021/10/2
2 家賃 80,000
3 光熱費 15,000
4 食費 58,000

という数値が入っています。
※こちらは、B1,B2,B3,B4に毎日、入力更新していきます。

シート2
(転記先)
A   B   C   D ・・・・
1 日付 2021/9/30 2021/10/1 2021/10/2 ・・・・
2 家賃 50,000 38,000 80,000  ・・・・
3 光熱費 10,000 12,000 15,000  ・・・・
4 食費  80,000 73,000 58,000  ・・・・

転記先の日付は事前に入力しておりますが、
転記元の日付と転記先の日付が合致することで、
転記先の2,3,4行を転記したいです。

別シートにある条件に合致したセルに転記したい場合、
VBAの記述の仕方が知りたいと思っております。

※こちら、毎日更新し、
更新ボタンを転記元か転記先に作り、そのボタンを押すことで
自動更新するような形にできないかと考えております。
ボタンの作成の仕方やマクロの登録の仕方はわかります。

私が初めて、コードを書いており、多分、間違いが多いかと思います。
ご教授いただけますと幸いです。

いただいた回答

Sub 登録()
Dim ThisSh As Worksheet
Dim ThisCh As Worksheet
Dim Col As Long
Dim Rws As Long

Set ThisSh = ThisWorkbook.Sheets("Sheet1") Set ThisCh = ThisWorkbook.Sheets("Sheet2") Col = ThisCh.Range("1:1").Find(What:=ThisSh.Range("B1").Value).Column Rws = ThisCh.Range("A:A").Find(What:=ThisCh.Range("A2").Value).Row ThisCh.Cells(Rws, Col).Value = ThisSh.Range("B2").Value Rws = ThisCh.Range("A:A").Find(What:=ThisCh.Range("A3").Value).Row ThisCh.Cells(Rws, Col).Value = ThisSh.Range("B3").Value Rws = ThisCh.Range("A:A").Find(What:=ThisCh.Range("A4").Value).Row ThisCh.Cells(Rws, Col).Value = ThisSh.Range("B4").Value Set ThisSh = Nothing Set ThisCh = Nothing

End Sub

こちら、日付の部分を整数(数値)1や2、3等に変更して
同じように行ったのですが、転記がうまくできません。

シート1
(転記元)B1に3と入れ
マクロを起動させると(転記先)のA1に転記されたり
転記がうまくいきません。

理由が知りたいと思っています。

また、どのように対策することで、きちんと転記されますでしょうか?
ご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jinoji

2021/10/01 15:07

一見問題なさそうに見えます。 Step実行するなどして、どこでおかしくなるのか探ってみては?
guest

回答2

0

ベストアンサー

VBA

1Dim moto As Worksheet 2Dim saki As Worksheet 3Dim motoData As Variant 4 5motoData = moto.Range("B1:B4").Value 6saki.Columns(WorksheetFunction.Match(motoData(1, 1), saki.Range("1:1"), 0)).Resize(UBound(motoData, 1)).Value = motoData 7

投稿2021/10/02 00:55

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura12

2021/10/02 07:34

こちらのVBAでもう一度試してみます!! ありがとうございました。
guest

0

VBA

1![イメージ説明](e6a02891dbafc889665fb128bf846815.png) 2Option Explicit 3Dim 日付 As Date 4Dim 家賃 As Long 5Dim 光熱費 As Long 6 7Dim 食費 As Long 8Dim i As Long, n As Long 9Sub Macro1() 10 11Sheets("入力").Select 12日付 = Range("B2").Value 13 家賃 = Range("B3").Value 14 光熱費 = Range("B4").Value 15 食費 = Range("B5").Value 16 17 Sheets("家計簿").Select 18 n = Cells(1, Columns.Count).End(xlToLeft).Column 19 For i = 2 To n 20 If 日付 = Cells(1, i) Then 21 Cells(2, i).Value = 家賃 22 Cells(3, i).Value = 光熱費 23 Cells(4, i).Value = 食費 24 Sheets("入力").Select 25 Exit Sub 26 End If 27 Next i 28 29End Sub

投稿2021/10/01 15:06

編集2021/10/01 22:36
syousuke.33

総合スコア312

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura12

2021/10/02 07:35

ご丁寧に本当にありがとうございました! こちらも実行してみます。とても助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問