テンプレート変更してみました。(´∀`*;)ゞ

 今日はテンプレートを変更してみました。前のテンプレートのデザインすごく気に入っていたんですが。最近エクセルのVBAのコードを掲載していたりしていたんですが。記事の幅が狭く、「 _ 」使って改行したり。コードが一行に収まりきれず。変なところで改行が入ってコードが見難くなってしまうので。幅のひろいこのテンプレートに変更しました。最初は前のテンプレートを編集してみたんですが、画面が崩れてしまい別のテンプレートを使わせてもらうことにしました。慣れないのでまだしっくりきませんが。
 気分転換になるかもしれませんん。
VBAのコードが収まるかテストです。
X:納期限の翌日から1ヶ月を経過するまでの金額
Option Explicit
Function XEntai(minou As Long, nouki As Date, keisanbi As Date) As Currency
Application.Volatile
If minou < 2000 Or (keisanbi <= nouki) Then
XEntai = 0
Exit Function
Else
If keisanbi <= nouki Then
XEntai = 0
Exit Function
End If
Dim Entai As Currency
Entai = WorksheetFunction.RoundDown(minou, -3) '1000円未満の端数切捨て
End If
Dim yokujitu As Date
yokujitu = nouki + 1
Dim AddOneMX As Date
AddOneMX = CDate(WorksheetFunction.EDate(yokujitu, 1) - 1)
'納期限の翌日のYYYYを求める
Dim iNen, eNen As Long
iNen = CLng(Format(yokujitu, "YYYY"))
eNen = CLng(Format(yokujitu, "YYYY") + 1)

Dim rituX, rituX1, rituX2 As Currency
Dim Days, Days1, Days2 As Long
Dim endbi, kaisibi As Date
Dim XEntai1, XEntai2 As Currency
Dim t As Range
Dim flagX As String
Set t = Range("利率設定").Find(What:=iNen)
flagX = t.Offset(0, 6)
'---------納期限が12月31日のときの処理1-----1月未満---------
If Format(nouki, "mmdd") = 1231 And keisanbi < AddOneMX Then
Days = DateDiff("D", yokujitu, keisanbi) + 1
rituX = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 5, False)
XEntai = WorksheetFunction.RoundDown(Entai * rituX * Days / 365, 0)
Exit Function
End If
'-------納期限が12月31日のときの処理2--------1月以上------------------------
If Format(nouki, "mmdd") = 1231 And keisanbi > AddOneMX Then
Days = DateDiff("D", yokujitu, AddOneMX) + 1
rituX = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 5, False)
XEntai = WorksheetFunction.RoundDown(Entai * rituX * Days / 365, 0)
Exit Function
End If
'------1ヶ月未満、年はまたがない---------------------------------------------
If keisanbi < AddOneMX And iNen = iNen Then
Days = DateDiff("D", yokujitu, keisanbi) + 1
rituX = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 5, False)
XEntai = WorksheetFunction.RoundDown(Entai * rituX * Days / 365, 0)
Exit Function
End If

'1ヶ月を経過しないで年をまたぐときの処理----------------------------------------
If keisanbi < AddOneMX And iNen < eNen Then
endbi = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 3, False)
kaisibi = WorksheetFunction.VLookup(eNen, Sheets("利率").Range("利率設定"), 2, False)
Days1 = DateDiff("D", yokujitu, endbi) + 1
Days2 = DateDiff("D", kaisibi, keisanbi) + 1
rituX1 = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 5, False)
rituX2 = WorksheetFunction.VLookup(eNen, Sheets("利率").Range("利率設定"), 5, False)
If flagX = True Then
XEntai1 = Entai * rituX1 * Days1 / 365
XEntai2 = Entai * rituX2 * Days2 / 365
XEntai = WorksheetFunction.RoundDown(XEntai1 + XEntai2, 0)
Else
XEntai1 = WorksheetFunction.RoundDown(Entai * rituX1 * Days1 / 365, 0)
XEntai2 = WorksheetFunction.RoundDown(Entai * rituX2 * Days2 / 365, 0)
XEntai = WorksheetFunction.RoundDown(XEntai1 + XEntai2, 0)
End If
Exit Function
End If
'--------------年越し処理2-----------
If CLng(Format(yokujitu, "YYYY")) < CLng(Format(AddOneMX, "YYYY")) And _
AddOneMX < keisanbi Then
endbi = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 3, False)
kaisibi = WorksheetFunction.VLookup(eNen, Sheets("利率").Range("利率設定"), 2, False)
Days1 = DateDiff("D", yokujitu, endbi) + 1
Days2 = DateDiff("D", kaisibi, AddOneMX) + 1
rituX1 = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 5, False)
rituX2 = WorksheetFunction.VLookup(eNen, Sheets("利率").Range("利率設定"), 5, False)
If flagX = True Then
XEntai1 = Entai * rituX1 * Days1 / 365
XEntai2 = Entai * rituX2 * Days2 / 365
XEntai = WorksheetFunction.RoundDown(XEntai1 + XEntai2, 0)
Else
XEntai1 = WorksheetFunction.RoundDown(Entai * rituX1 * Days1 / 365, 0)
XEntai2 = WorksheetFunction.RoundDown(Entai * rituX2 * Days2 / 365, 0)
XEntai = WorksheetFunction.RoundDown(XEntai1 + XEntai2, 0)
End If
Exit Function
Set t = Nothing
Else
'-------------------その他のケース------------------------------------------
Days = DateDiff("D", yokujitu, AddOneMX) + 1
rituX = WorksheetFunction.VLookup(iNen, Sheets("利率").Range("利率設定"), 5, False)
XEntai = WorksheetFunction.RoundDown(Entai * rituX * Days / 365, 0)
Exit Function
End If
End Function

↑Tabをスペースに変換するの忘れました。見にくいですね
関連記事
スポンサーサイト



テーマ : エクセル
ジャンル : コンピュータ

コメントの投稿

非公開コメント

訪問者さま
カレンダー
09 | 2020/10 | 11
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
プロフィール

arakurikaesiki

Author:arakurikaesiki
阿良々木(あらくりかえしき)と申します。趣味はらくがき/アクアリウム、好きな小説は物語シリーズです。あと、仕事で楽したいためにExcelのVBAをちょくちょくいじってます。
なお、当ブログはリンクフリーです、よろしければリンク貼ってください。
また、ブロともさまも募集中です。コメントとかもらえるとすごく喜びます。

ブロとも様募集中ですm(_)m

この人とブロともになる

最新コメント
リンク(敬称略)
らくがき
新着記事
参照不可? Oct 20, 2020
基幹システムの入れ替えと使えなくなるファイルメーカー Sep 30, 2020
季節の変わり目 Sep 01, 2020
ロード長くね? Aug 19, 2020
ルフィを描いてみた Aug 17, 2020
囲んで塗る? Aug 14, 2020
100.00cm Aug 12, 2020
サメ Aug 08, 2020
チョット多すぎる Aug 08, 2020
・・・・・・ Aug 06, 2020
カテゴリ
アクセスランキング
[ジャンルランキング]
ブログ
3191位
アクセスランキングを見る>>

[サブジャンルランキング]
イラストブログ
115位
アクセスランキングを見る>>
にほんブログ村(ビオトープ)
月別アーカイブ
人気ブログランキング
更新通知登録ボタン

更新通知で新しい記事をいち早くお届けします

検索フォーム