前回、入金取引か出金取引かの判別をしました。
今までの処理で会計ソフトにインポートするのに必要な情報のうち、
日付、預金科目の貸借どちらか、金額、摘要です。(金額と摘要は移すだけです。)
ここまでのVBAの処理をまとめてみます。
続きを読む
前回、入金取引か出金取引かの判別をしました。
今までの処理で会計ソフトにインポートするのに必要な情報のうち、
日付、預金科目の貸借どちらか、金額、摘要です。(金額と摘要は移すだけです。)
ここまでのVBAの処理をまとめてみます。
続きを読む
前回は日付の書式が全て統一されていたので、同じ処理を繰り返せばいいのですが、
今回は、一部は日付形式になっているが、なっていないものと混ざっている場合の処理です。
VBAコードは次の通りです。
Sub 日付変換()
Dim a As Integer
a = 2
Do Until Cells(a, 1).Value = “”
If Right(Cells(a, 1).Value, 1) = “メ” Then
Cells(a, 2).Value = Left(Cells(a, 1).Value, 4) & “/” & Mid(Cells(a, 1).Value, 6, 2) & “/” & Mid(Cells(a, 1).Value, 9, 2)
Else
Cells(a, 2).Value = Cells(a, 1)
End If
a = a + 1
Loop
End Sub
ネットバンキングのデータは、機械がはき出すので、必ず何らかの規則性が存在します。
今回は、日付形式とテキスト形式の違いは、セルの一番右端の値が、”メ”かどうかです。
ですので、VBAコードでは、
If Right(Cells(a, 1).Value, 1) = “メ” Then
テキスト文字の処理
Else
日付の形式の処理
EndIf
としています。
2パターンの処理を解説しましたが、ネットバンキングからはきだした形式が日付形式であればそのまま
使えますが、そうでない場合の方が恐らく多いと思います。
そのときは、面倒ですが、セルを分解してくっつけるというやり方で日付形式に変更します。
一度VBAで変換する仕組みを作ってしまえば、次からは実行するだけで日付形式に変換できます。
変数を使って一度にまとめて日付の形式に変換します。
B列に日付に変換したデータを入れていきます。
続きを読む
今まで一つずつ抜き出して、セルに値を入れてきましたが、これをVBAで一発で日付
に変換します。
Sub 日付変換()
Cells(1, 5).Value = Left(Cells(1, 1).Value, 4) & “/” & Mid(Cells(1, 1).Value, 6, 2) & “/” & Mid(Cells(1, 1).Value, 9, 2)
Cells(3, 5).Value = Mid(Cells(3, 1).Value, 2, 2) + 1988 & “/” & Mid(Cells(3, 1).Value, 5, 2) & “/” & Right(Cells(3, 1).Value, 2)
End Sub
ちなみに、
Cells(1,1)はA1
Cells(3,1)はC1です。
このコードを実行すると、一見日付形式に変更できなさそうなものでも、変換できます。
ネットバンキングのデータをまとめて変換するときは、現金出納帳のときと同様に変数を使って
全ての行を一気に直していきます。
日付の変更の仕方は、まず年・月・日にセルを分解して、
_&_”/”_&_ (_は半角スペース)で繋ぎ直すと覚えて下さい。
金額が0の行を削除するコードです。
マクロの記録したときのコードです。
Rows(“4:4”).Select
Selection.Delete Shift:=xlUp
マクロで記録したものを
Rows(“b:b”).Select
Selection.Delete Shift:=xlUp
と変更してもうまく動きません。ですので若干の修正をします。
続きを読む
今まで繰り返し処理は、Do Until ~Loopを使っていましたが、
行を削除する場合は、このやり方だとうまくいきません。
簡単に言うと、
一行削除した場合、下の行が繰り上がり、行番号はそのままです。
例えば、10行目を削除すると、削除する前は11行目のデータが10
行目に繰り上がります。
続きを読む
会計ソフトにテキストファイルのデータをインポートする場合、どうしても
金額0の不要な行が出てきてしまいます。
続きを読む
テキストファイルのデータに一行追加します。
マクロを実行する前に、Sheet3の得意先にデータを登録しておけば問題ないのですが、
追加しないでマクロを実行すると次のエラーが表示されます。
続きを読む
VBAではVBAの関数は当然使えますが、通常のシート関数も使えます。
しかし、その使う関数が、VBAの関数なのか、通常のシート関数なのか区別するために
通常のシート関数の前には必ず
WorksheetFunction.
と宣言します。そうすることで、シート関数をVBAでも使えます。
続きを読む