無限不可能性ドライブ

『ニューラルネットワーク自作入門』に刺激されてExcelVBAでニューラルネットワークを作ってみたものの、やっぱり数学やらなきゃと思い少しずつやってきたのもあって、自分の知識の整理とかそういった感じです。

【VBA編】メイン画面の作成

メイン画面の作成

メイン画面を下記のように作成します。

f:id:celaeno42:20181115232506p:plain

シート名は「ws_Main」としておきます。
また、「G」という名前で標準モジュールを作成しておきましょう。
ここにはグローバルで使用する定数や変数をまとめておきます。

f:id:celaeno42:20181116214312p:plain

定数の宣言

パスを格納するセルのアドレスを定数として宣言します。

'[G - 標準モジュール]
Option Explicit

Public Const RNG_TRAIN_DATA_PATH As String = "C2"   '訓練データのパスを格納するセル
Public Const RNG_TEST_DATA_PATH As String = "C3"    'テストデータのパスを格納するセル

データの選択

訓練データとテストデータのファイルを選択する処理を作ります。
「C2」セルか「C3」セルをダブルクリックするとファイル選択ダイアログが表示されるようにします。
ファイル選択ダイアログでファイルを選択すると、ダブルクリックしたセルにパスが表示されます。
ダブルクリック時の処理なので「ws_Main」シートの「Worksheet_BeforeDoubleClick()」プロシージャに記述します。

'[ws_Main - シートオブジェクト]
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim filePath As String
    
    If Target = Range(G.RNG_TRAIN_DATA_PATH) _
        Or Target = Range(G.RNG_TEST_DATA_PATH) Then
        
        Cancel = True
        
        filePath = Application.GetOpenFilename("CSV ファイル,*.csv")
        
        If filePath <> "False" Then
            Target.Value = filePath
        End If
        
    End If
    
End Sub


コードが書けたら正しく動作するか確認しておきましょう。

f:id:celaeno42:20181116221550p:plain


データのダウンロード先を再掲しておきます。
訓練用データ:https://1drv.ms/u/s!Akn_IZSOKLJ-1gKVR6dEZOntRsIh
テストデータ:https://1drv.ms/u/s!Akn_IZSOKLJ-1gHgfYyKccBTvuTX
(webで表示すると1行目が文字化けしてますが、ダウンロードすると正常に表示されます(Shift-JIS))