メールマガジン【アクセスで作るシリーズ】
バックナンバー 【会計ソフト編】 Vol.34
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【会計ソフト編】
発 行 : Yoshihisa Fukuda 2000.11.25 Vol.34
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、青色申告決算書のフォーム作成の集計プログラム作成の続きです。
== ◇ 第3章 帳票 ====================
--------------------------------------
3-3 青色申告決算書
--------------------------------------
--------------------------------------
3-3-2 フォーム作成(続き)
--------------------------------------
前回は貸借対照表の集計サブルーチンを作成しました。
今回は損益計算書の集計サブルーチンを作成します。
1.青色申告決算書のフォームをデザインビューで開きます。
2.メニューの[表示]-[コード]を選択し、モジュールウィンドウを開きます。
3.カーソルをモジュールウィンドウの一番下(何もない所)まで移動し、以下の
ように入力したらエンターキーを押します。
Private Function PLCalc()
4.すると一行空いて、その下に End Function と自動的に表示されます。
5.このサブルーチン(Private Function PLCalc() と End Function の間)の
中に以下のコードを記述します。
Dim ACC_DB As Database
Dim Base_T As Recordset
Dim Kamo_T As Recordset
Dim PL_T As Recordset
Dim KariTotal As Currency
Dim KasiTotal As Currency
Dim FindDate As String
Dim FindStr As String
Dim I As Integer
Dim FieldName As String
FindDate = "DenpyoDate >= #" & Me![StartDate] & "# AND DenpyoDate <= #" & _
Me![EndDate] & "# AND "
Set ACC_DB = CurrentDb
Set Kamo_T = ACC_DB.OpenRecordset("KamokuTable")
Set Base_T = ACC_DB.OpenRecordset("BaseTable")
Set PL_T = ACC_DB.OpenRecordset("PLTable", dbOpenDynaset)
Base_T.MoveFirst
Kamo_T.MoveFirst
PL_T.AddNew
PL_T.Fields("Address1").Value = Base_T.Fields("Address1").Value
PL_T.Fields("Address2").Value = Base_T.Fields("Address2").Value
PL_T.Fields("Syozai1").Value = Base_T.Fields("Syozai1").Value
PL_T.Fields("Syozai2").Value = Base_T.Fields("Syozai2").Value
PL_T.Fields("Gyousyu").Value = Base_T.Fields("Gyousyu").Value
PL_T.Fields("Yagou").Value = Base_T.Fields("Yagou").Value
PL_T.Fields("Kana").Value = Base_T.Fields("Kana").Value
PL_T.Fields("Name").Value = Base_T.Fields("Name").Value
PL_T.Fields("Tel1").Value = Base_T.Fields("Tel").Value
PL_T.Fields("Tel2").Value = Base_T.Fields("Fax").Value
PL_T.Fields("StartDate").Value = Me![StartDate]
PL_T.Fields("EndDate").Value = Me![EndDate]
While Kamo_T.EOF = False
FindStr = FindDate & "KasiKamoID <> 1 AND KariKamoID = " & _
Kamo_T.Fields("KamokuID")
KariTotal = Nz(DSum("KariAmount", "SiwakeTable", FindStr), 0)
FindStr = FindDate & "KariKamoID <> 1 AND KasiKamoID = " & _
Kamo_T.Fields("KamokuID")
KasiTotal = Nz(DSum("KasiAmount", "SiwakeTable", FindStr), 0)
If Kamo_T.Fields("KamokuKind") = 4 And _
Kamo_T.Fields("BoxNo").Value <> 0 Then
' 収益科目集計
I = Kamo_T.Fields("BoxNo").Value
FieldName = "KamokuName" & I
PL_T.Fields(FieldName).Value = Kamo_T.Fields("KamokuName").Value
FieldName = "ZanDaka" & I
PL_T.Fields(FieldName).Value = PL_T.Fields(FieldName).Value + _
Nz(Kamo_T.Fields("ZanDaka").Value) - KariTotal + KasiTotal
End If
If Kamo_T.Fields("KamokuKind") = 5 And _
Kamo_T.Fields("BoxNo").Value <> 0 Then
' 経費科目集計
I = Kamo_T.Fields("BoxNo").Value
FieldName = "KamokuName" & I
PL_T.Fields(FieldName).Value = Kamo_T.Fields("KamokuName").Value
FieldName = "ZanDaka" & I
PL_T.Fields(FieldName).Value = PL_T.Fields(FieldName).Value + _
Nz(Kamo_T.Fields("ZanDaka").Value) + KariTotal - KasiTotal
End If
Kamo_T.MoveNext
Wend
PL_T.Fields("ZanDaka44").Value = Base_T.Fields("Koujyo").Value
PL_T.Update
PL_T.Close
Kamo_T.Close
Base_T.Close
ACC_DB.Close
ここまでです。
6.[×]ボタンを押してモジュールウィンドウを閉じます。
これで、損益計算書の集計を行うプログラムのサブルーチンが出来上がりです。
--------------------------------------
次回は損益計算書のレポートを作成します。
______________________________________
◆◇ 解説コーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
前回のVol.33発行の後、以下のようなメールを戴きました。
Vol.33のVBAをもう少し詳しく解説していただけるとありがたいのですが。
特に12行目のFindDateのあたりをお願します。
そこで、今回は、ワンポイントコーナーとQ&Aコーナーを合体して解説コーナー
と言うことで、解説を行いたいと思います。
取りあえず損益計算書で解説しますが、貸借対照表も、ほぼ同様なので解って
頂けると思います。
まず、最初に出てくるDim文は特に問題無いと思います。
書式は Dim 変数名 as 変数の型 となります。
次に、メールでご指摘がありました、FindDateですが、7行目のDim文で宣言して
ある通りで、このFindDateと言うのは、ただの文字列型変数にしかすぎません。
ですから、12行目のFindDate = ・・・の文では、"DenpyoDate >= #" &
Me![StartDate] & "# AND DenpyoDate <= #" & Me![EndDate] & "# AND " という
条件を書いた文字列がFindDateと言う変数に代入されます。
この条件式の内容は
DenpyoDate >= #" & Me![StartDate] & "# と
DenpyoDate <= #" & Me![EndDate] & "# の2つの条件の論理積(AND条件で両方
の条件を満たす時)という条件を表しています。
詳しく見ると DenpyoDate >= #" & Me![StartDate] & "# は DenpyoDate(伝票
日付)が Meより
同じか大きい と言う条件と
DenpyoDate <= #" & Me![EndDate] & "# は DenpyoDate(伝票日付)が
Meより同じか小さい
と言う条件を両方満たすもの、と言うことになる訳です。
ここで、Me![StartDate]とMe![EndDate]を # の文字で挟んでいますが、これは
日付を取り扱う時のルールで#で挟むと日付として認識してくれます。
(詳しくはヘルプにも載っているので、そちらも読んでみて下さい)
最後に、 AND が付いているのは、この後にまだ、条件式が追加されるためで、
それが39行目と42行目のFindStr = ・・・ の所です。
ここでは、FindStrという文字列型変数にFindDateと科目の条件を足した条件を
代入しています。
FindDateの条件を満たした上で、且つ科目の抽出条件を満たしたもの、という条件
になる訳です。
15行目に戻って、Set文ですが、これはデータベース及び、テーブルをオープン
し、読み書き出来るようにするためで、これも特に問題無いと思います。
20・21行目の Base_T.MoveFirst と Kamo_T.MoveFirst は基本情報テーブル
と科目テーブルのカレントレコードをMoveFirstメソッドで先頭に移動している訳
ですが、通常テーブルをオープンした時はカレントレコードは先頭にあるのですが
私は、明示的に必ず、最初にカレントレコードをセットする様に意識しています。
23行目の PL_T.AddNew はPLTableにレコードを追加するためで、AddNewメソッド
を使用します。
レコードを追加する際の手順はAddNewメソッドを行い、フィールドにデータを設定
して、最後にUpdateメソッドで実際にレコードが作成されます。
25~36行目は、PLTableに追加するレコードのフィールドにデータを代入して
います。これも特に問題無いでしょう。
38行目のWhile文は科目テーブルがEOF(ファイルの最後)になるまでWhile文の
中を繰り返します。
41・44行目のKariTotalとKasiTotalは、科目の借方金額、貸方金額の合計が
計算されます。
Dsum関数は指定したテーブルのあるフィールドの値を合計する関数ですが、合計
するデータの抽出条件を指定する事ができます。
DSum("KariAmount", "SiwakeTable", FindStr)はSiwakeTableのデータでFindStr
の条件を満たすデータを抽出し、その中のKariAmountフィールドの値を合計する
と言う意味です。
FindDate及び、FindStrは、この仕訳データを集計する際の条件式を入れた変数
です。
ですから、変数を使わずにDsum関数の第3引数に直接FindStr変数の内容を書いて
も構いませんが、プログラムとしてはあまり良いプログラムとは言えないでしょう。
後は、集計結果をPLTableに書き込むだけですが、科目の科目種別により加減算が
変わってきます。
収益科目は借方がマイナス、貸方がプラスの科目で、経費科目は借方がプラスで
貸方がマイナスになります。(本来、ここでは勘定科目設定にある貸借区分も関係
してくるのですが、一度にやると少し複雑になるので、第5章 拡張機能にて追加
しようと思います)
そこで、45・46行目と55・56行目のIf文でそれぞれ、収益科目と経費科目
を判断しています。(貸借対照表も資産、負債、資本を同様に判断しています)
このIf文にAND条件で Kamo_T.Fields("BoxNo").Value <> 0 と言うのが付いていま
すが、これは勘定科目設定の決算書枠番号が0のもの(即ち決算書に出力しない
未使用の科目)を除く為の条件です。
48・49行目と58・59行目の I = Kamo_T.Fields("BoxNo").Value と
FieldName = "KamokuName" & I ですが、これはPLTableの書き込むフィールド名
を設定しています。
これで、FieldNameはKmaokuNameX(Xは決算書枠番号)となり、PLTableの
KamokuName1~KmaokuName45までのフィールドに科目名を設定しています。
51・61行目の FieldName = "ZanDaka" & I も同様で、これで ZanDaka1~
ZanDaka45までのフィールドに集計した残高を設定しています。
50・60行目の
PL_T.Fields(FieldName).Value = Kamo_T.Fields("KamokuName").Value は科目名
を設定しています。
52・53行目と62・63行目では、それぞれ残高を計算し設定しています。
収益科目では勘定科目の残高-借方金額合計+貸方金額合計となり
経費科目では勘定科目の残高+借方金額合計-貸方金額合計となります。
65行目の Kamo_T.MoveNext は科目テーブルのレコードをMoveNextメソッドで
次のレコードに移動しています。
66行目の Wend は38行目のWhile文がここまでと言う意味で、科目テーブルの
レコードの数分、38行目から66行目までを繰り返す事になります。
68行目の PL_T.Fields("ZanDaka44").Value = Base_T.Fields("Koujyo").Value
は青色申告特別控除額を基本情報から設定しています。
70行目の PL_T.Update でPLTableのレコードの書き込みが行われます。
72~75行目で、15~18行目でオープンしたテーブル、及びデータベースを
クローズしています。
以上が、貸借対照表、損益計算書の集計サブルーチンの説明です。
まだ、解らない部分があれば、メールでご質問下さい。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【会計ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :y.fukuda@ro.bekkoame.ne.jp
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000030446)
◇ バックナンバー:http://www.bekkoame.ne.jp/ro/y.fukuda/
◇ 登録・解除 :http://www.bekkoame.ne.jp/ro/y.fukuda/
Copyright(C) 2000 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【会計ソフト編】
発 行 : Yoshihisa Fukuda 2000.11.25 Vol.34
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、青色申告決算書のフォーム作成の集計プログラム作成の続きです。
== ◇ 第3章 帳票 ====================
--------------------------------------
3-3 青色申告決算書
--------------------------------------
--------------------------------------
3-3-2 フォーム作成(続き)
--------------------------------------
前回は貸借対照表の集計サブルーチンを作成しました。
今回は損益計算書の集計サブルーチンを作成します。
1.青色申告決算書のフォームをデザインビューで開きます。
2.メニューの[表示]-[コード]を選択し、モジュールウィンドウを開きます。
3.カーソルをモジュールウィンドウの一番下(何もない所)まで移動し、以下の
ように入力したらエンターキーを押します。
Private Function PLCalc()
4.すると一行空いて、その下に End Function と自動的に表示されます。
5.このサブルーチン(Private Function PLCalc() と End Function の間)の
中に以下のコードを記述します。
Dim ACC_DB As Database
Dim Base_T As Recordset
Dim Kamo_T As Recordset
Dim PL_T As Recordset
Dim KariTotal As Currency
Dim KasiTotal As Currency
Dim FindDate As String
Dim FindStr As String
Dim I As Integer
Dim FieldName As String
FindDate = "DenpyoDate >= #" & Me![StartDate] & "# AND DenpyoDate <= #" & _
Me![EndDate] & "# AND "
Set ACC_DB = CurrentDb
Set Kamo_T = ACC_DB.OpenRecordset("KamokuTable")
Set Base_T = ACC_DB.OpenRecordset("BaseTable")
Set PL_T = ACC_DB.OpenRecordset("PLTable", dbOpenDynaset)
Base_T.MoveFirst
Kamo_T.MoveFirst
PL_T.AddNew
PL_T.Fields("Address1").Value = Base_T.Fields("Address1").Value
PL_T.Fields("Address2").Value = Base_T.Fields("Address2").Value
PL_T.Fields("Syozai1").Value = Base_T.Fields("Syozai1").Value
PL_T.Fields("Syozai2").Value = Base_T.Fields("Syozai2").Value
PL_T.Fields("Gyousyu").Value = Base_T.Fields("Gyousyu").Value
PL_T.Fields("Yagou").Value = Base_T.Fields("Yagou").Value
PL_T.Fields("Kana").Value = Base_T.Fields("Kana").Value
PL_T.Fields("Name").Value = Base_T.Fields("Name").Value
PL_T.Fields("Tel1").Value = Base_T.Fields("Tel").Value
PL_T.Fields("Tel2").Value = Base_T.Fields("Fax").Value
PL_T.Fields("StartDate").Value = Me![StartDate]
PL_T.Fields("EndDate").Value = Me![EndDate]
While Kamo_T.EOF = False
FindStr = FindDate & "KasiKamoID <> 1 AND KariKamoID = " & _
Kamo_T.Fields("KamokuID")
KariTotal = Nz(DSum("KariAmount", "SiwakeTable", FindStr), 0)
FindStr = FindDate & "KariKamoID <> 1 AND KasiKamoID = " & _
Kamo_T.Fields("KamokuID")
KasiTotal = Nz(DSum("KasiAmount", "SiwakeTable", FindStr), 0)
If Kamo_T.Fields("KamokuKind") = 4 And _
Kamo_T.Fields("BoxNo").Value <> 0 Then
' 収益科目集計
I = Kamo_T.Fields("BoxNo").Value
FieldName = "KamokuName" & I
PL_T.Fields(FieldName).Value = Kamo_T.Fields("KamokuName").Value
FieldName = "ZanDaka" & I
PL_T.Fields(FieldName).Value = PL_T.Fields(FieldName).Value + _
Nz(Kamo_T.Fields("ZanDaka").Value) - KariTotal + KasiTotal
End If
If Kamo_T.Fields("KamokuKind") = 5 And _
Kamo_T.Fields("BoxNo").Value <> 0 Then
' 経費科目集計
I = Kamo_T.Fields("BoxNo").Value
FieldName = "KamokuName" & I
PL_T.Fields(FieldName).Value = Kamo_T.Fields("KamokuName").Value
FieldName = "ZanDaka" & I
PL_T.Fields(FieldName).Value = PL_T.Fields(FieldName).Value + _
Nz(Kamo_T.Fields("ZanDaka").Value) + KariTotal - KasiTotal
End If
Kamo_T.MoveNext
Wend
PL_T.Fields("ZanDaka44").Value = Base_T.Fields("Koujyo").Value
PL_T.Update
PL_T.Close
Kamo_T.Close
Base_T.Close
ACC_DB.Close
ここまでです。
6.[×]ボタンを押してモジュールウィンドウを閉じます。
これで、損益計算書の集計を行うプログラムのサブルーチンが出来上がりです。
--------------------------------------
次回は損益計算書のレポートを作成します。
______________________________________
◆◇ 解説コーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
前回のVol.33発行の後、以下のようなメールを戴きました。
Vol.33のVBAをもう少し詳しく解説していただけるとありがたいのですが。
特に12行目のFindDateのあたりをお願します。
そこで、今回は、ワンポイントコーナーとQ&Aコーナーを合体して解説コーナー
と言うことで、解説を行いたいと思います。
取りあえず損益計算書で解説しますが、貸借対照表も、ほぼ同様なので解って
頂けると思います。
まず、最初に出てくるDim文は特に問題無いと思います。
書式は Dim 変数名 as 変数の型 となります。
次に、メールでご指摘がありました、FindDateですが、7行目のDim文で宣言して
ある通りで、このFindDateと言うのは、ただの文字列型変数にしかすぎません。
ですから、12行目のFindDate = ・・・の文では、"DenpyoDate >= #" &
Me![StartDate] & "# AND DenpyoDate <= #" & Me![EndDate] & "# AND " という
条件を書いた文字列がFindDateと言う変数に代入されます。
この条件式の内容は
DenpyoDate >= #" & Me![StartDate] & "# と
DenpyoDate <= #" & Me![EndDate] & "# の2つの条件の論理積(AND条件で両方
の条件を満たす時)という条件を表しています。
詳しく見ると DenpyoDate >= #" & Me![StartDate] & "# は DenpyoDate(伝票
日付)が Meより
同じか大きい と言う条件と
DenpyoDate <= #" & Me![EndDate] & "# は DenpyoDate(伝票日付)が
Meより同じか小さい
と言う条件を両方満たすもの、と言うことになる訳です。
ここで、Me![StartDate]とMe![EndDate]を # の文字で挟んでいますが、これは
日付を取り扱う時のルールで#で挟むと日付として認識してくれます。
(詳しくはヘルプにも載っているので、そちらも読んでみて下さい)
最後に、 AND が付いているのは、この後にまだ、条件式が追加されるためで、
それが39行目と42行目のFindStr = ・・・ の所です。
ここでは、FindStrという文字列型変数にFindDateと科目の条件を足した条件を
代入しています。
FindDateの条件を満たした上で、且つ科目の抽出条件を満たしたもの、という条件
になる訳です。
15行目に戻って、Set文ですが、これはデータベース及び、テーブルをオープン
し、読み書き出来るようにするためで、これも特に問題無いと思います。
20・21行目の Base_T.MoveFirst と Kamo_T.MoveFirst は基本情報テーブル
と科目テーブルのカレントレコードをMoveFirstメソッドで先頭に移動している訳
ですが、通常テーブルをオープンした時はカレントレコードは先頭にあるのですが
私は、明示的に必ず、最初にカレントレコードをセットする様に意識しています。
23行目の PL_T.AddNew はPLTableにレコードを追加するためで、AddNewメソッド
を使用します。
レコードを追加する際の手順はAddNewメソッドを行い、フィールドにデータを設定
して、最後にUpdateメソッドで実際にレコードが作成されます。
25~36行目は、PLTableに追加するレコードのフィールドにデータを代入して
います。これも特に問題無いでしょう。
38行目のWhile文は科目テーブルがEOF(ファイルの最後)になるまでWhile文の
中を繰り返します。
41・44行目のKariTotalとKasiTotalは、科目の借方金額、貸方金額の合計が
計算されます。
Dsum関数は指定したテーブルのあるフィールドの値を合計する関数ですが、合計
するデータの抽出条件を指定する事ができます。
DSum("KariAmount", "SiwakeTable", FindStr)はSiwakeTableのデータでFindStr
の条件を満たすデータを抽出し、その中のKariAmountフィールドの値を合計する
と言う意味です。
FindDate及び、FindStrは、この仕訳データを集計する際の条件式を入れた変数
です。
ですから、変数を使わずにDsum関数の第3引数に直接FindStr変数の内容を書いて
も構いませんが、プログラムとしてはあまり良いプログラムとは言えないでしょう。
後は、集計結果をPLTableに書き込むだけですが、科目の科目種別により加減算が
変わってきます。
収益科目は借方がマイナス、貸方がプラスの科目で、経費科目は借方がプラスで
貸方がマイナスになります。(本来、ここでは勘定科目設定にある貸借区分も関係
してくるのですが、一度にやると少し複雑になるので、第5章 拡張機能にて追加
しようと思います)
そこで、45・46行目と55・56行目のIf文でそれぞれ、収益科目と経費科目
を判断しています。(貸借対照表も資産、負債、資本を同様に判断しています)
このIf文にAND条件で Kamo_T.Fields("BoxNo").Value <> 0 と言うのが付いていま
すが、これは勘定科目設定の決算書枠番号が0のもの(即ち決算書に出力しない
未使用の科目)を除く為の条件です。
48・49行目と58・59行目の I = Kamo_T.Fields("BoxNo").Value と
FieldName = "KamokuName" & I ですが、これはPLTableの書き込むフィールド名
を設定しています。
これで、FieldNameはKmaokuNameX(Xは決算書枠番号)となり、PLTableの
KamokuName1~KmaokuName45までのフィールドに科目名を設定しています。
51・61行目の FieldName = "ZanDaka" & I も同様で、これで ZanDaka1~
ZanDaka45までのフィールドに集計した残高を設定しています。
50・60行目の
PL_T.Fields(FieldName).Value = Kamo_T.Fields("KamokuName").Value は科目名
を設定しています。
52・53行目と62・63行目では、それぞれ残高を計算し設定しています。
収益科目では勘定科目の残高-借方金額合計+貸方金額合計となり
経費科目では勘定科目の残高+借方金額合計-貸方金額合計となります。
65行目の Kamo_T.MoveNext は科目テーブルのレコードをMoveNextメソッドで
次のレコードに移動しています。
66行目の Wend は38行目のWhile文がここまでと言う意味で、科目テーブルの
レコードの数分、38行目から66行目までを繰り返す事になります。
68行目の PL_T.Fields("ZanDaka44").Value = Base_T.Fields("Koujyo").Value
は青色申告特別控除額を基本情報から設定しています。
70行目の PL_T.Update でPLTableのレコードの書き込みが行われます。
72~75行目で、15~18行目でオープンしたテーブル、及びデータベースを
クローズしています。
以上が、貸借対照表、損益計算書の集計サブルーチンの説明です。
まだ、解らない部分があれば、メールでご質問下さい。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【会計ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :y.fukuda@ro.bekkoame.ne.jp
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000030446)
◇ バックナンバー:http://www.bekkoame.ne.jp/ro/y.fukuda/
◇ 登録・解除 :http://www.bekkoame.ne.jp/ro/y.fukuda/
Copyright(C) 2000 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□