|
▼Kein さん:
>現在、ボタンを押したとき起動するマクロは、どんなコードになってますか ?
少々長くなりますが・・・
1.:ボタン押下時
Private Sub BTN_KKK_INSRT_Click()
On Error GoTo Error
Dim varGetFile As Variant
'ファイルを開くダイアログを表示します。
varGetFile = Application.GetOpenFilename("iniファイル(*.ini), *.ini", , "価格ファイル選択してください。")
If varGetFile = False Then
MsgBox "必要事項が空白のため、処理を中止します。"
Exit Sub
End If
' Iniファイルを読みこんで、取得した価格情報をExcel内へセットさせる
If Not prvSetExcel(CStr(varGetFile)) Then
MsgBox "価格情報設定に失敗しました。"
Exit Sub
End If
Exit Sub
Error:
MsgBox "予期せぬエラーです。" & vbNewLine & _
Err.Number & vbNewLine & _
Err.Description
End
End Sub
2.:1.内より呼び出される関数
Private Function prvSetExcel(strGetFileName As String) As Boolean
' 変数の宣言
Dim strFileName As String
Dim Obj As OLEObject
Dim varRackInfo(6, 2) As Variant
prvSetExcel = False
' ファイル名
strFileName = strGetFileName
'***<< (初期費用)コロケーションサービス >>***
' オープンスペース
Range("AX7").Value = prvGetIniString("Shoki_Koroke", "Open_Space", "0", strFileName)
' その他(個別電源・200V20A)
Range("AF25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V20A", "0", strFileName)
' その他(個別電源・200V30A)
Range("AN25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V30A", "0", strFileName)
' その他(個別電源・200V40A)
Range("AV25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V40A", "0", strFileName)
' その他(個別電源・200V50A)
Range("BD25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V50A", "0", strFileName)
' その他(個別電源・200V60A)
Range("BL25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V60A", "0", strFileName)
' その他(個別電源・100V20A)
Range("BT25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V20A", "0", strFileName)
' その他(個別電源・100V30A)
Range("CB25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V30A", "0", strFileName)
' その他(個別電源・100V40A)
Range("CJ25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V40A", "0", strFileName)
' その他(個別電源・100V50A)
Range("CR25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V50A", "0", strFileName)
' その他(個別電源・100V60A)
Range("CZ25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V60A", "0", strFileName)
' その他(個別電源・100V6A)
Range("DH25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V6A", "0", strFileName)
'***<< (月額費用)コロケーションサービス >>***
' オープンスペース
Range("BN7").Value = prvGetIniString("Getugaku_Koroke", "Open_Space", "0", strFileName)
' その他(個別電源・200V20A)
Range("AF26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V20A", "0", strFileName)
' その他(個別電源・200V30A)
Range("AN26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V30A", "0", strFileName)
' その他(個別電源・200V40A)
Range("AV26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V40A", "0", strFileName)
' その他(個別電源・200V50A)
Range("BD26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V50A", "0", strFileName)
' その他(個別電源・200V60A)
Range("BL26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V60A", "0", strFileName)
' その他(個別電源・100V20A)
Range("BT26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V20A", "0", strFileName)
' その他(個別電源・100V30A)
Range("CB26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V30A", "0", strFileName)
' その他(個別電源・100V40A)
Range("CJ26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V40A", "0", strFileName)
' その他(個別電源・100V50A)
Range("CR26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V50A", "0", strFileName)
' その他(個別電源・100V60A)
Range("CZ26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V60A", "0", strFileName)
' その他(個別電源・100V6A)
Range("DH26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V6A", "0", strFileName)
'***<< (初期費用)ネットワークサービス >>***
' セグメント設定費
Range("AX8").Value = prvGetIniString("Shoki_NW", "Seg", "0", strFileName)
' 専用接続100MB
Range("AX9").Value = prvGetIniString("Shoki_NW", "Senyo_100MB", "0", strFileName)
' 専用接続1GB
Range("AX10").Value = prvGetIniString("Shoki_NW", "Senyo_1GB", "0", strFileName)
'***<< (月額費用)ネットワークサービス >>***
' 専用接続100MB
Range("BN9").Value = prvGetIniString("Getugaku_NW", "Senyo_100MB", "0", strFileName)
' 専用接続1GB
Range("BN10").Value = prvGetIniString("Getugaku_NW", "Senyo_1GB", "0", strFileName)
' 共用接続100MB
Range("BN11").Value = prvGetIniString("Getugaku_NW", "Kyoyo_100MB", "0", strFileName)
' 共用接続1GB
Range("BN12").Value = prvGetIniString("Getugaku_NW", "Kyoyo_1GB", "0", strFileName)
' 基本料金
Range("DP26").Value = prvGetIniString("Kihon", "Tanka", "0", strFileName)
' コンボボックス内へセットする値を配列にセット<<(初期費用)・(月額費用)・ラック仕様の順>>
varRackInfo(0, 0) = "0"
varRackInfo(0, 1) = "0"
varRackInfo(0, 2) = ""
varRackInfo(1, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_1", "0", strFileName))
varRackInfo(1, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_1", "0", strFileName))
varRackInfo(1, 2) = "1/2ラック 60A : 100V/30A ×2"
varRackInfo(2, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_2", "0", strFileName))
varRackInfo(2, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_2", "0", strFileName))
varRackInfo(2, 2) = "1/2ラック 60A : 100V/30A ×4"
varRackInfo(3, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_3", "0", strFileName))
varRackInfo(3, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_3", "0", strFileName))
varRackInfo(3, 2) = "1/2ラック その他"
varRackInfo(4, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_4", "0", strFileName))
varRackInfo(4, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_4", "0", strFileName))
varRackInfo(4, 2) = "1ラック 60A : 100V/30A ×2"
varRackInfo(5, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_5", "0", strFileName))
varRackInfo(5, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_5", "0", strFileName))
varRackInfo(5, 2) = "1ラック 60A : 100V/30A ×4"
varRackInfo(6, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_6", "0", strFileName))
varRackInfo(6, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_6", "0", strFileName))
varRackInfo(6, 2) = "1ラック その他"
' 存在しているコンボボックス内の隠し列にセット
For Each Obj In ActiveSheet.OLEObjects
If Obj.Name Like "ComboBox*" Then
Obj.Object.ColumnCount = 3 '表示列数の設定
Obj.Object.ColumnWidths = "0cm;0cm;4.0cm"
Obj.Object.List = varRackInfo
Obj.Object.ListIndex = -1
End If
Next
prvSetExcel = True
End Function
すぐ、直上のFor文にて、シート上に存在するコンボボックスに値をセットしております。
|
|