はじめに
私は法人口座(一般口座)で資産を運用しています。
それゆえに、このパッケージは、
個人口座(特定口座やNISA口座)特有のデータには
対応していない可能性があります。
この点については、ご容赦ください。
対応.pdf
株式等配当金のお知らせ
割当株式等のお知らせ
株式 取引報告書 # 2025-09-27
公社債等募集 取引報告書
公社債利金のお知らせ
有価証券デリバティブ取引等に関する個別取引終了通知書(兼支払通知書) # 2025-09-26
使い方
install.packages("devtools")
library("devtools")
install_github("nt1969m/sbitools")
library("sbitools")
# 同じ種類の.pdf$ごとに、個別のディレクトリーに格納する。※ここ重要!
# setwd() # ".pdf$"のあるディレクトリーを設定してね!
# R本体の場合、 「メニュー」 → 「その他」 → 「作業ディレクトリの変更」
# RStudioの場合、「メニュー」→「Session」→「Set Working Directory」→「Choose Directory」
getwd()
変数 <- read_sbi() # ".pdf$"のあるディレクトリーに.csv$が作成されます。
変数 |> View() # 変換結果を確認
pf(パターン・ファイル)
未対応の.pdfは、独自pf(パターン・ファイル)を作成した上で実行して下さい。
改訂履歴
2025-09-27(土) 対応.pdfを追加
株式 取引報告書
2025-09-27(土) パッケージ改訂・pf、セミコロン(;)にて段(上段・中段・下段)区切り
第5列 y 各列のpdf_data、"y"を指定(1段目・2段目・3段目)
第9列 y2 各列のpdf_data、"y"を指定(2段目)
※第5列にて2段目(未)指定の場合のみ
2025-09-26(金) 対応.pdfを追加
有価証券デリバティブ取引等に関する個別取引終了通知書(兼支払通知書)
2025-09-26(金) パッケージ改訂・pf、コロン(:)にて範囲指定
第5列 y 各列のpdf_data、"y"を指定(上段)
第6列 s 各列のpdf_data、"x"の抽出開始位置を指定(>=)
第7列 e 各列のpdf_data、"x"の抽出終了位置を指定(<)
※第6列にて範囲(未)指定の場合のみ
第9列 y2 各列のpdf_data、"y"を指定(2段目)
#(参考)標準pfの目検
system.file( "read_sbi_p3.csv" ,package="sbitools") |> readLines() # 標準pf
#(前提)独自pfを.pdf$のあるディレクトリーに格納する。
# 独自pfを目検する。
"inf_01.csv" |> readLines() # header行と1行目だけにする。
# 2行目以降(対象外.pdf$行)不要
変数 <- read_sbi(p="^i")
変数 |> View()
↓パッケージ・デフォルトのpf(パターン・ファイル)
※ Tab "\t"
Separated
Values です。
# pf(パターン・ファイル)
#
# read_sbi(p="")
#
# p3: p="read_sbi_p3.csv" # system.file( p ,package="sbitools" ) |>
# # read.table( header = T )
#
# 第1列 rows 行数 上段だけでなく下段もある場合は 2 です。
# 第2列 cols 列数
# 第3列 title .pdf$の表題 p4: t="お知らせ$|募集$"と一致しないと抽出しません。
# 第4列 colnames 列の名前
# 第5列 y 各列のpdf_data、"y"を指定(上段)
# 第6列 s 各列のpdf_data、"x"の抽出開始位置を指定(>=)
# 第7列 e 各列のpdf_data、"x"の抽出終了位置を指定(<)
# 第8列 han 何か指定すると、半角に変換します。
# 例 h とか
# ymd だとR標準の日付形式(2025-08-14とか)に変換します。
# s だと全ての.pdf$処理後に"sum()"します。_sum.csv$も出力します。
# 第9列 y2 各列のpdf_data$"y"を指定(下段)
#
rows cols title colnames y s e han y2 # header
#
# 1行目 → ↓
2 11 株式等配当金のお知らせ "銘柄名,銘柄コード,お支払日,配当単価,数量,配当金額,所得税,地方税,端数処理代金,お受取金額,配当基準日" "91,100,94,94,94,126,126,126,126,126,139;166,175,171,171,171,202,202,202,202,202,216" "1:317,1:317,1:317,317:441,441:999,1:126,126:227,227:329,329:445,445:999,227:445" "" ",h,ymd,h,h,s,s,s,s,s,ymd" "" # 1
#
# 2行目 → ↓
1 9 割当株式等のお知らせ "銘柄名,銘柄コード,権利区分,権利割当日,分割比率,加入者名,お預り数量,割当数量,合計数量" "126,135,126,126,126,180,180,180,180" "1:225,1:225,225:300,300:389,389:999,1:213,213:291,291:370,370:999" "" ",h,,ymd,h,,h,h,h" "" # 2
#
# 3行目 → ↓
2 14 公社債等募集 "ご清算日,銘柄名,銘柄コード,取引区分,額面,単価,約定金額,経過利子,手数料,消費税等,ご清算金額,空欄1,空欄2,空欄3
" "64,118:126,135,121,112,112,112,126,126,126,126,135,144,153" "489:999,1:158,1:158,158:172,172:298,298:424,424:999,172:298,298:345,345:424,424:999,172:999,1:999,1:999" "" "ymd,h,h,,h,h,s,s,s,s,s,," "" # 3
#
# 4行目 → ↓
2 12 公社債利金のお知らせ "銘柄名,銘柄コード,利率または償還単価,期数,税区分,利払日または償還日,備考,額面(千円),利金または償還金,所得税,地方税,お受取金額" "91:100,100,94,94,94,94,0,126,126,126,135,130;171:180,180,175,175,175,175,0,207,207,207,216,211" "28:135,135:250,250:345,345:379,379:412,412:516,516:999,1:133,133:248,248:379,248:379,379:999" "" ",h,h,,,ymd,,h,s,s,s,s" "" # 4
#
# 5行目 → ↓
1 20 "有価証券デリバティブ取引等に関する個別取引終了通知書(兼支払通知書)" "約定日,決済日,対象資産コード,対象資産,数量,オプションタイプ,オプションスタイル,権利行使,オプション付与者,オプション取得者,オプションプレミアム,オプション・プレミアム支払日,権利行使価格,権利行使日(評価日),決済価格,オプション決済金額,決済方法,取引所,自己/委託,損益" "280:301,280:301,280:301,280:301,280:301,280:301,280:301,280:301,359:375,359:375,359:375,359:375,359:375,359:375,359:375,434:450,434:450,434:450,434:450,434:450" "1:130,130:235,235:279,279:472,472:499,543:610,610:729,729:999,48:160,160:220,220:332,378:484,447:521,568:637,637:714,1:102,193:301,301:437,437:449,449:554" "" "ymd,ymd,h,,h,,,,,,s,ymd,h,ymd,h,s,,,,s" "" # 5
#
# 6行目 → ↓
3 12 "株式" "約定日,ご精算日,銘柄名,銘柄コード,取引区分,株数,単価,約定金額,手数料,消費税等,ご清算金額,空欄" "64,64,109,126,121,112,112,112,126,126,126,135;64,64,144:153,162,157,148,148,148,162,162,162,171;64,64,180:189,198,193,184,184,184,198,198,198,207" "403:489,489:999,28:158,28:158,158:170,170:298,298:423,423:999,170:298,298:423,423:999,170:999" "" "ymd,ymd,,h,,h,h,h,s,s,s," "" # 6
# 以下余白
.pdf$、分析手順
library("pdftools")
f <- file.choose() # macの方言かも? winだと、choose.fileだったような。。
data <-f |> pdf_data() # pdftools::の機能
data[[1]] |> View() # 1ページ目を分析
# ますは、"y"を並べ替え! ※ 何も考えずに。
# 行"y"ごとに分析
# (具体例)
data[[1]] |> ynx(126) # y=126の行全体
# [1] "600,00091,89000508,110"
# "x"ごとに分析 "x" + 文字数 * 6 をe(終了位置)とみなす。
data[[1]] |> ynx(126, ,121) #[1] "600,000"
# 前段のe(終了位置)をs(開始位置)とみなし、e(終了位置)を計算
data[[1]] |> ynx(126,121,296) #[1] "91,890"
data[[1]] |> ynx(126,296,329) #[1] "0"
data[[1]] |> ynx(126,329,445) #[1] "0"
data[[1]] |> ynx(126,445,553) #[1] "508,110"
# ↑ y ↑ s ↑ e
#(参考)
# pdf_data、"x"から開始位置、終了位置の推測方法
# ユニコード1文字、6バイトで推測しています。
前歴
PDF(SBI証券 株式等配当金のお知らせ)からCSV(テキスト)を作成する
https://qiita.com/nt1969m/items/8e9d6f3454c2087bf6ec
PDF(SBI証券、割当株式等のお知らせ)からCSV(テキスト)を作成する
https://qiita.com/nt1969m/items/890846d529d08c8edbb2