スポンサーサイト
    Kapok の資産運用スポンサー広告
    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。
    --.--.-- / コメント:: - / トラックバック:: - / PageTop↑

    VBAユーザーフォームで運用管理ツールを作成(バリュー平均法用)
    Kapok の資産運用PCExcel VBA
    VBAユーザーフォームで、運用管理のためのツールを作成してみました。バリュー平均法で資産運用をする際に、私個人が便利と感じる事に重きを置く仕様で作成してみました。

    今後機能は追加し続けていきたいと思っていますが、現時点での機能と、作成して気づいた事について投稿します。


    1. 作成したツールと使い方


    起動すると下図の画面が出て来ます。
    kpmnsys_v0100.png
    ①「新規読み込み用空欄作成」のボタンをクリックし、
    ②「基本項目」のフレーム内の枠に、現時点での資産別時価を入力し、
    ③「集計+書込」のボタンをクリックします。

    そうすると右側のフレーム内に、バリューパスからの乖離がどの程度なのか等、集計結果が反映されます。これをリバランスの売買額の決定の参考値として利用できます。

    また、「前のデータ」や「次のデータ」のボタンをクリックすれば、登録済の集計結果を閲覧でき、「上書き保存」のボタンクリックで、登録済のデータを保存できます。


    2. その他細かい仕様


    ①低リスク資産の入力値は、リスク資産総額の計算式に含まれていないため、バリューパスからの乖離計算には使われない値になります。

    ②BloombergのiPhoneアプリで計算した私のポートフォリオ毎の資産総額(下図)を入力しやすいように、VBAフォームを作成しました。

    IMG_1180.png

    ③バリューパスは、私が個人用に考えた暫定の計算式を利用しています。

    ④現状エラー処理は全然記述していませんので、例えば半角数値を入れて欲しい欄に全角文字など入力すると、「型が一致しません」等と、すぐに怒られます。そういう時は「終了」すればO.K.です。


    3. ダウンロード


    上記の通り、ツールは完全に私個人利用のために作成したものですが、興味ある方は、
    http://kapok2.web.fc2.com/xls/kp_mn_sys1.00.zip

    ↑のURLからダウンロードできます。
    (リンクを貼るとFC2からはじかれるため、URLで載せています。)


    4. ツールを作成してみて


    Excelはいろいろな機能が利用できる事が面白く思いました。また、欲しい機能があり、欲しい材料を探せば、それが既に準備されているという点で、MicroSoft社のプログラマーの偉大さを感じます。

    ユーザーフォームの仕組みについても勉強になりました。確かに今回作成したツールの機能は、Excelのワークシート関数で全然間に合ってしまう範囲のものではありますが、敢えてユーザーフォームを作る事で、UIの使いやすさとは何か?等考える機会になりました。

    スポンサーサイト
    2014.08.22 / コメント:: 0 / トラックバック:: 0 / PageTop↑

    Excel VBAでセルのリンク先のURLを取得
    Kapok の資産運用PCExcel VBA
    下図のように、セルにリンクを貼っているとします。VBAマクロでそのURLを取得したいと思った際、どうすれば良いか、その方法をメモします。
    vba_geturl.png

    例えばii行jj列のセルに貼ってあるリンクを取得するには
    url = Cells(ii, jj).Hyperlinks(1).Address 'urlを取得

    で良いです。

    (ここで、urlはstring型、ii,jjはinteger型です。)





    2014.03.06 / コメント:: 0 / トラックバック:: 0 / PageTop↑

    VBAでパスカルの三角形のお絵かき・・・が出来ませんでした
    Kapok の資産運用PCExcel VBA
    パスカルの三角形は、ある数で割った余りが0になるものだけを塗りつぶすと、模様ができる事が知られています。試しに3で割った余りを塗ってみようと試みました。

    が、うまく処理できませんでした。パスカルの三角形の下の方は、すごい勢いで数が大きくなっていくため(100行目で28桁の数に達します)、正しく余りを計算できなくなってくる事が原因です。

    この「途中で計算が分からなくなっちゃいました」感があふれ出る絵が、個人的には笑いのツボだったため、このまま投稿してしまします。

    vba_pascal.png



    マクロソースも晒しておきます。

    Sub cal()
    Dim ii As Integer
    Dim jj As Integer
    Dim scl As Integer

    scl = 100 '規模

    Cells.Select
    Selection.Delete

    Cells(1, scl) = 1

    For ii = 2 To scl * 2
    For jj = 2 To scl * 2
    If Cells(ii - 1, jj - 1) = "" And Cells(ii - 1, jj + 1) <> "" Then
    Cells(ii, jj) = 1
    ElseIf Cells(ii - 1, jj - 1) <> "" And Cells(ii - 1, jj + 1) <> "" Then
    Cells(ii, jj) = Cells(ii - 1, jj - 1) + Cells(ii - 1, jj + 1)
    ElseIf Cells(ii - 1, jj - 1) <> "" And Cells(ii - 1, jj + 1) = "" Then
    Cells(ii, jj) = 1
    End If

    If Cells(ii, jj).Value <> "" And fncMOD(Cells(ii, jj).Value * 1#, 3 * 1#) = 0 Then
    Cells(ii, jj).Interior.ColorIndex = 5
    End If

    Next jj
    Next ii

    End Sub

    Function fncMOD(ByVal num1 As Double, ByVal num2 As Double) As Variant
    fncMOD = num1 - num2 * Fix(num1 / num2)
    End Function



    2014.02.14 / コメント:: 0 / トラックバック:: 0 / PageTop↑

    VBAでエクセルの追加データを反映(同期)するマクロ
    Kapok の資産運用PCExcel VBA
    下図のように、Sheet1でエクセル作業をしていたとします。ところがその後、Sheet2にまとめたような、「追加したいデータ」や「補完したいデータ」がやってきた際の対応を考えます。

    vba_data_no_douki.png
    ※クリックで拡大します。

    図のように、対応が必要なデータが2件のみの場合、ctrl-Fで、メンテナンスが必要な箇所を探してデータをコピーすれば良いですが、数が増えると大変です。

    その場合のために、VBAマクロを組んでみました。


    Sub tmp()
    Dim ii As Integer
    Dim jj As Integer

    Dim id As LongLong
    Dim mrow As Integer

    Worksheets(2).Select

    ii = 2

    While Worksheets(2).Cells(ii, 1) <> ""

    id = Worksheets(2).Cells(ii, 1).Value 'A列のIDを取得

    If Application.WorksheetFunction.CountIf(Worksheets(1).Range("a:a"), id) > 0 Then
    '使用中のデータに既にIDがある場合は、データ更新列を取得
    mrow = Application.WorksheetFunction.Match(id, Worksheets(1).Range("a:a"), 0)
    Else
    'データが無い場合、最終行の次の行を取得
    mrow = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
    End If

    Worksheets(2).Range(Cells(ii, 1), Cells(ii, 3)).Copy
    Worksheets(1).Cells(mrow, 1).PasteSpecial Paste:=xlPasteAll

    ii = ii + 1
    Wend


    End Sub


    IDを目印に、このマクロでSheet2のデータをSheet1に反映できました。
    データの同期のマクロは、何かと便利に使えそうな気がします。

    2014.02.12 / コメント:: 0 / トラックバック:: 0 / PageTop↑

    Excel方眼用紙とVBAでドット絵の模様を作成してみました
    Kapok の資産運用PCExcel VBA
    なぜこのような事をしようと思ったのか分かりませんが、Excelのセルを方眼用紙の様に正方形にして、セルの色を変更する事で、絵をかいてみました。

    VBAマクロを使い、色を「周りの色の関数」として置いていく事で、複雑な模様ができました。


    1. できた模様


    excelvbadotpic.png
    ※クリックで拡大します


    2. マクロソース



    Sub oekaki()

    Dim a(200, 200) As Integer
    Dim b(200, 200) As Integer
    Dim tt As Integer
    Dim ii As Integer
    Dim jj As Integer

    '配列初期化
    Erase a
    Erase b

    '種
    a(100, 100) = 1
    a(90, 90) = 1
    a(90, 110) = 1
    a(110, 90) = 1
    a(110, 110) = 1


    For tt = 1 To 30
    For ii = 3 To 198
    For jj = 3 To 198
    '周りの数を足す
    b(ii, jj) = a(ii, jj - 1) + a(ii, jj + 1) + a(ii + 1, jj) + a(ii - 1, jj) _
    + a(ii - 1, jj - 1) + a(ii - 1, jj + 1) + a(ii + 1, jj - 1) + a(ii + 1, jj + 1)


    '色を付ける
    Select Case b(ii, jj)
    Case 0:
    Cells(ii, jj).Interior.Color = RGB(255, 255, 255)
    Case 1:
    Cells(ii, jj).Interior.Color = RGB(255, 255, 0)
    Case 2:
    Cells(ii, jj).Interior.Color = RGB(255, 0, 255)
    Case 3:
    Cells(ii, jj).Interior.Color = RGB(255, 128, 255)
    Case 4:
    Cells(ii, jj).Interior.Color = RGB(255, 128, 128)
    Case Else:
    Cells(ii, jj).Interior.Color = RGB(0, 255, 255)
    b(ii, jj) = 0
    End Select
    Next jj
    Next ii

    For ii = 3 To 198
    For jj = 3 To 198
    a(ii, jj) = b(ii, jj)
    Next jj
    Next ii

    Sleep 1
    MsgBox "tt=" & tt
    Next tt
    End Sub





    Excelで実行するのには時間がかかりますが、いろいろな模様を作成できそうです。




    2014.01.12 / コメント:: 0 / トラックバック:: 0 / PageTop↑




    Pagetop↑
    ブログ内検索
    プロフィール

    Kapok

    Author:Kapok


    個人投資家。1986年生まれのサラリーマンです。将来、資産運用で財産を築き、自由に暮らす事を夢見ています。

    ブログについて
    「資産運用について調べた事・考えたこと」をブログのメイン記事にしています。

    記事の情報の正確さには注意を払っていますが、保証はしません。投資判断は自己責任でお願いします。

    Kapok
    資産運用の方針
    資産運用は、下記の規定の範囲内で行っています。私Kapokが、どのような個人投資家であるかがよく分かるファイルになっています。

    Kapok の資産運用規定

    最近の記事・コメント

    アクセスカウンター
    ↑ポインタを合わせると、1週間のアクセス数推移が確認できます。

    Since Mar.17/2011
    Twitter
    おすすめ書籍
    ウォール街のランダム・ウォーカー 株式投資の不滅の真理
    Kapokの投資哲学に大きな影響を与えた1冊。個人投資家必読の書。

    スポンサー
    相互リンク
    資産運用全般

    株式個別銘柄投資 etc.

    投資信託 etc.

    債券・預貯金

    FX・派生商品 etc.

    その他 有価証券

    資産運用以外
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。