![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以前、別シートから検索値に一致したデータを別シートに抽出するという記述を教えて頂きました。
tatsu99様には大変お世話になりました。
Public Sub 金銭出納帳作成()
Dim sh1, sh2 As Worksheet
Dim row1, row2, maxrow1 As Long
Dim kamoku1, kamoku2, kamoku3 As Variant
Set sh1 = Worksheets("試算表")
Set sh2 = Worksheets("金銭出納帳")
If IsNumeric(sh2.Cells(2, "A").Value) = False Then
MsgBox ("金銭出納帳A2の値が不正")
MsgBox (sh2.Cells(2, "A").Value)
Exit Sub
End If
maxrow1 = sh1.Cells(Rows.Count, "C").End(xlUp).Row 'Sheet1 C列最大行
row2 = 6
For row1 = 4 To maxrow1
'該当月であること
If IsDate(sh1.Cells(row1, "C").Value) = False Then
MsgBox ("試算表" & row1 & "行の日付が不正")
MsgBox (sh1.Cells(row1, "C").Text)
Exit Sub
End If
If Month(sh1.Cells(row1, "C").Value) = sh2.Cells(2, "A").Value Then
kamoku1 = sh1.Cells(row1, "E").Value
kamoku2 = sh1.Cells(row1, "I").Value
kamoku3 = sh1.Cells(row1, "M").Value
If kamoku1 = 20 Or kamoku1 = 21 Then '借方が現金又は預金
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "C").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "K").Value
sh2.Cells(row2, "C").Value = sh1.Cells(row1, "G").Value
sh2.Cells(row2, "F").Value = sh1.Cells(row1, "M").Value
row2 = row2 + 1
End If
If kamoku2 = 20 Or kamoku2 = 21 Then '貸方が現金又は預金
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "C").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "F").Value
sh2.Cells(row2, "D").Value = sh1.Cells(row1, "G").Value
sh2.Cells(row2, "F").Value = sh1.Cells(row1, "M").Value
row2 = row2 + 1
End If
End If
Next
MsgBox ("設定完了")
End Sub
大変助かって使用させて頂いています。が、もう少し教えて頂きたく質問させて下さい。
kamoku1が20 kamoku2が21 あるいは、kamoku1が21 kamoku2が20の様に
借方が現金(預金)、貸方が預金(現金)の場合(預金から現金を引き出す場合)には、表示しない様に記述を教えて頂きますか。お願いします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67)
No.1ベストアンサー
- 回答日時:
前回回答した環境と異なっているので、こちらで動作確認はしていませんが、
以下のように修正(追加のみ)して下さい。
追加個所は追加①~追加④です。(以外は修正不要です)
---------------------------------------
If Month(sh1.Cells(row1, "C").Value) = sh2.Cells(2, "A").Value Then
kamoku1 = sh1.Cells(row1, "E").Value
kamoku2 = sh1.Cells(row1, "I").Value
kamoku3 = sh1.Cells(row1, "M").Value
If kamoku1 = 20 Or kamoku1 = 21 Then '借方が現金又は預金
If kamoku2 <> 20 And kamoku2 <> 21 Then '追加①
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "C").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "K").Value
sh2.Cells(row2, "C").Value = sh1.Cells(row1, "G").Value
sh2.Cells(row2, "F").Value = sh1.Cells(row1, "M").Value
row2 = row2 + 1
End If '追加②
End If
If kamoku2 = 20 Or kamoku2 = 21 Then '貸方が現金又は預金
If kamoku1 <> 20 And kamoku1 <> 21 Then '追加③
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "C").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "F").Value
sh2.Cells(row2, "D").Value = sh1.Cells(row1, "G").Value
sh2.Cells(row2, "F").Value = sh1.Cells(row1, "M").Value
row2 = row2 + 1
End If '追加④
End If
End If
早速のアンサー有難うございました。
思った通りに表示されました。Andと<>を使うではないかと思ってましたが・・
そういう事ですね。本当に有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 別シートの複数の...
-
Excel で行を指定回数だけコピ...
-
VBAで複数シート選択
-
VBA:同じ文字列データの比...
-
EXCELマクロで全シート対...
-
VBAで条件が一致する行のデータ...
-
excelの差込印刷で可視セルだけ...
-
【WORD差し込み印刷】複数レコ...
-
スマホ機種変更で旧機種のGoogl...
-
携帯修理出して戻ってきたら、L...
-
スマホの画面が割れてしまいま...
-
拡張子「.HUF(.huf)」のファ...
-
ドコモの電話帳バックアップに...
-
機種変更後、変更前の機種で使...
-
PC修理に出すのですが、個人情...
-
ケータイの電源がいきなり落ち...
-
外付けHDDをフローリングに落と...
-
ニコニコ動画にある動画を携帯...
-
携帯で音楽を聞きたいのですが・・
-
FOMAカード(UIM)異常
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
VBA:同じ文字列データの比...
-
エクセルVBA 別シートの複数の...
-
エクセル:VBAで月変わりで、自...
-
エクセルVBAで SendKeys "{TAB}"
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBAで 2種のリストを...
-
歯抜けの時間を埋めて行の挿入
-
Excel VBAでシート内全体に非表...
-
VBAで複数シート選択
-
EXCELマクロで全シート対...
-
Excel VBA :2回目以降実行で貼...
-
VBAで条件が一致する行のデータ...
-
VBAの指示の内容 昨日こちらで...
-
【WORD差し込み印刷】複数レコ...
-
エクセル シート保護後コメン...
-
Excelでデータの抽出&別シート...
-
エクセルVBAで実行時エラー...
おすすめ情報