LoginSignup
0
0

More than 1 year has passed since last update.

メモ

Last updated at Posted at 2021-10-05

備忘録


Option Explicit

Public Sub sample1()

    '1.起点ノードの物理IFのcsvファイルをユーザーが選択して→データを配列に格納
    MsgBox "起点となるノードの物理IF(csv)を選択してください"

    Dim stFile As String, stData As Variant

    Call fileSelection(stFile)
'    Debug.Print stFile

    Call getArray(stFile, stData)
'    Stop    '配列確認


    '2.リンクするノードの物理IFのcsvファイルをユーザーが選択→データを配列に格納
    MsgBox "紐づけしたいノードの物理IF(csv)を選択してください"

    Dim linkFile As String, linkData As Variant

    Call fileSelection(linkFile)
'    Debug.Print stFile

    Call getArray(linkFile, linkData)
'    Stop    '配列確認用

    Call checkMessage(stData(2, 5), linkData(2, 5))



End Sub

'ユーザーがcsvファイル選択→ファイルを変数に格納
Function fileSelection(ByRef selectFile As String)

    With Application.FileDialog(msoFileDialogFilePicker)

        .Filters.Clear   'フィルターのクリア
        .AllowMultiSelect = False   'ユーザーのファイル選択を1ファイルに限定
        .Filters.Add Description:="csvファイル", Extensions:="*.csv"   '選択ファイルの拡張子指定

        If Not .Show Then End  '選択されなかった場合、Sub終了

        selectFile = .SelectedItems(1)  '選択したファイルを変数に格納する

    End With

End Function

'csvファイルからデータを配列に格納
Function getArray(ByVal selectFile As String, ByRef data As Variant)

    Workbooks.Open (selectFile)
    data = ActiveWorkbook.Sheets(1).Cells(1, 1).CurrentRegion

    ActiveWorkbook.Close savechanges:=False

End Function

Function checkMessage(ByVal a As String, ByVal b As String)

    Dim msg As String
    msg = a & "起点の" & a & "-" & b & "の対応表で間違いないですか?"

    Dim rc As VbMsgBoxResult
    rc = MsgBox(msg, vbYesNo + vbQuestion)
    If rc = vbYes Then
        MsgBox "処理を続けます", vbInformation
    Else
        MsgBox "処理を中止します", vbCritical
        End
    End If

End Function

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0