【e-Taxソフト】財務諸表(CSV)を作成する

#
<h1>RStudio要約</h1>

```r:0_準備.R
install.packages("devtools")
library(devtools)
	# エクセル入出力パッケージ
install.packages( "openxlsx" )
library( openxlsx )  
	# eTax入出力パッケージ
install_github("nt1969m/office",force=T)
library(office)
```
```r:1_初年度.R
BS	<-
  "https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho3/1/HOT010_3.0_BS_10.xlsx" |>
  read.xlsx() # 標準フォーム
View(BS)
# setwd() # ^⇧H 
getwd()
BS[-c(1:4),5:9] |> 
    Write_eTax("HOT010_3.0_BS.csv")　

PL	<-
  "https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho3/2/HOT010_3.0_PL_10.xlsx" |>
  read.xlsx() # 標準フォーム
View(PL)
PL[-c(1:4),5:9] |> 
    Write_eTax("HOT010_3.0_PL.csv")　

# 複数の財務諸表を１つのＣＳＶファイルに作成する場合
BS[-c(1:4),5:9] |>
    rbind(
PL[-c(1:4,6:8),5:9] ) |>
    Write_eTax("HOT010_3.0.csv")
    
# ＣＳＶ形式データのレコードの内容等
"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4_5_1.pdf" |>
  browseURL()
```
```r:2_翌期以降.R
bs <- 
    file.choose() |>    # Macの方言かも。。
    Read_eTax("",f=_,"")
View(bs)
```
```r:9_参考.R
    #パイプの第１引数以外に渡すには、引数名を指定必須でアンダーバー
"https://t-arae.blog/posts/2024/2024-07-27-r-pipe2/" |> #感謝
  browseURL()
"https://qiita.com/Ringa_hyj/items/44494f69ef2fa489050b" |> #感謝
  browseURL() 
```

<h1>はじめに</h1>
国税庁が提供するエクセルに数字を入力するだけです。

　財務諸表のＣＳＶ形式データ(Ver.3)　令和２年(2020)
　　標準フォームを使用し作成する方法(Excel2013を利用した場合)
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4_5_4.pdf

この記事の概要

||国税庁|この記事|
|:--|:--|:--|
|エクセル|Office2013（買い切り）|Office Online（無料）|
|CSV作成|手作業|RStudio（無料）|

R言語(rlang)を「あえて」活用する余地があるとすれば、
エクセルに数字を入力後の、
CSV作成ぐらいと思います。

※国税庁、良く出来てる。Good Job!
#<h6>(Office Online)無料で使えるマイクロソフト・エクセル</h6>
この作業（数字を入力するだけ）ではこれで十分です。

#Office Online
https://www.office.com

#RStudio
デスクトップ版がオススメですが、
（エクセルを移動させる手間(OneDrive→Rstudio Cloud)を省けると言う意味で）
デスクトップ版は敷居が高い、
（パソコンの環境をいじるのはチョットね。。）
と思われる方は、
お試しでこちら(Rstudio Cloud)はどうでしょう。
https://rstudio.cloud/

#githubにパッケージを作ったのでインストールしてください。

```r:準備.R
library(devtools)
install_github("nt1969m/eTaxtools")　#面倒な事を聞かれたら、3: None で、
library(eTaxtools)
```

数字を入力したエクセルのディレクトリーを指定して、変換。

```r:CSV変換.R
d <- "./inst/extdata/HOT/"  # 例えば、財務諸表
eTaxtools::converts(d)
```
同じディレクトリーにCSVが作成されてます。

（ご参考）テスト（抜粋）

```r:testthat.R
# 財務諸表の標準フォーム（令和2年4月１日以後提出分）
f <- c(
   "https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho3/1/HOT010_3.0_BS_10.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho3/2/HOT010_3.0_PL_10.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho3/3/HOT010_3.0_SS.xlsx"
)
dir.create( "./inst" )
dir.create( "./inst/extdata" )
d <- "./inst/extdata/HOT/"  # 財務諸表
dir.create( d )
downloads(f,d)
converts(d)

#勘定科目内訳明細書の標準フォーム等
#(平成31年4月1日以後終了事業年度分)
f <- c(
   "https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI010_4.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI060_4.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI100_5.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI110_3.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI130_5.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI141_5.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI150_3.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI160_3.0_.xlsx"
   )
d <- "./inst/extdata/HOI/"  # 勘定科目内訳明細書
dir.create( d )
downloads(f,d)
converts(d)

#法人税申告書別表等(明細記載を要する部分)の標準フォーム等
#(令和2年4月1日以後終了事業年度又は連結事業年度分)
f <- c(
   "https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/5/HOB016_6.0_.xlsx"
  ,"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/5/HOB800_15.0_.xlsx"
  )
d <- "./inst/extdata/HOB/"  # 法人税申告書別表等(明細記載を要する部分)
dir.create( d )
downloads(f,d)
converts(d)

```

#<h1>1.国税庁のエクセルをダウンロード</h1>
OneDriveにダウンロードしましょう。

1.財務諸表（貸借対照表）の勘定科目コード表及び標準フォーム財務諸表
（令和2年4月１日以後提出分）
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4_zaihyo_taishaku_02.htm

2.財務諸表（損益計算書）の勘定科目コード表及び標準フォーム
（令和2年4月１日以後提出分）
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4_zaihyo_soneki_02.htm

3.財務諸表（その他）の勘定科目コード表及び標準フォーム
（令和2年4月１日以後提出分）
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4_zaihyo_sonota_02.htm


#<h1>CSV作成（古い方）</h1>
ご参考
財務諸表のＣＳＶ形式データの作成方法
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4.htm

```R:CSV作成.R
	# openxlsxパッケージ ※JDKに依存しない
library( openxlsx )  # install.packages( "openxlsx" )

f	<- file.path( ... ,"HOT010_3.0_BS_10.xlsx" )

xlsx	<- read.xlsx( f )
	# 列名は下記（９列)の模様
	#【参.考】X2　X3　X4	1　2　3　4　5 
	#　列１　列２　列３　列４	列５(c1)	列６(c2)	列７(c3)	列８(c4)	列９(c5) 

BS <- 	subset( xlsx 
		, !is.na( xlsx[  ,"X4" ] ) # 列４（CSV作成順番) 
		 & as.numeric( xlsx[  ,"X4" ] ) >= 1 # 妥協(警告メッセージ:  強制変換により NA が生成されました)  
		,select=c("1","2","3","4","5") # 1-5（eTaxの列) 

source( "ファイル定義.R")

Write_eTax( BS ,f )
```

```R:ファイル定義.R
Write_eTax <- function( df ,f ) { 
	csv <- gsub( ".xlsx" ,".csv" ,f )
	print( csv )
	write.table(
		 df
		,csv
		,quote=F
		,sep=","
		,row.names=F
		,col.names=F
		,eol="\r\n"
		,na=""
		,fileEncoding="CP932"
	)
}  
print( c( "Write_eTax()" ,Write_eTax )  )
```
注　write.csvを使わない理由
write.tableを使うのは、
eTaxのcsv形式が特殊だから。