No.8ベストアンサー
- 回答日時:
日付でエラーがあった場合、エラー表示するようにしました。
以下のマクロと入れ替えてください。
----------------------------
Option Explicit
Public Sub 金銭出納帳作成()
Dim sh1, sh2 As Worksheet
Dim row1, row2, maxrow1 As Long
Dim kamoku1, kamoku2 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, "A").End(xlUp).Row 'Sheet1 A列最大行
row2 = 6
For row1 = 2 To maxrow1
'該当月であること
If IsDate(sh1.Cells(row1, "A").Value) = False Then
MsgBox ("試算表" & row1 & "行の日付が不正")
MsgBox (sh1.Cells(row1, "A").Text)
Exit Sub
End If
If Month(sh1.Cells(row1, "A").Value) = sh2.Cells(2, "A").Value Then
kamoku1 = sh1.Cells(row1, "C").Value
kamoku2 = sh1.Cells(row1, "G").Value
If kamoku1 = 20 Or kamoku1 = 30 Then '借方が現金又は預金
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "A").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "H").Value
sh2.Cells(row2, "C").Value = sh1.Cells(row1, "E").Value
row2 = row2 + 1
End If
If kamoku2 = 20 Or kamoku2 = 30 Then '貸方が現金又は預金
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "A").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "D").Value
sh2.Cells(row2, "D").Value = sh1.Cells(row1, "E").Value
row2 = row2 + 1
End If
End If
Next
MsgBox ("設定完了")
End Sub
-------------------------------------------
日付で空白のセルはないことが前提です。
No.7
- 回答日時:
1)試算表のA列は日付でセルの書式設定がm"月"d"日"の前提です。
違っていればコメントください。
2)金銭出納帳のA2は数値が前提です。
それともA2は日付で、セルの書式設定で月のみを表示するようにしていますか。(書式設定でmを設定)
どちらでしょうか。
No.6
- 回答日時:
以下のマクロを標準モジュールに登録してください。
----------------------------------------
Option Explicit
Public Sub 金銭出納帳作成()
Dim sh1, sh2 As Worksheet
Dim row1, row2, maxrow1 As Long
Dim kamoku1, kamoku2 As Variant
Set sh1 = Worksheets("試算表")
Set sh2 = Worksheets("金銭出納帳")
maxrow1 = sh1.Cells(Rows.Count, "A").End(xlUp).Row 'Sheet1 A列最大行
row2 = 6
For row1 = 2 To maxrow1
'該当月であること
If Month(sh1.Cells(row1, "A").Value) = sh2.Cells(2, "A").Value Then
kamoku1 = sh1.Cells(row1, "C").Value
kamoku2 = sh1.Cells(row1, "G").Value
If kamoku1 = 20 Or kamoku1 = 30 Then '借方が現金又は預金
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "A").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "H").Value
sh2.Cells(row2, "C").Value = sh1.Cells(row1, "E").Value
row2 = row2 + 1
End If
If kamoku2 = 20 Or kamoku2 = 30 Then '貸方が現金又は預金
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "A").Value
sh2.Cells(row2, "B").Value = sh1.Cells(row1, "D").Value
sh2.Cells(row2, "D").Value = sh1.Cells(row1, "E").Value
row2 = row2 + 1
End If
End If
Next
MsgBox ("設定完了")
End Sub
-------------------------------------------------
まだ、齟齬があるかもしれません。その場合は、補足してください。(備考欄は設定していません)
No.5
- 回答日時:
すみません。
再確認にさせてください。
1)日付は月が金銭出納帳のA2に一致する日付が対象となる。
2)勘定科目はC列が20又は30、G列が20又は30の科目が対象となる。
3)C列の入金
「現金が借方であればC列、貸方であればD列」ということですが、C列は、金額ではなく勘定科目のコードようにみえます。
D列は、勘定科目の文字です。そのようなものをC列の金額欄に設定する意味が不明です。
4)D列の出金
設定しませんが、よいですか。(前回の回答がありませんでした)
5)E列の残高
設定しませんが、よいですか。
6)金銭出納帳の6行目から設定しますが良いですか。(前回の回答がありませんでした)
No.4
- 回答日時:
No3です。
補足ありがとうございました。
1)試算表のレイアウトは添付の図であってますか。
2)金銭出納帳が4月の場合、試算表の日付は4月分のみの日付だけであるという前提で良いですか。
その場合、日付は無視して、20又は30のみをピックアップします。
それとも、試算表には、4月以外の月のデータもありますか。その場合は、4月のデータのみピックアップします。
3)試算表のC列(借方)が20又は30のみが抽出対象で良いですか。
4)設定項目は以下の内容であってますか。(不明点もあるので教えてください)
金銭出納帳 試算表
A列の月日 ← A列の月日
B列の勘定科目← D列の勘定科目
C列の入金 ← E列の金額
D列の出金 ← 不明(何を設定すれば良いですか、それとも0円でよいですか)
E列の残高 ← 入金があれば、前の行の残高に入金の金額を加算
出金があれば、前の行の残高から出金の金額を減算
F列の備考 ← I列の備考1
5)金銭出納帳の設定は6行目より行います(5行目までは設定されているものとします)が、
それでよろしいですか。
6)素朴な疑問ですが、20(現金)と30(普通預金)のみを金銭出納帳へまとめると、
勘定科目は、現金と普通預金のみが表示されるはずです。
添付された画像には、それ以外の科目も表示されていますが、それは無視して良いでしょうか。
No.3
- 回答日時:
No2です。
補足ありがとうございました。更に、補足をお願いします。
1)試算表シートのレイアウトもご提示ください。
2)試算表シートのF列が20又は30のものが、抽出対象でOKですか?
3)金銭出納帳を月別に作成したいとのことですが、提示されたシートは”金銭出納帳”の1枚です。
これが、4月分であることは、わかりますが、他の月(5,6,7月等・・・)は、同じシートに格納するのですか。
それとも、他のシートに格納するのですか。
月とシートの関係も明瞭にしてください。
No.1
- 回答日時:
>>件を20番&30番を一緒に抽出して金銭出納帳を月毎に作成したいのですが、良い方法を教えてください。
マクロでいろいろ処理されているなら、今やりたいことを処理するマクロを質問者さんが作ればいい。
マクロでいまいちできない部分があるなら、生成されたVBAプログラムを質問さんが手直しすればいいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Visual Basic(VBA) 2つの条件が一致したら一覧へコピーしたい。 左から4番目以降のシート名にコードが入ったシートを全て、 5 2022/09/20 19:41
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのデータについて
-
Excelの警告について
-
Excelのブック内のシートの色を...
-
セル内が空白設定なのに#N/Aと...
-
excelVBAについて。
-
UNIQUE関数、配列数式を使わず...
-
IEを使わずHTMLを取得する
-
エクセルの不調について
-
エクセルで、数字の下4桁の0を...
-
アクセス2016 エクセル2016 重...
-
1.5ヶ月分の費用按分 エクセル関数
-
11ケタの数字を打つと、エク...
-
エクセルの数式が分かりません
-
Excelで、毎月の月曜と金曜の合...
-
excelVBAについて。
-
【マクロ】複数の日付データをY...
-
エクセル数式に問題があります
-
Excelで合計を求めたいです
-
最新I/e?のキャッシュクリア
-
【マクロ】メッセージボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
エクセル:VBAで月変わりで、自...
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBA 別シートの複数の...
-
VBA:同じ文字列データの比...
-
エクセルVBAでの日付順のデ...
-
エクセルVBAで 2種のリストを...
-
EXCELマクロで全シート対...
-
歯抜けの時間を埋めて行の挿入
-
エクセル2007で、マクロで、結...
-
エクセルVBAで SendKeys "{TAB}"
-
VBAで条件が一致する行のデータ...
-
Excel VBA :2回目以降実行で貼...
-
Excel VBA 複数条件にマッチし...
-
Excel VBAでシート内全体に非表...
-
Excelマクロで空白セルを詰めて...
-
VBAで 任意図形のみ残してその...
-
VBAで複数シート選択
おすすめ情報
すみません宜しくお願いします。
すみません。マクロも簡単な抽出でシート毎に抽出しているだけです。
Sub 抽出()
' Macro2 Macro
Sheets("試算表").Range("A3:N5000").AdvancedFilter Action:=xlFilterCopy, _
criteriarange:=Range("C1:N3"), CopyToRange:=Range("C4:N5000"), Unique:= _
False
End Sub
Sub Aマクロ()
Sheets("現金出納").Select
Application.Run "江館H29年.xlsm!抽出"
Sheets("JAバンク一般").Select
コードの20番と30番は試算表シートの同列F列になります。宜しくお願いします。
有難うございます。A2の月を変える様に一つにシートで格納したいです。試算表の20(現金)と30(預金)だけが対象です。試算表のB列はMONTH関数です。画像が貼り付けられないので・・・
試算表のレイアウトは A B C D E F G H I G K 月日 項目 借方 勘定科目 金額 項 貸方 勘定科目1 備考1
4月3日 20 現金 100 1 1 売上
4月4日 20 現金 100 1 2 事業費
4月5日 20 現金 100 1 2 事業費
4月6日 1 1 会議費 20 20 現金
4月7日 2 1 総務部活動費 20 20 現金
4月8日 5 1 積立金 20 20 現金
4月9日 30 普通預金 20 1 2 事業費
です。
早速の回答有難うございます。レイアウトがずれていてすみません。添付のレイアウトで大体あってます。試算表には4月~3月までのデータも入力します。
金銭出納帳 試算表
A列の月日 ← A列の月日
B列の勘定科目← D列かH列の勘定科目(現金、普通預金の相手勘定)
C列の入金 ← E列の金額→20(現金が借方であればC列貸方であればD列)
列の出金 ← 不明(何を設定すれば良いですか、それとも0円でよいですか)
E列の残高 ← 入金があれば(こちらは入出金の計算式を入れるので重視しなくても大丈夫です)
宜しくお願いします。
こちらこそすみません。
1)A2の月が対象です。
2)C列が20又は30であればH列の勘定科目(反対にH列が20又は30であればD列の勘定科目)
3)4)すみません。E列の金額です。C列に20又は30であれば金銭出納帳の入金の行にH列であれば出金の行にです。ややこしくてすみません。
5)の残高は設定しなくて大丈夫です。
6)はい、金銭出納帳の6行目からで大丈夫です。
説明が下手ですみません、宜しくお願いします。
有難うございます。早速標準モジュールに貼り付けた所
For row1 = 2 To maxrow1
'該当月であること
If Month(sh1.Cells(row1, "A").Value) = sh2.Cells(2, "A").Value Then ※でエラー「型が一致しません」とでます。
1)試算表のA列は日付で
2)金銭出納帳のA2は、数値になってます。
宜しくお願いします。
tatsu99様ながなが有難うございます。
すごいです!有難うございました。補足が残り少なくなってしまったので、十分に確認してから
投稿したいと思います。根気よく教えて下さり有難うございます。感謝です!
tatsu99様昨日は本当に有難うございました。おかげさまで思い通りにデータが格納できました。
とてもうれしいです。コードを見て自分で備考欄も移すことが出来ました。ただ試算表のA列が最上行になっていてマクロを実行すると「試算表2行の日付が不正です」のメッセージがでます。試算表は4表めからなのでエラーが出てしまいます。そこで自分で考えて
maxrow1 = sh1.Cells(Rows.Count, "A").End(xlUp).Row 'Sheet1 A列最大行
row1=4
row2 = 6
と直したんですがそんな単純ではなかったようですね・・・maxrow1を全部消す?
どこにどういうコードを入力したら
row1が4行めからになるのか最後に教えていただきますか?ここまで大満足で本当に感謝しております。とても良い勉強になりました。