本ページはプロモーションが含まれています。
こんにちはhokkyokunです。 このサイトは
- お金や投資に関する知識
- IT、特にプログラミングに関する知識
この二つを日々勉強し、
私もそしてこのページを読んでくださる読者も、
誰もが日々の生活や仕事、懐事情をよりよいものにアップデートできることを目指しています。
リンクからまとめページに飛べますので、気になる方はクリックしてみてください。
- 投資の最適解はインデックス積立投資である⇒まとめ
- 月5万円の副収入を得るためのロードマップ
- 資産5000万円を達成する方法をシミュレーション
- 積立投資シミュレーション
- プログラミングでビジネスを別次元に昇華させよう⇒まとめ
- VBAまとめ
- VBAの便利な関数集
- Pythonまとめ
以下、投資とプログラミングを学んで
どういったことができるようになったかお話ししたいと思います。
投資の知識とプログラミングは相乗効果を生み出す
先ず一番伝えたいことからお伝えします。
投資とプログラミングは別々なように見えて繋がっており、
相乗効果で新たな発見や理解を深めてくれます。
積立投資の効果を計算できるようになる
具体的な話を一つします。
積立投資の有用性は
今いろんな人が触れています。
本当でしょうか?
実際に積立投資の有用性を
Pythonというプログラミング言語で検証することができます。
正解は
- 2012年12月26日~2022年12月23日までの10年間、
毎月100ドル投資すると投資金額は1.81倍になります。 - 20年間(2002年12月26日~2022年12月23日)
であれば投資金額の3.69倍です。 - ※配当金再投資(税金を考慮:米国10%、日本:20.315%)
今の時期はたまたまよかっただけ?
たまたまこの時期がよかっただけじゃないの?
僕もそう思いました(笑)
なので、このシミュレーションを
投資期間を一日ずつずらしてシミュレーションしてみました。
例えば
といった風に少しずつ期間をずらして総当たりでシミュレーションしてみました。
- 2001年6月18日~2022年12月23日の間
の10年間を総当たりシミュレーション !
平均値は投資金額の2.10倍となりました。 - ちなみに最低のタイミングは
2001年8月30日~2011年9月6日です。
投資金額の1.37倍でした。
最低最悪の場合でも損はしなかったということです。
期間が短いんじゃない?
それはその通りです💦。
残念ながらETFのデータが
何十年何百年とないのでシミュレーションが限られた年数でしかできません。
そんな時期を含んでいてもなお、
10年間の積立投資では100%損をせず、
それどころかかなりの利益をもたらすケースが多いことがわかりました。
自分の力で結論を出すことができるようになる
インフルエンサーやテレビの言っていることを妄信するのではなく、
自分自身で納得して結論を出すことができます。
これはひとえに
- プログラミング=ITの力
- 投資=お金の知識
による結論です。
この知識を自己研鑽し、
その成果を共有しようというブログです。
お金とITを学習することで
インフルエンサーが言うからこの投資は大丈夫。。
ではなく、自分の力で考えられるようになります。
プログラミングを学習するため重要なのは
何よりも質問や詰まったときの相談がスムーズにできるかどうかです。
私も学習してわからなかったり、
なぜエラーが出るのか理解できない時が一番苦労しました。
プログラミングスクールは短時間で、正しい文法を理解するために
おすすめです。
中でも侍エンジニアは以下の二点で非常にお勧めです。

次は投資とプログラミングについて
私が学んだ内容をざっくり説明します。
詳細は各記事を見ていただければ嬉しいです。
株価の予想はプログラミングでできるか?
なんか地味な使い方してないか?
プログラミングスキルがあれば
株価の予想とか機械学習とかできるんじゃないの?
ここは勉強中ではあります。
が、おそらくこの領域で成果を出すのは無理だと予想しています。
プロが何人も巨額の投資をして開発してできるかどうかの問題です。
おそらく、それでもできていないでしょう。
私が考える
株式投資×プログラミングスキルは
過去のデータを考察し、研究し、どういった戦法を取るべきかを考えること
だと思っています。
その戦法は次の段落(投資編)で。。
投資編(初心者も玄人もとりあえず積立投資)
つみたてNISAの制度がアップデートされます。
投資金額が一人1800万円 非課税期間が恒久となります。
この枠でETFや投資信託を買うことができます。
当サイトでシミュレーションした結果、
VTIという全米に投資するインデックスETFに投資すると
20年で4倍以上はシミュレーショ
1800万円をVTIに投資すると
20年で4倍以上は全然あり得ます。
投資信託はVTIを直接買えないので、
VTIと同様の動きをする投資信託を買うと
20年で7000万以上の金額が非課税で手に入ることはあり得ます。
夫婦でやるか、投資期間を30年とかにすると、
本当に税金のかからない資産で1億も夢ではありません。
とはいえ、絶対ではないですが。
さて、この夢の制度を利用するためには
決めなければいけないことや知っておかなければいけないことがいくつもあります。
- 証券口座はどこにすればいい?
- 金融商品は何を買えばいい?
- お得に買う方法は?
- 買ったはいいけど損したらどうしよう? そもそも何年くらい持てばいくらくらいになるの?
- 投資をするうえで最も大事なことはなに?
これらに答えることができないと
投資は失敗するか 余計な費用を取られたり、お得な制度を逃したりします。
めちゃくちゃざっくり説明すると
- SBI証券口座を開設
- S&P500連動の投資信託もしくは
全米投資(VTIのようなETF)連動投資信託を購入 - 三井住友カード ゴールドで
クレカ投資 - だいたい4年くらい持つとたいていは損しない
目安は10年積立で投資金額の2倍 - とにかくメンタルを大事にする
不安な要素を排除し、どーんと構えることが最重要
これらについてざっくり説明していきます。
詳しくは記事を書いていますので、よかったらそちらを参照してください。
S&P500連動もしくは全米投資インデックスを推す理由
S&P500連動の投資信託や全米投資インデックス連動の投資信託を推す理由は
過去のデータを見る限り
最も合理的な投資先ととらえることができるからです。
SBI証券と三井住友カード ゴールドを推す理由
SBI証券と三井住友カードゴールドを推す理由は
この組み合わせが積立投資をするうえで最もお得に商品を購入することができるからです。
とりあえず4年は投資し続けましょう。
たいていの場合4年投資し続ければマイナスになる確率は格段に低くなります。
これはリーマンショックや米国株冬の時代(2000年代)期間も含めてです。
どーしても我慢できない場合は2年でもいいです。
よっぽど運が悪くなければだいたい利益がでます。
具体的な確率はいくらか?
以下の通りです。
詳しくは記事を見てみてください。
投資はメンタルゲーム
インデックス投資は正しくやれば利益が出る公算は高いです。
あくまで「高い」です。絶対ではありません。
でもこの勝負、分は全く悪くありません。
ところが、多くの人はこの分の良い勝負から降りてしまうことが多いです。
メンタルが削られると
このままでいいのかしら?
インフルエンサーは新興国を推しているぞ
別の専門家は日本株を勧めている…
色々と考えてしまいます。
だいたいとそういうときは損をします。
上記で見たように
いろいろな地域で同期間で積立の投資成績を比較シミュレーションしましたが、
米国株圧勝です。
もしかしたら一時は日本や新興国が勝つかもしれませんが、
長期で見ると米国株の方が可能性が高いです。
今は買い時じゃない
少し休もう
買い控えってやりたくなるのですが、
積立投資に対してはあまり意味はないです。
VTIで買い時を考えて投資するとどうなるかシミュレーションしてみました。
結果は素直に買っておいた方がいいとなりました。。。
メンタルを最重要視し、信念をもって投資することが大事です。
資産5000万は可能です。
資産5000万円を作ることは可能です。
もしあなたが20代や30代前半であれば50代までに実現可能です。

他にもいろいろシミュレーションしています。
ここで挙げた以外にもいろいろとシミュレーションしています。
- 積立投資 VS 一括投資
- インデックス VS 個別銘柄投資
- VTIで最もひどかった損失は-〇〇%
個別にETFの投資シミュレーションもしています。
まとめ
- VTI
- VT
- VOO
- SPYD
- VYM
- HDV
- QQQ
- TLT
- AGG
- LQD
- HYG
繰り返しになりますが、
なぜこういったことをするかというと
メンタルを安定させるためです。
今、米国株は不調です。
もしかしたらここから数年~10数年不調かもしれません。
でも、もしかしたら今投資するのはラッキーかも。
ここ20年で最も成績の悪い年は
○○年から~○○ねんの10年間の投資です。
でも、
○○ねんからの投資を20年続けると
○○になります。
これは過去20年の投資成績の上位○○%です。
こういったことを知っていると
今の成績が悪いことなんて全く気になりません。
プログラミング編(まずはVBAから)
プログラミングも生活を豊かにするための大きなツールです。
お仕事をされている方はエクセルをさわる機会も多いと思います。
エクセルをただの報告書や表のとりまとめツールとしてだけ使っていませんか?
断言してもいいですが、
よくある世の中のSAASなどのビジネスツールはほぼすべてエクセルで表現できます。
入出庫の管理ツールも
売上集計ツールも
顧客名簿管理ツールも
全てエクセルでできます
しかもビジネスツールだと「できない」ということも多くありますが
エクセルは「できる」場合が非常に多いです。
これは私が実際に業務で行ったことですが、
自社で使っているビジネスツールは
- 請求書は顧客ごとに振込口座を分けることが「できない」
- 納品書は番号ごとの発行で顧客ごとの発行は「できない」
- 顧客管理ツールでは報告書を営業マンごとに集計することは「できない」
と言われてきました。
IT系の企業に頼めば「できる」ようになるのに
数十万かかるシステムばかりです。
これらの課題を全てエクセルを使って解決してきました。
VBAを使って!
重要なのはシステムの柔軟性であり、
VBAを活用したエクセルはお仕事に自由自在にフィットします。
VBAを使用することで
あなたやあなたの部署が抱えている問題の多くは解決することができます。
それも無料で!
VBAは時代遅れのツール?そんなことありません!
VBAは時代遅れのツールで今更やっても意味がない
という人もいるでしょう。
私も当初はそう思っていました。
しかし、全く見当違いです。
VBAは時代遅れのツールではありません。
むしろ今後も
ITツールで穴埋めできない隙間を埋めていくツールとして生きていくでしょう。
世にあるSAASのようなツールを当社でも導入していますが、
本当に痒いところに手が届かない…
こういった簡単なこともデフォルトの仕様では「できない」
と平気で言ってきます。
それをするには月○○万円追加してくださいとか。。
VBAを覚えるとこれらを解決することができます。
まだまだVBAは利用価値のあるツールです。
VBAはエクセルが使える環境であれば簡単に操ることができます。
ほんと、痒いところに手が届くんです!
このサイトでは
絶対覚えておきたいVBAのテクニックや関数を紹介していきます。

VBAが不親切なのも事実…だから関数まとめ記事を作りました。
ただし、VBAに使いにくい部分があることも事実です。
例えば配列の扱いはかなり不親切です。
具体的には配列に要素を追加するには
以下のようにコードする必要があります。
Sub 要素の追加()
Dim arrs As Variant ’配列
Dim arr As Variant '要素を取り出すための変数
'要素を格納
arrs = Array("リンゴ", "バナナ", "リンゴ")
'要素数を変更するときはRedim Preserveで前の分を残しつつ再宣言。
ReDim Preserve arrs(3)
arrs(3) = "メロン"
'中身を確認
For Each arr In arrs
Debug.Print arr
Next
''''''''''''''''''''デバッグした結果''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'リンゴ
'バナナ
'リンゴ
'メロン
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
お分かりになりますでしょうか。。
面倒な点が二点あります。
それだけじゃん
それくらいやればいいよ!
確かにコード行としては一行追加すればいいだけですし、
配列の要素数+1になるように再宣言すればすみます。
しかし、配列はプログラミングの基本なので
コードを書いていると何度も何度も使用します。
何度も何度も書くものはできるだけ簡潔にしないと
ストレスになり、作業効率が下がります。
一方Pythonは
#要素を一つ一つ入れる
arrs=["リンゴ","バナナ","リンゴ"]
#追加
arrs.append("メロン")
#デバッグした結果
print(arrs)
#['リンゴ', 'バナナ', 'リンゴ', 'メロン']
すっきりしています。
要素数の変更を宣言しなくていいですし、
追加したければ、配列.append(○○)だけで追加できます。
あまり変わらないように感じるかもしれませんが、
何度も使うので面倒な処理は極力ない方がいいです。
これを防ぐためには
関数を作っておいて、追加する度にそれを使用していけばいいんです。
私が作った配列追加の関数add_elmを使ってみます。
Sub test_add_elm()
Dim arrs As Variant
arrs = Array("リンゴ", "バナナ", "リンゴ")
arrs = add_Elm(arrs, "メロン")
'デバッグ結果は省略。同じです。
End Sub
関数を使うとコードがすっきりして、
何をしているかも明確です。
肝心の自分がしたいプログラムに集中できますね。
こういった実務レベルで使っていける関数をまとめています。
まとめ記事
VBAでやりずらいことが出てきたらPythonを使ってみましょう
VBAは便利であり、
当サイトでVBAを補完するプログラムも公開していますが、
それでもVBAではやりずらいことが発生してきます。
そんなときは
Pythonを覚えてみてはどうでしょうか?
VBAはたいていのことはできますが、
学習コストに見合わないことも正直たくさんあります。
一例としては以下のようなものがあります。
- スクレイピング(インターネットの操作や情報収集)
- PCの自動操作(他の基幹システムなどを動かすこと)
- SQL(データベースを操作する言語)操作などデータベースの取り扱い
これらは「できない」わけではありませんが、
できるようになるためには結構面倒な処理と勉強が必要です。
そして、おそらくこれらを組み込んだファイルを配布すると
かなりの確率で壊れます。
日々のメンテナンスが必要になるからです。
上記のような操作が必要になってきたら
Pythonの学習に着手してみると良いでしょう。
Pythonはエクセルとの相性も良く
エクセルも簡単に操作できます。
VBA使いはある程度の学習で使いこなせます。
外国語の第二言語みたいな感じです。
VBAの基礎ができていれば
吸収速度は全然違います。
大事なのは一歩踏み出すこと!
当サイトはVBA超初心者向きではなく、実務性に特化しました。
当サイトは超初心者向きのVBA解説サイトではありません。
優良な超大手サイトがたくさんあり(Office TANAKAや侍エンジニアなど)、
充実した記事がたくさんあります。
では、当サイトはどうなのか?
彼らの劣化コピーサイトでしょうか?
その前にいつも思っていることがあります。
例えば、ワークブックを開くプログラムを書くとします。
Sub book_open()
Dim file_path As String
Dim wb As Workbook
file_path = "パス名"
Workbooks.Open Filename:=file_path
End Sub
確かにこれで開きます。
ただし注意が必要な場面があります。
対象のブックを開いており、かつ編集している場合、
好ましくない状況になる可能性があります。


プログラムに使うブックを先に開くとかwww
そんなことしないよ。
っというか、「はい」にすりゃまた動くじゃん
確かに、自分で動かす分には何とかなる部分もあります。
でも、これを人に渡して動かしてもらうとすると
多分のその人はパニックになります。
そして、人は何をするかわからないので(笑)
ブックを編集して閉じ忘れたまま使うなんてこと全然あります(笑)
これを安全に使うためのコードはこんな感じです。
Function f_book_Open(ByVal file_path As String)
Dim wb As Workbook
Dim loc As String
Dim wb_Name As String
'ファイルパスからブック名を取得
'locは一番後ろの「\」の位置
'loc+1番目から後ろの文字列を切り取る
loc = InStrRev(file_path, "\")
wb_Name = Mid(file_path, loc + 1)
'wb_Nameは「開こうとしてる対象のブック名」
'今開いているブック全てのうち、wb_Name=「対象のブック」をいったん保存して閉じる
For Each wb In Workbooks
If wb.Name = wb_Name Then
Application.DisplayAlerts = False
'保存しない場合は「False」にする
wb.Close savechanges:=True
Application.DisplayAlerts = True
End If
Next
'開くと同時に変数にセットする⇒使いやすい
Set f_book_Open = Workbooks.Open(Filename:=file_path)
End Function
ちょっと長いですが、これでエラーを回避できます。
これが解決策のすべてではないですが、
格段に安全性は高まりました。
ただ、こんなコードを毎回毎回書いていられないので
便利な関数集を作っておきました。
さて、最初の疑問に戻ります。
このサイトはどういう目的で使えばいいか?
VBAを単なるマニアックなオタク技術とするのではなく、
非IT人材がプログラムでビジネスを別の次元に昇華することを目標としています。
そのために
- 便利な関数集
- 知っておくとコードを書くのが楽で、楽しくなる仕様
- VBAから別の言語にチャレンジするタイミング
などを解説していきます。